在同一張CAD圖紙中,法向Z坐標(biāo)存在1和-1兩種情況,如何把-1改為1呢
如下代碼:
如下代碼:
(defun c:fsz (/ ss za mat n)
(vl-Load-com)
(setq ss (ssget))
(if ss
(repeat (setq n (sslength ss))
(setq obj (vlax-ename->vla-object (ssname ss (setq n (1- n)))))
(setq ZA (vlax-safearray->list
(vlax-variant-value (vla-get-Normal obj))))
(setq mat (vlax-tmatrix
(list
(list 1 0 (car ZA) 0)
(list 0 1 (cadr ZA) 0)
(list 0 0 (caddr ZA) 0)
(list 0 0 0 1)
)
)
)
(vla-TransformBy obj mat)
)
)
)
(princ "\n加載法向Z坐標(biāo)歸1:Fsz \n")
(princ)
(vl-Load-com)
(setq ss (ssget))
(if ss
(repeat (setq n (sslength ss))
(setq obj (vlax-ename->vla-object (ssname ss (setq n (1- n)))))
(setq ZA (vlax-safearray->list
(vlax-variant-value (vla-get-Normal obj))))
(setq mat (vlax-tmatrix
(list
(list 1 0 (car ZA) 0)
(list 0 1 (cadr ZA) 0)
(list 0 0 (caddr ZA) 0)
(list 0 0 0 1)
)
)
)
(vla-TransformBy obj mat)
)
)
)
(princ "\n加載法向Z坐標(biāo)歸1:Fsz \n")
(princ)