lengxiaxi 发表于 2024-8-13 11:51:51

批量选择矩形,统一写入指定内容的文字

批量选择矩形,统一写入指定内容的文字;


矩形大小不同,文字内容是统一的,可由用户指定内容(多行文本/单行文本都可以);
文字写入后,最好能在矩形中心居中

示意效果如下图;

希望有大佬有空帮忙写一个,感激!:handshake

ssyfeng 发表于 2024-8-13 11:51:52

试试这个:



嘒彼小星 发表于 2024-8-13 17:52:05

本帖最后由 嘒彼小星 于 2024-8-13 18:37 编辑

(defun c:tt(/ ss str i s_n pt)
      (if(setq ss (ssget '((0 . "LWPOLYLINE"))))
                (progn
                        (setq str(getstring "\n输入文字:<回车选取文字>"))
                        (if (= str "")(setq str(cdr(assoc 1(entget(ssname (ssget ":S" '((0 . "TEXT,MTEXT"))) 0))))))
                        (setq i 0)
                        (repeat (sslength ss)      
                              (setq s_n(ssname ss i))
                              (setq pt(mapcar '(lambda (a b)(* 0.5 (+ a b)))(vlax-curve-getPointatParam s_n 0)(vlax-curve-getPointatParam s_n 2)))
                              (entmake (list '(0 . "TEXT") (cons 1 str) (cons 11 pt) (cons 10 pt) (cons 40 (getvar "TEXTSIZE"))'(72 . 1)'(73 . 2)))
                              (setq i(1+ i))
                        )
                )
      )
      (princ)
)
实用于矩形或者旋转的矩形 。其他多边形,则本程序不实用

muai2010 发表于 2024-8-13 21:48:40

感谢各位大佬分享

林小林子 发表于 2024-8-28 18:03:36

感谢各位大佬分享
页: [1]
查看完整版本: 批量选择矩形,统一写入指定内容的文字