liuhaixin88 发表于 2014-9-5 20:22:35

加载线型

使用lisp加载线型定义文件acadiso.lin 中的center / dashdot/ dashed/divide/hidden 线型,如果已经存在现有的线型样式,就重载!
恳请高手写一个这样的lisp,Thanks very much!

lee50310 发表于 2021-6-7 04:18:00

本帖最后由 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
)
;--------------------------------------------------


丶俗人 发表于 2021-6-1 01:20:30

依然小小鸟 发表于 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-6 22:10:18

依然小小鸟 发表于 2021-6-1 08:53
你这个lisp拖动到CAD就行吗

嗯,我是把他放在了启动项里面,每次打开或者创建文件时都会自动加载线型~至于有没有覆盖加载我就不太清楚了.没有深入了解.{:1_1:}

669423907 发表于 2014-9-5 22:14:21

Gu_xl 2013-5-29 http://bbs.mjtd.com/forum.php?mod=viewthread&tid=101668&page=2#pid588571

1993063 发表于 2014-9-5 23:05:58

不知道是不是你要的
(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")
)
)

liuhaixin88 发表于 2014-9-6 08:31:34

1993063 发表于 2014-9-5 23:05 static/image/common/back.gif
不知道是不是你要的

谢谢!这个只是没有就加载, 能不能做到,已经存在的,就重载 ?

1993063 发表于 2014-9-6 08:51:18

本帖最后由 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
)

liuhaixin88 发表于 2014-9-6 10:31:24

1993063 发表于 2014-9-6 08:51 static/image/common/back.gif
重载意义不大

要的就是这种效果,谢谢啦!

start4444 发表于 2019-5-31 15:55:36

timmy521 发表于 2020-10-20 08:50:20

意义很大,可以重新统一线型 ,这样不同人用的线型不一样,或者 定义文件不一样,重新加载,可以统一。 ,然后再设置线型比例,就所有都统一了。

依然小小鸟 发表于 2020-11-18 09:00:49

liuhaixin88 发表于 2014-9-6 10:31
要的就是这种效果,谢谢啦!

代码怎么用啊 小白不太懂
页: [1] 2
查看完整版本: 加载线型