在同一张CAD图纸中,法向Z坐标存在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坐标归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坐标归1:Fsz \n")
(princ)