明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 780|回复: 2

[基础] 怎样让其变成画一条多段线在它的中点注记长度

[复制链接]
发表于 2014-12-15 10:28 | 显示全部楼层 |阅读模式

(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)
)
发表于 2014-12-15 11:47 | 显示全部楼层
论坛里有了,是不是这样?
(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)
)
发表于 2014-12-15 19:27 | 显示全部楼层
感谢  香田里浪人 分享程序!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-16 02:42 , Processed in 0.230928 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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