测试“在位编辑块”
你好如果四处搜索,但没有找到测试参照编辑是否处于活动状态的方法。
我知道块编辑器有一个系统变量,但似乎没有一个用于refedit。
我想我可以在refedit处于活动状态时测试不可用/非法的命令,例如“block”命令,但似乎无法做到这一点。
有人能给我指出正确的方向吗? 嗨,PDuMont,
发现了一些与反应堆有关的东西。我不知道他们在说什么,所以我希望这对你来说比对我来说更有意义。
http://www.cadtutor.net/forum/showthread.php?101534-测试QUOTE Edit Block In Place QUOTE Active
(setq g\u lastHandle nil g\u tmpHandel nil)(defun callbackStart(obj lst)(if(=“REFEDIT”(car lst))(setq g\u lastHandle(cdr(assoc 5(entget(entlast))))(defun callbackEnd(obj lst)(if(=“REFCLOSE”(car lst))(progn(setq g\u tmpHandel g\u lastHandle)(setq g\u lastHandle nil)))(defun callbackAbort(obj lst)(if(=“REFEDIT”(car lst))(setq g_lastHandle nil))(如果(=“REFCLOSE”(car lst))(setq g\u lastHandle g\u tmpHandel))(if(null refeditDetect)(setq refeditDetect(vlr command reactor nil’(:vlr commandWillStart.callbackStart)(:vlr commandEnded.callbackEnd)(:vlr commandCancelled.callbackAbort)(:vlr commandFailed.callbackAbortа);(defun getRefeditSS(/elst en i len ss)(setq ss(ssget))(if g_lastHandle(progn(setq i 0 len(sslength ss))(setq elst nil)(while(<i len)(setq en(ssname ss i))(setq elst(cons en elst))(setq i(1+i))(foreach en elst(if( 谢谢你的rlx。
对于我试图做的事情来说似乎有点过分。
如果refedit打开,我试图阻止例程运行,因为lisp正在创建一个块,这不能通过refedit内部的命令调用来实现。
所以我只是修改了例程,通过entmake创建了块。问题已解决。
再次感谢。
很高兴你能破解它。通常,最好的解决方案是最简单的。反应堆可能很难处理,尤其是如果你不得不处理其中许多反应堆的话。暂时取消对命令的定义是另一种选择,但我认为您的解决方案是最好的选择。
gr.Rlx 回答OP:
检查REFEDITNAME变量。 砰,就是这样。。。就在我面前。
谢谢你,罗伊!
页:
[1]