Glen Smith 发表于 2022-7-6 13:25:26

由于我对LISP的了解微乎其微,我在这里有点冒险,但我猜想您今天运行的代码缺少VL load命令。我猜你昨天加载的一个例程已经在那里加载了一整天了。然后你关机了,失去了它。
 
在(defun…)之后添加此(vl load com)命令,重新加载并重试。如果这不是问题所在,我相信Lisp程序的大师很快就会出现。
 
格伦

gilsoto13 发表于 2022-7-6 13:26:30

 
你说得对。。。现在它工作了。。。

(defun c:sb    (/ e name n out ss x rjp-getblockname)
(vl-load-com)
(prompt "\n   Pick BLOCK to acquire its instances in the drawing...")
(defun rjp-getblockname (obj)
   (if    (vlax-property-available-p obj 'effectivename)
   (vla-get-effectivename obj)
   (vla-get-name obj)
   )
)
(if (setq x   (ssget '((0 . "INSERT")))
       x   (ssname x 0)
       name (rjp-getblockname (vlax-ename->vla-object x))
       ss   (ssget "_X" '((0 . "INSERT")))
       n   -1
       out   (ssadd)
   )
   (while (setq e (ssname ss (setq n (1+ n))))
   (if (= (rjp-getblockname (vlax-ename->vla-object e)) name)
   (ssadd e out)
   )
   )
)
(sssetfirst nil out)
(princ)
)

 
现在我记得我有一些其他的程序有同样的问题。。。现在我知道如何修复它了。。。
 
谢谢
页: 1 [2]
查看完整版本: 选择集团的所有实例