怎样让其变成画一条多段线在它的中点注记长度
(defun c:2()
(setvar "cmdecho" 0)
(setq en(entsel"\n 选取多段线计算长度:"))
(while en
(setq en (car en))
(command "lengthen" en"")
(setq dd (getvar "perimeter"))
(princ (strcat "\n 长度="(rtos dd 2)))
(setq pt(getpoint "\n 文字位置点:"))
(setq old_hh(getvar "textsize"))
(setq str_hh(strcat"\n 高度<"(rtos old_hh 2)">:"))
(setq hh(getdist pt str_hh))
(if(null hh)(setq hh old_hh))
(command "text" pt hh 0(strcat "长度=" (rtos dd 2)))
(setq en (entsel"\n 选取多段线计算长度:"))
)
(prin1)
) 论坛里有了,是不是这样?
(defun c:tts (/ p q pt)
;(setvar'osmode 16384)
(setvar "cmdecho" 0)
(setvar "dimzin" 0);;保留小数位数时如果位数不足可以补零
(setq TextHeight (getdist "\n请输入文字高度: "))
(while (setq p (getpoint "\n指定起点: "))
(command "pline" "_non" p)
(while (setq q (getpoint p "\n下一点: ")
pt (mapcar '(lambda (x) (/ x 2)) (mapcar '+ p q)))
(command "_non" q)
(entmake
(list
'(0 . "TEXT")
(cons 10 pt)
(cons 40 1)
(cons 1 (rtos (distance p q) 2 2))
(cons 50 (if (< (/ Pi 2) (angle p q) (* 1.5 pi)) (angle q p) (angle p q)))
(cons 8 "标注")
(cons 7 "BG_ST")
(cons 62 3)
(cons 72 1)
(cons 73 1)
(cons 40 TextHeight)
(cons 41 0.7)
(cons 11 pt)
)
)
(setq p q)
)
(command "")
)
;(setvar 'osmode (- (getvar osmode) 16384))
(setvar "cmdecho" 1)
(princ)
) 感谢香田里浪人 分享程序!
页:
[1]