feng_ling 发表于 2004-10-28 11:20:00

[ARX]再问一个ARX选择集操做的问题

AUTOCAD中执行一些命令时(如MOVE)时键入关键字“P”可获取最近操作的选择集,如果我预存一个选择集S1,当执行这些命令时键入关键字“S1”时,把选择集S1加入到当前选择集是该如何做。

王咣生 发表于 2004-10-28 12:42:00

回复

在ARX中这就属于处理两个选择集, 将选择集S1中的实体加到选择集S2中, 查一下acedSSAdd()函数的用法.

feng_ling 发表于 2004-10-28 14:45:00

我的困难在于执行move命令时怎样通过关键字”S1“来调用函数,还有在有AUTOCAD命令在执行的时候怎样把选择集S1加入到当前选择集中。

王咣生 发表于 2004-10-28 17:32:00

回复

如果你想通过acedCommand调用AutoCAD命令来处理选择集,那是否用LISP程序更方便一些?

feng_ling 发表于 2004-10-29 10:54:00

那用LISP又该如何解决呢,LISP可以做ARX也应可以做,我要得是效果,能解决问题就行。


关于”效果“ 我想再补充一下:


用过AUTOCAD的人,一定用过"move"、"rotate"、“mirror”等命令,用这些命令时也应该尝试过键入关键字“p”的方式将最近操做过的选择集加入到当前选择集中,我要做的无非是将“P”换成”S1“,将最近操作过的选择集替换成我保存的选择集(如S1)

easypower 发表于 2004-10-29 10:57:00

ssGet可以加p参数的

王咣生 发表于 2004-10-29 10:59:00

回复

当然lisp能做的arx也能做,只是你更熟悉哪种呢?如果用lisp不知道如何做,就先别考虑arx了.


在arx上用很多的acedCommand执行AutoCAD命令,不如直接用lisp.

feng_ling 发表于 2004-10-29 11:12:00

我说的是在AUTOCAD中执move等命令键入“S1”的效果,而并非有acedCommand执行AutoCAD命令,


好像AcEdSSGetKwordCallbackPtr和AcEdSSSetKwordCallbackPtr可实现类似功能,可惜没例子,能否给两个。

王咣生 发表于 2004-10-29 11:33:00

回复

你不是只看效果吗?


在AutoCAD模型空间中画一些Circle, Line, Arc, 执行


(setq s1 (ssget "X" (list (cons 0 "circle"))))<BR>(setq s2 (ssget "X" (list (cons 0 "line"))))<BR>(setq s3 (ssget "X" (list (cons 0 "arc"))))


在Command Line输入: Move


Select objects: !S1
页: [1]
查看完整版本: [ARX]再问一个ARX选择集操做的问题