(defun get-all-atts ( obj / att_lst r_lst lst tag )
(setq att_lst (vlax-invoke obj 'getattributes)
r_lst (list "TAG" "PN" "FIND" "SORT" "QUANTITY")
lst nil
);end_setq
(foreach att att_lst
(setq tag (vla-get-tagstring att))
(if (member tag r_lst)
(setq lst (cons (cons tag (vla-get-textstring att)) lst))
);end_if
);end_foreach
(if (> (length lst) 1) (setq lst (reverse lst)))
);end_defun
;; Main part ;;
(defun C:ATOUT ( / adoc osm axss tmp com_data tot)
(vl-load-com)
(setq adoc (vla-get-activedocument (vlax-get-acad-object))
osm (getvar "osmode")
);end_setq
(vla-endundomark adoc)
(vla-startundomark adoc)
(setvar "osmode" 0)
(setvar "cmdecho" 0)
(cond ( (ssget "_X" (list (cons 0 "INSERT")(cons 66 1)));;This will get you all attributed blocks in the drawing
(setq com_data nil)
(vlax-for a (setq axss (vla-get-activeselectionset adoc))
(setq tmp (get-all-atts a))
(if (> (length tmp) 0) (setq com_data (cons tmp com_data)))
);end_for
(setq com_data (reverse com_data)
tot (length com_data)
);end_setq
)
);end_cond
;; foreach loop for data display only can be removed later
(foreach x com_data
(princ x)
(princ "\n")
);end_foreach
(princ)
(setvar "osmode" 0)
(setq axss nil)
(vla-endundomark adoc)
);end_defun
我注意到,您发送的示例图形中的一个块标记名为“FIND#”,而不是“FIND”,这是正确的吗?
关于excel部分,您希望excel工作表是什么样子?
这是从预定义工作簿/工作表开始还是从空白工作簿/工作表开始?
图纸名称应该是什么?
工作簿名称应该是什么。 它是dwg中的att名称
这是我的工作,但将在一个商业产品看,说共享软件非常便宜。
这是块数据提取的修改版本,您只需选择相关块,它对块进行计数,但当前使用2个深度索引,因此将区分相同的块名,但att值不同,例如door black silver v的door black gold将给出2个带颜色和把手类型的块门总数。
结果出来的时候它就成了一张表,我在你的dwg上测试了一下,它成功了。
选项只是选择
读取数据文件,重新块名和属性顺序
同样,创建一个数据文件,该文件将由dcl驱动,以便于拾取。
重要的一点是,它支持具有与我在块上测试的块一样多属性的块,1 att、2 att、3 att、15 att作为混合,并且工作良好。
我下一步要做的是在输出中输入哪些属性。 缪若凯恩
让我们看看你最后想要什么。
你需要了解你需要什么。
你还有更多的例子吗?
语言不是问题,主要是算法。
看这个视频,像这样? https://youtu.be/JTSJD9-VP28 比加尔-太好了。。。我希望以一种可以将其与外部数据相结合的形式获得我的数据,类似于原始数据提取。
dlanorh-我们做的几乎完全一样,只是我忘了删除常数,我添加了另一个条件来消除任何3个或更多att值为零的块。很高兴知道我能很好地掌握这门语言。也不用担心确切的名字,我只需要确保在“r\u lst”中有确切的名字。
大家-最后我希望找到一种方法,将其与另一个电子表格链接,就像原始的数据提取功能一样。但我需要的是它是一个CSV文件,看起来像这样:(“BOM”是来自另一本工作手册的链接数据)
TAG
PN
BOM
查找
数量
排序
CTRL
CTRL
INFPRO
CTRL
1
3000
T-1
T1
CXF460
T1
[font=Cal I think we're trying to make the same thing. I was able to make quite a bit of progress on it on the Cad side with the help of something RLX sent me. Will post it in the morning. (Sending this now or I'll forget). I have been renovating my house so no spare time its almost finished about 1 week left so will have time again to get back to "time consuming" ideas.
页:
1
[2]