请教如何能获得嵌套块内的某个块名,或者如何得到nentsel所选择对象所在块的块名?用参照编辑先命令后选择,可以定位到嵌套块块名,都是不知道用程序如何获得块名。例如点圆块得到块1


网友答:
  1. (defun tt(blkname / blks a b)
  2.   (if(=(type(setq a(VL-CATCH-ALL-APPLY'vla-item(list(vlax-get-property(vlax-get-property(vlax-get-acad-object)'activedocument)'blocks)blkname))))'VLA-OBJECT)
  3.     (progn(vlax-for x a(if(=(vlax-get-property x 'ObjectName)"AcDbBlockReference")(setq b(cons(vlax-get-property x'name)b))))
  4.       (if b(List blkname(mapcar 'tt b))blkname))))

;;(TT"B1")
;;("B1" (("E" ("D")) ("B" ("A"))))

网友答:
52幕墙设计 发表于 2014-9-18 18:03
使用了参照编辑命令,退出参照编辑那一步卡顿时间很长,求直接获取嵌套块块名的方法

你这仅能用于一层嵌套,而且进出参照几乎是CAD最卡的操作了。请问现在有没有找到更好的办法

网友答:
  1. (defun c:tt()
  2. (setq p0(cadr(entsel)))
  3. (command"-refedit" p0 "n" "o" "a" "n")
  4. (setq n(getvar"REFEDITNAME"))
  5. (command"_refclose" "D")
  6. (command"_leader"p0 pause pause"" n "")
  7.   (princ n)
  8.   )

使用了参照编辑命令,退出参照编辑那一步卡顿时间很长,求直接获取嵌套块块名的方法


网友答: 简单实用啊,嵌套块名提取

网友答: 可以试试nentsel

网友答: 楼主搞定了吗?我也被这个问题困扰。

网友答:
llsheng_73 发表于 2020-10-19 21:34
;;(TT"B1")
;;("B1" (("E" ("D")) ("B" ("A"))))

我加载的话显示语法错误,是什么原因呢,蠢小白,轻拍

网友答:
52幕墙设计 发表于 2014-9-18 18:03
使用了参照编辑命令,退出参照编辑那一步卡顿时间很长,求直接获取嵌套块块名的方法

最后有解决方案了吗?楼主

网友答: 获取嵌套的块名用来做什么呢?哪怕知道块A包含块BCDEF,也不清楚块BCDEF各自对应哪些图形。然后呢?拿着块BCDEF名字要做什么?
  • 上一篇:管道专业的利器(源码)
  • 下一篇:没有了