加载线型
使用lisp加载线型定义文件acadiso.lin 中的center / dashdot/ dashed/divide/hidden 线型,如果已经存在现有的线型样式,就重载!恳请高手写一个这样的lisp,Thanks very much!
本帖最后由 lee50310 于 2021-6-7 11:13 编辑
;;幫忙整理一下
;--------------------------------------------------
;;(1)加載線型 指令:test
(defun c:test()
(foreach lt '("CENTER" "DASHDOT" "DASHED" "DIVIDE" "HIDDEN")
(if (not (tblsearch "ltype" lt))
(vla-load (vla-get-linetypes (vla-get-activedocument (vlax-get-acad-object))) lt "acadiso.lin")
)
)
)
;--------------------------------------------------
;--------------------------------------------------
;;(2)重加載線型 指令:test2
(defun c:test2()
(loadltname '("CENTER" "DASHDOT" "DASHED"))
)
;;
(defun loadltname ( lt / cm s1 )
(setq cm (getvar 'CMDECHO))
(Cond
((= (type lt) 'str)
(if (not (tblsearch "LTYPE" lt))
(vla-load (vla-get-Linetypes (vla-get-ActiveDocument (vlax-get-acad-object))) lt "acadiso.lin")
(progn (setvar 'CMDECHO 0)(vl-cmdf "-linetype" "load" lt (findfile "acadiso.lin") "Y" "")(setvar 'CMDECHO cm))
)
)
((= (type lt) 'list)(foreach s1 lt (loadltname s1)))
) t
)
;--------------------------------------------------
依然小小鸟 发表于 2020-11-18 09:00
代码怎么用啊 小白不太懂
我不太会,看了半天翻译才理解一点点..反正这样是可以用了...也不知道对不对.哈哈
(defun loadltname ( lt / cm s1 )
(setq cm (getvar 'CMDECHO))
(Cond
((= (type lt) 'str)
(if (not (tblsearch "LTYPE" lt))
(vla-load (vla-get-Linetypes (vla-get-ActiveDocument (vlax-get-acad-object))) lt "acadiso.lin")
(progn (setvar 'CMDECHO 0)(vl-cmdf "-linetype" "load" lt (findfile "acadiso.lin") "Y" "")(setvar 'CMDECHO cm))
)
)
((= (type lt) 'list)(foreach s1 lt (loadltname s1)))
) t
)
(loadltname '("CENTER" "DASHDOT" "DASHED")) 依然小小鸟 发表于 2021-6-1 08:53
你这个lisp拖动到CAD就行吗
嗯,我是把他放在了启动项里面,每次打开或者创建文件时都会自动加载线型~至于有没有覆盖加载我就不太清楚了.没有深入了解.{:1_1:} Gu_xl 2013-5-29 http://bbs.mjtd.com/forum.php?mod=viewthread&tid=101668&page=2#pid588571 不知道是不是你要的
(foreach lt '("CENTER" "DASHDOT" "DASHED" "DIVIDE" "HIDDEN")
(if (not (tblsearch "ltype" lt))
(vla-load (vla-get-linetypes (vla-get-activedocument (vlax-get-acad-object))) lt "acadiso.lin")
)
) 1993063 发表于 2014-9-5 23:05 static/image/common/back.gif
不知道是不是你要的
谢谢!这个只是没有就加载, 能不能做到,已经存在的,就重载 ? 本帖最后由 1993063 于 2014-9-6 00:31 编辑
liuhaixin88 发表于 2014-9-5 14:31 static/image/common/back.gif
谢谢!这个只是没有就加载, 能不能做到,已经存在的,就重载 ?
重载意义不大;;;(loadltname "CENTER")
;;;(loadltname '("CENTER" "DASHDOT" "DASHED" "DIVIDE" "HIDDEN"))
(defun loadltname ( lt / cm s1 )
(setq cm (getvar 'CMDECHO))
(Cond
((= (type lt) 'str)
(if (not (tblsearch "LTYPE" lt))
(vla-load (vla-get-Linetypes (vla-get-ActiveDocument (vlax-get-acad-object))) lt "acadiso.lin")
(progn (setvar 'CMDECHO 0)(vl-cmdf "-linetype" "load" lt (findfile "acadiso.lin") "Y" "")(setvar 'CMDECHO cm))
)
)
((= (type lt) 'list)(foreach s1 lt (loadltname s1)))
) t
) 1993063 发表于 2014-9-6 08:51 static/image/common/back.gif
重载意义不大
要的就是这种效果,谢谢啦! 意义很大,可以重新统一线型 ,这样不同人用的线型不一样,或者 定义文件不一样,重新加载,可以统一。 ,然后再设置线型比例,就所有都统一了。 liuhaixin88 发表于 2014-9-6 10:31
要的就是这种效果,谢谢啦!
代码怎么用啊 小白不太懂
页:
[1]
2