请教acet-ss-drag-move函数如何响应用户输入
(acet-ss-drag-move ss pt [prompt][highlight [cursor]])据说可以响应用户输入,但是一直没有测试成功, 例如以下代码测试不成功,请教问题在哪里?(initget 128 "B")(acet-ss-drag-move (ssget)(getpoint "\nbasePt:") "\nChoose Location ... ")(DEFUN C:E1 ()
(VL-LOAD-COM)
(SETQ SS (SSGET)
PT (GETPOINT "\n指定基点")
)
(LY:ROTATE SS PT 0)
;;;(LY:MOVE SS PT 2 )
;;;(LY:SCALE SS PT 1 )
)
(DEFUN LY:ROTATE (SSX P cur / I E ANG)
(SETQ ANG (ACET-SS-DRAG-ROTATE SSX P "\n指定旋转角度" cur)
I 0
)
(PRINC (TYPE ANG))
(foreach E (acet-ss-to-list ssx)
(VLA-ROTATE
(VLAX-ENAME->VLA-OBJECT E)
(VLAX-3D-POINT P)
ANG
)
)
;;;(REPEAT (SSLENGTH SSX)
;;; (SETQ E (SSNAME SSX I))
;;; (VLA-ROTATE
;;; (VLAX-ENAME->VLA-OBJECT E)
;;; (VLAX-3D-POINT P)
;;; ANG
;;; )
;;; (SETQ I (1+ I))
;;;)
(princ)
)
(DEFUN LY:MOVE (SSX P1 cur / I E ANG)
(SETQ P2 (ACET-SS-DRAG-move SSX P1 "\n指定第二个点" cur)
I0
)
(foreach E (acet-ss-to-list ssx)
(VLA-MOVE
(VLAX-ENAME->VLA-OBJECT E)
(VLAX-3D-POINT P1)
(VLAX-3D-POINT P2)
)
)
;;;(REPEAT (SSLENGTH SSX)
;;; (SETQ E (SSNAME SSX I))
;;; (VLA-MOVE
;;; (VLAX-ENAME->VLA-OBJECT E)
;;; (VLAX-3D-POINT P1)
;;; (VLAX-3D-POINT P2)
;;; )
;;; (SETQ I (1+ I))
;;;)
(princ)
)
;;;
;;;(DEFUN LY:SCALE (SSX P1 cur / I E N)
;;;;;;;;;缩放无动态显示
;;;(SETQ N (ACET-SS-DRAG-scale SSX P1 "\n指定比例因子" cur)
;;; I 0
;;;)
;;;(PRINC (TYPE N))
;;;;;;(REPEAT (SSLENGTH SSX)
;;;;;; (SETQ E (SSNAME SSX I))
;;;;;; (vla-ScaleEntity
;;;;;; (VLAX-ENAME->VLA-OBJECT E)
;;;;;; (VLAX-3D-POINT P1)
;;;;;; (RTOS N 2 0)
;;;;;; )
;;;;;; (SETQ I (1+ I))
;;;;;;)
;;;(princ)
;;;)
以前我研究的代码,都是可以运行的,缩放没法看到动态过程 liuhe 发表于 2023-2-7 08:37
以前我研究的代码,都是可以运行的,缩放没法看到动态过程
您可能没有明白我表达的意思,我希望的是在acet-ss-drag-move动态拖动选择集过程中,
如果鼠标取点,可以正常执行。但如果输入自定义的关键字,无法返回关键字字符串。acet-ss-drag-move说明书提到可以配合initget设置关键字,但又没有给出相应的例子。 和get类函数完全一样的用法
注意一下
如果加载了高飞鸟的DYN函数
那么返回值区别大小写 masterlong 发表于 2023-2-7 15:47
和get类函数完全一样的用法
注意一下
经过尝试,搞定,感谢指点。
(Setq Ss (Ssget)
Basept (Getpoint "\nBasePt:")
)
(Initget "B")
(Setq Pt (Acet-Ss-Drag-Move Ss BasePt "\n选择点[选项(B)]:"))
页:
[1]