lxdz443 发表于 2014-2-13 08:48:25

多段线打断标注,定义了线宽后有些不能打断的问题请教

多段线定义了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



lxdz443 发表于 2014-2-13 18:55:47

程序没有问题,是操作的问题。

hooboxu 发表于 2014-7-20 23:03:17

这功能什么用啊?~~~~~
页: [1]
查看完整版本: 多段线打断标注,定义了线宽后有些不能打断的问题请教