717957265 发表于 2015-12-17 07:38:05

请教如何连续画直线或者多线段上边自动标注线的长度?

本帖最后由 717957265 于 2015-12-17 07:38 编辑

请教如何连续画直线或者多线段上边自动标注线的长度?
就是连续画线自动标注线的长度,我想达到这样的效果

我是做通信的,想找个画杆路的简便方法,在线上一个一个插入文字太麻烦了,求版主和各位高手教个简便方法


717957265 发表于 2015-12-17 09:17:04

自己顶一顶~~~~~~

lxdz443 发表于 2015-12-17 21:29:47

(defun c:hgl(/ls zg oce bl p1 r osm a1 len p2 p11 p22 p3 a2 p4 p5 ghstring)
(setq ls 2.25 ;设定直线上面的字偏离直线的距离为ls
      zg 2.5) ;设定字高zg
(command "-style" "Standard" "" 0 "" "" "" "" "")    ;切换到默认的字体
(graphscr) ;切换到图形窗口
(setq oce (getvar "cmdecho"))
(setvar "cmdecho" 0)         
(setq bl (getint "\n请输入比例<推荐4000>,1:")
      p1 (getpoint "\n杆路的起点:")         
      r 1.5               ;电杆半径
)
(setq osm (getvar "osmode"))
(setvar "osmode" 0)         
(while (setq a1 (getangle p1 "\n杆路的方向<右键退出/Esc退出>:"))   
(while (setq len (getdist "\n请输入杆距<米>:"))   
(setq
    p2 (polar p1 a1 (/ (* len 1000) bl))         
    p11 (polar P1 a1 r)
    p22 (polar p1 a1 (- (/ (* len 1000) bl) r))
    p3 (list (/ (+ (car p1) (car p2)) 2.0) (/ (+ (cadr p1) (cadr p2)) 2.0))
)
(command ".line" p11 p22 "")
(command ".circle" p2 r)

(if (and(> a1 (* pi 0.5))(< a1 (* pi 1.5)))
    (setq a2 (angle p2 p1))
    (setq a2 a1)
)
(setq
   p5 (polar p3 (+ a2 (/ pi 2)) ls) ;计算直线上面的文字位置
)
(command ".text" "m" p5 zg (/ (* a2 180) pi) (rtos len 2 1)) ;以中央对齐的方式写直线上面的字:米
(setq p1 p2)                  
)      
)      
(setvar "osmode" osm)         
(setvar "cmdecho" oce)
(princ)
)

717957265 发表于 2015-12-22 09:14:09

lxdz443 发表于 2015-12-17 21:29 static/image/common/back.gif
(defun c:hgl(/ls zg oce bl p1 r osm a1 len p2 p11 p22 p3 a2 p4 p5 ghstring)
(setq ls 2.25 ;设定 ...

您的代码正是我需要的太感谢你了
请问有没有批量打断被文字压住线的代码呢?

springwillow 发表于 2015-12-22 11:00:59

717957265 发表于 2015-12-22 09:14 static/image/common/back.gif
您的代码正是我需要的太感谢你了
请问有没有批量打断被文字压住线的代码呢?

可以考虑文本遮罩,方便编辑

717957265 发表于 2016-6-1 14:48:03

lxdz443 发表于 2015-12-17 21:29 static/image/common/back.gif
(defun c:hgl(/ls zg oce bl p1 r osm a1 len p2 p11 p22 p3 a2 p4 p5 ghstring)
(setq ls 2.25 ;设定 ...

文字样式改为宋体文字就压住线,这个怎么改呢?

oohen 发表于 2017-12-5 10:33:31

lxdz443 发表于 2015-12-17 21:29
(defun c:hgl(/ls zg oce bl p1 r osm a1 len p2 p11 p22 p3 a2 p4 p5 ghstring)
(setq ls 2.25 ;设定 ...

请教高手我想要的是第一张图那样的效果应该怎么弄呢?谢谢!!

jhzxj 发表于 2021-11-14 00:38:47

lxdz443 发表于 2015-12-17 21:29
(defun c:hgl(/ls zg oce bl p1 r osm a1 len p2 p11 p22 p3 a2 p4 p5 ghstring)
(setq ls 2.25 ;设定 ...

如将画出的直线改为多段线,指定线段的宽度。插入圆为为插入指定的电杆就更好了。
页: [1]
查看完整版本: 请教如何连续画直线或者多线段上边自动标注线的长度?