请教如何连续画直线或者多线段上边自动标注线的长度?
本帖最后由 717957265 于 2015-12-17 07:38 编辑请教如何连续画直线或者多线段上边自动标注线的长度?
就是连续画线自动标注线的长度,我想达到这样的效果
我是做通信的,想找个画杆路的简便方法,在线上一个一个插入文字太麻烦了,求版主和各位高手教个简便方法
自己顶一顶~~~~~~ (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)
) 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 ;设定 ...
您的代码正是我需要的太感谢你了
请问有没有批量打断被文字压住线的代码呢? 717957265 发表于 2015-12-22 09:14 static/image/common/back.gif
您的代码正是我需要的太感谢你了
请问有没有批量打断被文字压住线的代码呢?
可以考虑文本遮罩,方便编辑 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 ;设定 ...
文字样式改为宋体文字就压住线,这个怎么改呢? 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 ;设定 ...
请教高手我想要的是第一张图那样的效果应该怎么弄呢?谢谢!! 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]