文本、多段线和块Cou
下午好,我从未在AutoLisp中编程,因此我不知道如何从任何图形中提取以下数据:
1.文本:我的想法是在我的图纸中有一些细节标注,我希望AutoCad能够实际计算所有文本,并向我提供包含的文本列表和出现的文本数量。我的最终目标是抓取这个导出的文件,使用excel读取它,并创建一个带有材料列表(也在excel中)的简单子例程,并交叉引用它们,以便获得详细的MTO(材料统计)。例如,如果我将电源插座标记为REC1(480V),将网络连接点标记为REC2,将标准插座标记为REC3(120V),我希望AutoCAD准备一个使用的所有不同文字标签(在本例中为REC1、REC2和REC3)的列表,并给出出现次数的计数。以excel可以理解的格式导出该文件后,我将创建自己的子例程。
2、多段线:我的想法是:我想创建一种智能电缆布线图。我将为每个多段线分配一个标签,我需要Autcad提供一个标签列表,其中多段线与每个标签距离相关,以便更好地估计要购买的电缆长度。因此,如果我有三个标记为C1、C2和C3的导管,与不同的多段线相关联(假设多行文字对齐到与多段线的中心点对齐的中心),我希望有一个excel可以理解的文件,例如,C1具有X ft,C2具有Y ft,C3具有Z ft。
块:我需要一个子例程,它允许我计算不同的块,并提供一个包含数量的excel文件。目标与第1点有些相似。
我以前的公司有一些旧的子程序,我无法复制,我的新工作没有任何这些方便的工具,一切都需要步行完成,如果你知道我的意思的话。
感谢您的帮助。
非常感谢。 第一点很简单,你可以搜索文本并列出一个列表,然后对其进行排序,你在列表中穿行,一旦名称不同,就把它们加起来,把答案写在一个CSV文件中。REC1,42 REC2,23 REC3,12。
(setq ss (ssget (list (cons 0 "Text"))))
;or
(setq fil (getstring "\Enter search string REC* etc"))
(setq ss (ssget (list (cons 0 "Text")(cons 1 fil))))
第二种方法可能是查看扩展数据,或者只查看具有属性的块,这些属性通过字段链接到pline的长度,同样,您可以选择某些块。
(setq fil (getstring "\Enter search blkname etc"))
(setq ss (ssget (list (cons 0 "Insert")(cons 2 fil))))
; retrieve attributes and write out to csv C1,23 C2,34
第三,看看上面的第二条。
所有这些都在这里的Cadtutor尝试搜索“ssget text”属性到csv“total blocks”我只是没有这些例程随时可用或会发布。我相信其他人会的。
页:
[1]