多段线打断标注,定义了线宽后有些不能打断的问题请教
多段线定义了0.6线宽和0.05线宽,0.6的不能打断,0.05的就可以正常,请教是哪里的问题。打断插入文字代码:
(defun c:dlbz(/ ss pt1 pt2 pt3 pt4 str ang e)
(setvar "cmdecho" 0)
(setq ceco(getvar "cecolor"))
(setq osmo(getvar "osmode"))
(setvar "osmode" 512)
(setq pt1(getpoint "\n在光电缆上选取一点做为标注文字的中点:"))
(while pt1
(setq ss (ssget pt1))
(setq pt2(getpoint "\n指定文字方向:" pt1))
(while pt2
(setvar "osmode" 0)
(setvar "cecolor" "ByLayer")
(setq str(getstring "\n光电缆型号规格: "))
(setq ang (atoi(angtos(angle pt1 pt2))))
(command "_text" "j" "m" pt1 "2" ang str)
(setq e(+ (* (strlen str) 0.74)1.0))
(setq pt4(polar pt1 (angle pt1 pt2) e))
(setq pt3(polar pt1 (angle pt2 pt1) e))
(setvar "cecolor" ceco)
(command "_break" ss pt4 pt3)
(setq pt4(polar pt1 (+ 1.5708 (angle pt1 pt2)) 2))
(prompt "\n光电缆长度:")
(command "_dtext" "j" "c" pt4 2 ang)
(setq pt2 nil)
);end while pt2
(setq pt1 nil)
);end while pt1
(setvar "osmode" osmo)
(princ)
)
画线程序:
(defun c:hgdl(/ a p3)
(setvar "cmdecho" 0)
(setq a (getvar "cecolor"))
(setq p3 (getvar "plinewid"))
(if (= p3 0.6)
(command "cecolor" "90")
(princ)
)
(command "_pline")
(setq p(getpoint"\光电缆起点:"))
(while p
(command p)
(setq p(getpoint p "\n下一点:"))
)
(command "")
(command "cecolor" a)
)
在自定义菜单mns里面调用的命令:
[新设光电缆]^C^C^P(progn (setvar "plinewid" 0.6)) ^Phgdl
[原有光电缆]^C^C^P(progn (setvar "plinewid" 0.05)) ^Phgdl
程序没有问题,是操作的问题。 这功能什么用啊?~~~~~
页:
[1]