马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 /db_自贡黄明儒_ 于 2020-9-18 11:17 编辑
 - ;;;;;w3将弧的(210 0 0 -1)纠正为(210 0 0 1)而图形不变
- ;;;(defun C:W3 (/ O)
- ;;; (setq o (vlax-ename->vla-object (car (entsel))))
- ;;; (_C210 o)
- ;;; (princ)
- ;;;)
- ;;;;;W4将弧的(210 0 0 1)纠正为(210 0 0 -1)
- ;;;(defun C:w4 (/ O ZA)
- ;;; (setq o (vlax-ename->vla-object (car (entsel))))
- ;;; (setq ZA '(0 0 -1))
- ;;; (setq ZA (List->Array ZA))
- ;;; (vla-put-Normal o ZA)
- ;;; (princ)
- ;;;)
- (defun _C210 (o / CENTER MAT ZA)
- (if (and
- (vlax-property-available-p o 'Normal)
- ;;(setq ZA (vlax-safearray->list(vlax-variant-value (vla-get-Normal o)))
- (setq ZA (safearray-value (vlax-variant-value (vla-get-Normal o))))
- (equal (caddr ZA) -1 0.00001)
- )
- (progn
- (setq ZA '(0 0 1))
- (setq ZA (List->Array ZA))
- (vla-put-Normal o ZA)
-
- ;;绕Y轴旋转 180度,旋转后组码210变了
- (setq Center (safearray-value (vlax-variant-value (vla-get-Center o))))
- ;;(setq mat (MAT:Rotation3D Center (mapcar '+ '(0 1 0) Center) pi))
- ;;MAT:Reflect By Highflybird Matrix-Lib.LSP
- (setq mat (MAT:Reflect (mapcar '+ '(0 1 0) Center) Center));平面镜向
- (setq mat (vlax-tmatrix mat))
- (vla-transformby o mat)
- )
- )
- )
- ;;表转化为安全数组
- (defun List->Array (lst)
- (vlax-make-variant
- (vlax-safearray-fill
- (vlax-make-safearray
- vlax-vbdouble
- (cons 0 (1- (length lst)))
- )
- lst
- )
- )
- )
|