rodrigo_sjc_sp 发表于 2022-7-6 07:16:58

删除多段线中的项目

我有一条多段线,有多行文字和图案填充。
我想知道是否可以使用reactor,当调整多段线的大小时,它会删除其中的所有项目(多行文字和图案填充)。
 
在我的文档中有许多多段线,lisp必须选择选定的多段线。
我无法为给定的多段线设置反应器,因为它可以调整任何多段线的大小
 
谢谢

Lee Mac 发表于 2022-7-6 08:02:51

使用多段线作为所有者的对象反应器,回调函数在:vlr-modified事件上求值。
 
然后,在回调函数中,查询多段线的顶点坐标,并使用带有多段线顶点的窗口多边形(WP)选择模式获得驻留在多段线内的所有对象的选择集;删除选择集中的所有对象。
 
注意,在reactor回调函数中不能使用命令调用。

rodrigo_sjc_sp 发表于 2022-7-6 08:45:28

代码运行::::::::::::::
 
我需要在程序ReDim之前运行,并在我的案例中选择一行。

(defun c:redim () (vl-load-com)
(setq myLine (vlax-ename->vla-object (car (entsel)))) ; select a block
(setq lineReactor (vlr-object-reactor (list myLine) "Line Reactor" '((:vlr-modified . print-length))))
)

 
 
 
 
修改行时,他执行打印长度程序,该程序显示行的大小

(defun print-length (notifier-object reactor-object parameter-list)
(cond
((vlax-property-available-p notifier-object "Length")
(alert (strcat "The length is now "
                     (rtos (vla-get-length notifier-object)))))
)
)

 
 
 
代码字体
http://www.afralisp.net/archive/vl/reactors3.htm
 
 
 
现在,在我的例子中,我只更改多段线,当用户调整相同的大小时,我会发送一个命令图案填充,这是我所需要的。
谢谢大家。
:):):):):)
页: [1]
查看完整版本: 删除多段线中的项目