skg123 发表于 2023-2-19 00:11:50

MTEXT 文字竖向排版 -初学者来看


[*]            (entmake (list '(0 . "MTEXT")
[*]                '(100 . "AcDbEntity")
[*]                   '(100 . "AcDbMText")            
[*]               (cons 1 (strcat"中国葛洲坝集团股份有限公司")) ;
[*]                     
[*]                   (cons 10 PT)
[*]                  (cons 402 )
[*]                  '(41 . 5.74092);文字竖向排版   
[*]               '(71 . 5)
[*]                   '(72 . 5)
[*]               (cons 50 0)
[*]               (cons 62 3)
[*]               (cons 8 "图框") )
[*]         );标注


尘缘一生 发表于 2023-2-19 07:16:00

本帖最后由 尘缘一生 于 2023-2-19 16:39 编辑

还可以这样实现(三领集成展示)


[*];;单行MTEXT文本-动态拉伸---(一级)----
[*](defun macedit-mtext (nam / p0 loop gr pt)
[*](setq p0 (car (e-box4 nam t)) obj (en2obj nam))
[*](princ"\n 指定拉伸点:")
[*](setq loop t)
[*](while loop
[*]    (setq gr (grread t 15 0) pt (cadr gr))
[*]    (cond
[*]      ((or (= (car gr) 3);;左键
[*]         (member (car gr) '(11 25)) ;;右键
[*]       )
[*]      (setq loop nil)
[*]      )
[*]      ((= (car gr) 5)
[*]      (vla-put-Width obj (distance p0 pt))
[*]      )
[*]    )
[*])
[*])


[*]

[*];;单行MTEXT文本-动态拉伸---(一级)----
[*](defun macedit-mtext (nam / p0 ent loop gr pt)
[*](if (= (oneorno nam) nil) ;MTEXT多行的,格式复杂者
[*]    (progn
[*]      (sl-ss-txt2mtext (expmtext nam) 1.5) ;分解MTEXT,并再次重生成不复杂格式MTEXT
[*]      (setq nam (entlast))
[*]    )
[*])
[*](setq p0 (car (txbox nam nil)) ent (entget nam))
[*](princ"\n 指定拉伸点:")
[*](setq loop t)
[*](while loop
[*]    (setq gr (grread t 15 0) pt (cadr gr))
[*]    (cond
[*]      ((or (= (car gr) 3);;左键
[*]         (member (car gr) '(11 25)) ;;右键
[*]       )
[*]      (setq loop nil)
[*]      )
[*]      ((= (car gr) 5)
[*]      (entmod (emod ent 41 (distance p0 pt)))
[*]      )
[*]    )
[*])
[*])


guosheyang 发表于 2023-2-19 09:38:43

感谢分享代码!

清清绿茶 发表于 2023-2-20 11:21:42

可以提供一下e-box4函数源代码吗

尘缘一生 发表于 2023-2-20 18:27:29

本帖最后由 尘缘一生 于 2023-2-20 18:34 编辑

清清绿茶 发表于 2023-2-20 11:21
可以提供一下e-box4函数源代码吗
这个就是取得MTEXT的包容盒的左下角,你换一换即可,E-BOX4集成太复杂,或者你这个任意取下点


[*];;单行MTEXT文本-动态拉伸---(一级)----
[*](defun macedit-mtext (nam / p0 loop gr pt)
[*](setq p0 (cadr (grread 5)) obj (en2obj nam))
[*](princ"\n 指定拉伸点:")
[*](setq loop t)
[*](while loop
[*]    (setq gr (grread t 15 0) pt (cadr gr))
[*]    (cond
[*]      ((or (= (car gr) 3);;左键
[*]         (member (car gr) '(11 25)) ;;右键
[*]       )
[*]      (setq loop nil)
[*]      )
[*]      ((= (car gr) 5)
[*]      (vla-put-Width obj (distance p0 pt))
[*]      )
[*]    )
[*])
[*])

清清绿茶 发表于 2023-2-21 10:33:19

尘缘一生 发表于 2023-2-20 18:27
这个就是取得MTEXT的包容盒的左下角,你换一换即可,E-BOX4集成太复杂,或者你这个任意取下点




感谢大佬!
页: [1]
查看完整版本: MTEXT 文字竖向排版 -初学者来看