![]() |
在园内标序号
在园内标序号
www.dimcax.com 在园内标序号 在园内标序号,它可调整两序号的距离,可缺省向上向下序号的字高你根据标尺寸的字高去放大,园内的字自己根据序号的位数自动调整. (if (not (tblsearch "layer" "3")) (command "layer" "n" "3" "c" "3" "3" "") ) (if (not (tblsearch "layer" "2")) (command "layer" "n" "2" "c" "2" "2" "") ) (if (not (tblsearch "layer" "6")) (command "layer" "n" "6" "c" "3" "6" "") ) (defun c:bxh (/ p1 p2 p3 ang bx1 radi txth) ;标序号 (setq a (getreal "输入放大比例: ")) (setq l (getvar "dimtxt") l (* l a) radi (+ (/ l 2.0) 2) jl (getreal "上下序号的距离: ") g (getstring "缺省向上输入1 向下输入2 ")) ;标尺寸中的字高 (setq os (getvar "osmode")) (setvar "osmode" 0) (if (= bx nil) (setq bx 1) ) (while (setq p1 (getpoint "\n请选择起点:(回车退出)")); 在零件上选一点 (setvar "osmode" 512) (terpri) (if (= g "1")(setq bb "向上")(if (= g "2")(setq bb "向下"))) (prompt (strcat "请输入标号的位置 (回车在上一次标序号" bb (rtos jl 2 2) ")")) (setq p2 (getpoint p1 )) ; 标注位置处一点 (if (and (= g "2")(= p2 nil))(setq p2 (polar p3 (* pi 1.5) jl)) (if (and (= g "1")(= p2 nil))(setq p2 (polar p3 (* pi 0.5) jl)))) (prompt (strcat "是否要改序号(" (rtos bx 2 0) ")回车不改")) (setq bx1 (getint "\n请输入序号" )) (if (= bx1 nil)()(setq bx bx1)) (command "layer" "set" "6" "") ;改到画细线图层 (setq ang1 (angle p1 p2)) (setq p3 (polar p1 ang1 (- (distance p1 p2) radi))) ;; 画圆、线 (setvar "osmode" 0) (command "circle" p2 radi) (command "line" p1 p3 "") (command "layer" "set" "2" "" "text" "j" "m" p2 l 0 bx ) ;写文字;改到写文字图层 (setq bx (+ bx 1)) (prompt (rtos bx 2 0)) (setq p3 p2) (princ) ) (setvar "osmode" os) );----------------------- (defun c:pll () (setq i 1) (while i (setq p1 (getpoint "起点:回车退出")) (if (= p1 nil)(setq i nil) (progn (command "pline" p1 ) (while (setq p2 (getpoint p1 "到点:")) (command p2) (setq p1 p2) ) (command "" "") )) ) ) gbg 什么意思啊,没看懂呢~~~ 谢谢老顾大哥 老顾大哥,我刚才试了,不行啊,函数错误,你看一下, 不错不错,很有用 不行呀,出错。 |
所有的时间均为北京时间。 现在的时间是 07:06 AM. |