抓取时的Entitity ID
我试图编写一个例程,当有人试图通过夹点移动特定实体时,该例程就会激活。有人有什么好主意从哪里开始吗?
谢谢 您可以使用两个命令和AcDb反应器。例如,通过GRON命令转动电抗器,并对某些对象进行夹点旋转(GROFF关闭):
(defun c:gron()
(vl-load-com)
(if(not grip:reactor)
(setq grip:reactor
(vlr-Command-Reactor nil
'((:vlr-CommandEnded . GripReaction))
); end vlr-Command-Reactor
); end setq
); end if
(if(not acdb:reactor)
(setq acdb:reactor
(vlr-AcDb-Reactor nil
'((:vlr-objectModified . GripModified))
); end vlr-Command-Reactor
); end setq
); end if
(princ)
); end of c:gron
(defun c:groff()
(if grip:reactor
(progn
(vlr-remove grip:reactor)
(setq grip:reactor nil)
(vlr-remove acdb:reactor)
(setq acdb:reactor nil)
); end progn
); end if
(princ)
); end of c:groff
(defun GripModified(Reac Args / lEnt)
(setq lEnt(vlax-ename->vla-object(cadr Args))
gron:lastent(strcat(vla-get-ObjectName lEnt)
" ID: "(itoa(vla-get-ObjectID lEnt)))
); end setq
(princ)
); end of GripModified
(defun GripReaction(Reac Args)
(if(equal "GRIP_ROTATE"(car Args))
(if gron:lastent
(alert
(strcat "You have just rotated:\n" gron:lastent))
); end if
); end if
(princ)
); end of GripReaction
页:
[1]