求改变线型的小程序!
各位,大家好!我在画图时,经常需要画一些虚线,所我希望能在不改变我已画线所在的图层,而只是改变该线条的线型。故,现请各位帮忙编写这样的一条LISP程序!(如:我画好的一条直线,它的1号图层的-实线,然后选择该线条输入xx,则该线条变为虚线,但该线条仍然属于1号图层,只是线型变为虚线,其它的属性都不变。)
希望大家不怜指教!
谢谢!
;;;加载虚线和点划线
(defun g/getAllLineTypes (/ g/1/LVar0 g/1/LVar1 g/1/LVar2 g/1/LVar3 g/1/LVar4)
(setq g/1/LVar0 (vla-get-LineTypes cDocum) ; 获取线形集合
g/1/LVar1 (vla-get-Count g/1/LVar0); 获取集合中元素的个数
g/1/LVar2 0 ; 初始化索引号
g/1/LVar3 nil ; 初始化所有线形的表
)
(while (< g/1/LVar2 g/1/LVar1)
(setq g/1/LVar4 (vla-get-name (vla-item g/1/LVar0 g/1/LVar2))
g/1/LVar3 (cons g/1/LVar4 g/1/LVar3)
g/1/LVar2 (1+ g/1/LVar2)
)
)
(if (not (member "CENTER2" g/1/LVar3))
(progn
;;获取测量单位是英制还是公制
(setq g/1/LVar2 (getvar "MEASUREMENT"))
(if (= g/1/LVar2 0)
(setq g/1/LVar4 "acad.lin")
(setq g/1/LVar4 "acadISO.lin")
)
(setq g/1/LVar1 (findfile g/1/LVar4))
(vla-load g/1/LVar0 "CENTER2" g/1/LVar1)
(setq g/1/LVar3 (cons "CENTER2" g/1/LVar3))
)
)
(if (not (member "HIDDEN2" g/1/LVar3))
(progn
(setq g/1/LVar2 (getvar "MEASUREMENT"))
(if (= g/1/LVar2 0)
(setq g/1/LVar4 "acad.lin")
(setq g/1/LVar4 "acadISO.lin")
)
(setq g/1/LVar1 (findfile g/1/LVar4))
(vla-load g/1/LVar0 "HIDDEN2" g/1/LVar1)
(setq g/1/LVar3 (cons "HIDDEN2" g/1/LVar3))
)
)
g/1/LVar3
) 这不就是改一下线型名就可以了吗?,组码是6 nzl1116 发表于 2013-7-15 16:04 static/image/common/back.gif
这不就是改一下线型名就可以了吗?,组码是6
@nzl1116
你好!谢谢你的回复.
我就是不想去点选线条,然后再点线型为虚线那样.
我就用个LISP程序,用快捷键xx,就能通过键盘操作,提高画图速度!
希望得到你的帮忙!
谢谢!
论坛上有ZZXXQQ写的虚实变换 程序。。 你搜索下看看 泉(Ango) 发表于 2013-7-15 18:09 static/image/common/back.gif
@nzl1116
你好!谢谢你的回复.
我就是不想去点选线条,然后再点线型为虚线那样.
这么简单的东西,你也不想动手? (defun c:q1()
(setq ss (ssget":S"))
(command "change" ss "" "P" "lt" "DASHED" "")
(princ)) 669423907 发表于 2013-7-15 19:40 static/image/common/back.gif
(defun c:q1()
(setq ss (ssget":S"))
(command "change" ss "" "P" "lt" "DASHED" "")
是不是要先判断,虚线或点划线要不要先加载呀? nzl1116 发表于 2013-7-15 19:51 static/image/common/back.gif
;;;加载虚线和点划线
谢谢你,只是我不懂 669423907 发表于 2013-7-15 19:55 static/image/common/back.gif
谢谢你,只是我不懂
你也谦虚了,看你积分也蛮高的
页:
[1]
2