|
;;;=============================================
;;; 通用函数 点在ucs上的位置
;;;参数: pt------测试点
;;; p0------ucs原点
;;; px------ucsx向点
;;; fuzz----容差
;;;返回值:点位特征值
(defun xty-G-PtAtUcs (pt p0 px fuzz / o v x x+ x- y y+ y- z z+ z-)
(setq v (mapcar '- px p0)
v (trans (mapcar '- pt p0) 0 v)
x (last v)
y (car v)
z (cadr v)
o 0
x+ 1
x- 2
y+ 4
y- 8
z+ 16
z- 32
)
(cond ((equal pt p0 fuzz) o) ;_位于原点
((and (equal y 0. fuzz) (equal z 0. fuzz) (> x fuzz)) x+) ;_位于正x轴
((and (equal y 0. fuzz) (equal z 0. fuzz) (< x (- fuzz)))
x-
) ;_位于负x轴
((and (equal x 0. fuzz) (equal z 0. fuzz) (> y fuzz)) y+) ;_位于正y轴
((and (equal x 0. fuzz) (equal z 0. fuzz) (< y (- fuzz)))
y-
) ;_位于负y轴
((and (equal x 0. fuzz) (equal y 0. fuzz) (> z fuzz)) z+) ;_位于正z轴
((and (equal x 0. fuzz) (equal y 0. fuzz) (< z (- fuzz)))
z-
) ;_位于负z轴
((and (equal z 0. fuzz) (> x fuzz) (> y fuzz)) (+ x+ y+)) ;_位于xy平面第一象限
((and (equal z 0. fuzz) (< x (- fuzz)) (> y fuzz))
(+ y+ x-)
) ;_位于xy平面第二象限
((and (equal z 0. fuzz) (< x (- fuzz)) (< y (- fuzz)))
(+ x- y-)
) ;_位于xy平面第三象限
((and (equal z 0. fuzz) (> x fuzz) (< y (- fuzz)))
(+ y- x+)
) ;_位于xy平面第四象限
((and (equal y 0. fuzz) (> x fuzz) (> z fuzz)) (+ x+ z+)) ;_位于xz平面第一象限
((and (equal y 0. fuzz) (< x (- fuzz)) (> z fuzz))
(+ z+ x-)
) ;_位于xz平面第二象限
((and (equal y 0. fuzz) (< x (- fuzz)) (< z (- fuzz)))
(+ x- z-)
) ;_位于xz平面第三象限
((and (equal y 0. fuzz) (> x fuzz) (< z (- fuzz)))
(+ z- x+)
) ;_位于xz平面第四象限
((and (equal x 0. fuzz) (> y fuzz) (> z fuzz)) (+ y+ z+)) ;_位于yz平面第一象限
((and (equal x 0. fuzz) (< y (- fuzz)) (> z fuzz))
(+ z+ y-)
) ;_位于yz平面第二象限
((and (equal x 0. fuzz) (< y (- fuzz)) (< z (- fuzz)))
(+ y- z-)
) ;_位于yz平面第三象限
((and (equal x 0. fuzz) (> y fuzz) (< z (- fuzz)))
(+ z- y+)
) ;_位于yz平面第四象限
((and (> x fuzz) (> y fuzz) (> z fuzz)) (+ x+ y+ z+)) ;_位于第Ⅰ象限
((and (< x (- fuzz)) (> y fuzz) (> z fuzz)) (+ x- y+ z+)) ;_位于第Ⅱ象限
((and (< x (- fuzz)) (< y (- fuzz)) (> z fuzz))
(+ x- y- z+)
) ;_位于第Ⅲ象限
((and (> x fuzz) (< y (- fuzz)) (> z fuzz)) (+ x+ y- z+)) ;_位于第Ⅳ象限
((and (> x fuzz) (> y fuzz) (< z (- fuzz))) (+ x+ y+ z-)) ;_位于第Ⅴ象限
((and (< x (- fuzz)) (> y fuzz)(< z (- fuzz))) (+ x- y+ z-)) ;_位于第Ⅵ象限
((and (< x (- fuzz)) (< y (- fuzz))(< z (- fuzz)))
(+ x- y- z-)
) ;_位于第Ⅶ象限
((and (> x fuzz) (< y (- fuzz)) (< z (- fuzz))) (+ x+ y- z-)) ;_位于第Ⅷ象限
)
) |
|