鸿雁1986 发表于 2025-1-8 22:26:27

大神看过来,有偿做个材料统计插件!!!

统计线材的长度并修改,长度标注在线的上方,不同的线材颜色不同,长度标注文字都是白色,跟线没有相关性,统计要求

1能够指定统计对应颜色线上文本线长
2能看出来线的条数,各种长度分别有多少条,总量是多少
3对对应长度进行修改,修改后的总长
只是修改线上的文本,不区分颜色全部统计好实现,难在怎么根据线的颜色来统计线上文本,上下关系,但是不关联,大佬可以联系发图纸过去编写

dcl1214 发表于 2025-1-9 10:16:47

①什么线材?
②整个图纸是否有环形?
③整个图纸是否有负数

国际知名算法:迪杰斯特拉、弗洛伊德、DFS、中线cad

鸿雁1986 发表于 2025-1-10 14:27:36

鸿雁1986 发表于 2025-1-10 13:34
这个文本导出代码帮忙看看,看着很简洁,导出的文本都在一个单元格,怎么添加换行,让每一个文本在第一列里 ...

这个解决了
(defun c:Q2()
(setq ffn (getfiled "写出文件" "" "xls" 1))
(princ "选取文字...")
(setq ss (ssget))
(setq ff (open ffn "w"))
(setq i 0)
(repeat (sslength ss)
(setq ssn (ssname ss i))
(setq ssdata (entget ssn))
(setq sstyp (cdr (assoc 0 ssdata)))
(if (or (= sstyp "TEXT") (= sstyp "MTEXT"))
(progn
(setq txt (cdr (assoc 1 ssdata)))
(princ txt ff)
(princ "\n" ff)
)
)
(setq i (1+ i))
)
(close ff)
(princ (strcat "写出文件: " ffn))
(prin1)
)

鸿雁1986 发表于 2025-1-10 13:34:21

这个文本导出代码帮忙看看,看着很简洁,导出的文本都在一个单元格,怎么添加换行,让每一个文本在第一列里单独一个单元格
(defun c:Q2()
(setq ffn (getfiled "写出文件" "" "xls" 1))
(princ "选取文字...")
(setq ss (ssget))
(setq ff (open ffn "w"))
(setq i 0)
(repeat (sslength ss)
(setq ssn (ssname ss i))
(setq ssdata (entget ssn))
(setq sstyp (cdr (assoc 0 ssdata)))
(if (or (= sstyp "TEXT") (= sstyp "MTEXT"))
(progn
(setq txt (cdr (assoc 1 ssdata)))
(princ txt ff)
(princ "" ff)
)
)
(setq i (1+ i))
)
(close ff)
(princ (strcat "写出文件: " ffn))
(prin1)
)

cad890 发表于 2025-1-8 23:04:55

你这个是线的长度代表线材的长度,还是文字数值代表线材的长度?

鸿雁1986 发表于 2025-1-8 23:54:55

cad890 发表于 2025-1-8 23:04
你这个是线的长度代表线材的长度,还是文字数值代表线材的长度?

文字数值代表线的长度,文字图元做选择集统计长度就可以了,但是要按线的颜色来区分文字有点困难
思路是先把文字做选择集,遍历文字,以文字中心选择离文字最近的线读取颜色做判断,按线颜色判断做筛选器放到字典里再统计

ssyfeng 发表于 2025-1-9 08:46:36

这种要发dwg专门沟通才行,一个图片是没那么清晰明白的

vitalgg 发表于 2025-1-9 10:13:51

先提取 长度 文字 如 "数字+m" , 再取每个文字下的直线颜色。分类统计即可。

鸿雁1986 发表于 2025-1-9 19:54:07

dcl1214 发表于 2025-1-9 10:16
①什么线材?
②整个图纸是否有环形?
③整个图纸是否有负数


没那么复杂,建立文本选择集,筛选含有m的文本相加就可以,只是要根据文本下面线的颜色来区分线材

czb203 发表于 2025-1-9 20:20:49

dcl1214 发表于 2025-1-9 10:16
①什么线材?
②整个图纸是否有环形?
③整个图纸是否有负数


国际知名算法:中线cad:lol

橡皮 发表于 2025-1-9 22:54:33



这件开发过一个这个,你这个应该就算这里边一步吧




原贴 http://bbs.mjtd.com/forum.php?mod=viewthread&tid=187564&fromuid=7329897
(出处: 明经CAD社区)

鸿雁1986 发表于 2025-1-9 23:35:20

vitalgg 发表于 2025-1-9 10:13
先提取 长度 文字 如 "数字+m" , 再取每个文字下的直线颜色。分类统计即可。

是的,就是这种,长度分类导出,进行修改
页: [1] 2
查看完整版本: 大神看过来,有偿做个材料统计插件!!!