明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1175|回复: 7

[提问] 求输入tt,点击线条,在线条上生成对应文字,自动识别

[复制链接]
发表于 2023-8-16 11:32:20 | 显示全部楼层 |阅读模式
求输入tt,点击线条,在线条上生成对应文字,自动识别

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2023-8-16 12:56:04 | 显示全部楼层
没啥好处,纯体力活呀


(defun C:NM (/ ss xj-en2pt zuhelst)
        (defun xj-en2pt (e  / s)
                (if (and e (setq tp (type e))
                                        (atom e)
                                        (or (= tp 'vla-object)
                                                (and (= tp 'ename)(setq e (vlax-ename->vla-object e)))
                                        )
                                )
                        (progn
                                (vla-GetBoundingBox e 'a 'b)
                                (mapcar 'vlax-safearray->list (list a b))  ;输出左下角和右上角坐标
                        )
                )
        )       
        (setq ss (ssget ":S"(list '(0 . "*line")'(8  .  "E-WIRE-FIRE-CIRC-MCNT,E-WIRE-FIRE,E-WIRE-FIRE-CIRC-BRDT,E-WIRE-FIRE-CIRC-TELP,E-WIRE-MCNT,E-WIRE-消防手动,E-WIRE-CCTR,E-WIRE-FIRE-T+P"))))
        (setq zuhelst '(("E-WIRE-CCTR" "WDZN-RYJS-2x1.0-SC16") ("E-WIRE-MCNT" "WDZN-RYJS-2x1.5 -SC16") ("E-WIRE-消防手动" "WDZN-RYJS-2*1.0-SC16+WDZN-RYJS-2*1.5-SC16") ("E-WIRE-FIRE-CIRC-TELP" "WDZNRVVP-2x1.0-SC16") ("E-WIRE-FIRE-CIRC-BRDT" "WDZN-BYJ-2x1.5-SC16") ("E-WIRE-FIRE-T+P" "WDZN-RYJS-2X1.5-SC16+WDZN-BYJ-2X2.5-SC16") ("E-WIRE-FIRE-CIRC-MCNT" "WDZN-RYJS-2X1.5-SC16+WDZN-BYJ-2X2.5-SC16") ("E-WIRE-FIRE" "WDZN-RYJS-2X1.5-SC16")))
       
        (mapcar '(lambda(a)   
                                                 (setq tc(cdr(assoc 8 (entget a))))
                                                 (setq p1(cadr(xj-en2pt a))
                                                         p2(polar p1 0 8000)
                                                 )                                                         
                                                 (setq str
                                                         (cadr(car(vl-remove-if-not '(lambda(x)(member tc x)) zuhelst)))
                                                 )
                                                 (entmake (list '(0 . "TEXT")'(41 . 0.35) (cons 1 str)(cons 50 0) (cons 10 p2) (cons 11 p2) (cons 72 0) (cons 73 2) (cons 40 600)))
                                         )       
                (vl-remove-if-not '(lambda(x)(= 'ENAME (type x))) (mapcar 'cadr (ssnamex ss)))
        )
        (princ)
)





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 1 反对 0

使用道具 举报

发表于 2023-8-16 12:36:55 | 显示全部楼层
是根据不同图层和线型来找对应文字?
 楼主| 发表于 2023-8-16 13:30:16 | 显示全部楼层
ssyfeng 发表于 2023-8-16 12:36
是根据不同图层和线型来找对应文字?

你好大哥,就是比如消费广播那个线,点击线后 在线上生成文字 WDZN-BYJ-2*1.5-SC16。就是点对应的线后 生成对应的文字
 楼主| 发表于 2023-8-16 13:31:27 | 显示全部楼层
xj6019 发表于 2023-8-16 12:56
没啥好处,纯体力活呀

兄弟你这速度有点快啊
 楼主| 发表于 2023-8-16 15:41:23 | 显示全部楼层
xj6019 发表于 2023-8-16 12:56
没啥好处,纯体力活呀

兄弟能不能标注到线的中间
发表于 2023-8-16 16:01:27 | 显示全部楼层
(xj-en2pt a)这个就是两个端点,俩端点算中点,没难度吧,自己搞搞玩吧,简单的还是自己动手一下
 楼主| 发表于 2023-8-16 21:28:55 | 显示全部楼层
xj6019 发表于 2023-8-16 12:56
没啥好处,纯体力活呀

(defun C:NM (/ ss xj-en2pt zuhelst)
        (defun xj-en2pt (e  / s)
                (if (and e (setq tp (type e))
                                        (atom e)
                                        (or (= tp 'vla-object)
                                                (and (= tp 'ename)(setq e (vlax-ename->vla-object e)))
                                        )
                                )
                        (progn
                                (vla-GetBoundingBox e 'a 'b)
                                (mapcar 'vlax-safearray->list (list a b))  ;输出左下角和右上角坐标
                        )
                )
        )      
        (setq ss (ssget ":S"(list '(0 . "*line")'(8  .  "E-WIRE-FIRE-CIRC-MCNT,E-WIRE-FIRE,E-WIRE-FIRE-CIRC-BRDT,E-WIRE-FIRE-CIRC-TELP,E-WIRE-MCNT,E-WIRE-消防手动,E-WIRE-CCTR,E-WIRE-FIRE-T+P"))))
        (setq zuhelst '(("E-WIRE-CCTR" "WDZN-RYJS-2x1.0-SC16") ("E-WIRE-MCNT" "WDZN-RYJS-2x1.5 -SC16") ("E-WIRE-消防手动" "WDZN-RYJS-2*1.0-SC16+WDZN-RYJS-2*1.5-SC16") ("E-WIRE-FIRE-CIRC-TELP" "WDZNRVVP-2x1.0-SC16") ("E-WIRE-FIRE-CIRC-BRDT" "WDZN-BYJ-2x1.5-SC16") ("E-WIRE-FIRE-T+P" "WDZN-RYJS-2X1.5-SC16+WDZN-BYJ-2X2.5-SC16") ("E-WIRE-FIRE-CIRC-MCNT" "WDZN-RYJS-2X1.5-SC16+WDZN-BYJ-2X2.5-SC16") ("E-WIRE-FIRE" "WDZN-RYJS-2X1.5-SC16")))
       
        (mapcar '(lambda(a / p1 p2 pt pts str tc)   
                                                 (setq tc(cdr(assoc 8 (entget a))))
                                                 (setq pts(xj-en2pt a)
                                                         p1(car pts)
                                                         p2(cadr pts)
                                                         pt(mapcar '(lambda (x y) (* (+ x y) 0.5)) p1 p2)
                                                 )                                                         
                                                 (setq str
                                                         (cadr(car(vl-remove-if-not '(lambda(x)(member tc x)) zuhelst)))
                                                 )
                                                 (entmake (list '(0 . "TEXT")'(41 . 0.35) (cons 1 str)(cons 50 (angle p1 p2)) (cons 10 pt) (cons 11 pt) (cons 72 1) (cons 73 1) (cons 40 300)))
                                         )      
                (vl-remove-if-not '(lambda(x)(= 'ENAME (type x))) (mapcar 'cadr (ssnamex ss)))
        )
        (princ)
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-17 02:40 , Processed in 0.184114 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表