明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4876|回复: 16

[已解答] 加载线型

  [复制链接]
发表于 2014-9-5 20:22:35 | 显示全部楼层 |阅读模式
使用lisp加载线型定义文件acadiso.lin 中的center / dashdot/ dashed/divide/hidden 线型,如果已经存在现有的线型样式,就重载!
恳请高手写一个这样的lisp,Thanks very much!
发表于 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
代码怎么用啊 小白不太懂

我不太会,看了半天翻译才理解一点点..反正这样是可以用了...也不知道对不对.哈哈
  1. (defun loadltname ( lt / cm s1 )
  2.   (setq cm (getvar 'CMDECHO))
  3.   (Cond
  4.     ((= (type lt) 'str)
  5.       (if (not (tblsearch "LTYPE" lt))
  6.         (vla-load (vla-get-Linetypes (vla-get-ActiveDocument (vlax-get-acad-object))) lt "acadiso.lin")
  7.         (progn (setvar 'CMDECHO 0)(vl-cmdf "-linetype" "load" lt (findfile "acadiso.lin") "Y" "")(setvar 'CMDECHO cm))
  8.       )
  9.     )
  10.     ((= (type lt) 'list)(foreach s1 lt (loadltname s1)))
  11.   ) t
  12. )

(loadltname '("CENTER" "DASHDOT" "DASHED"))[/code]
发表于 2021-6-6 22:10:18 | 显示全部楼层
依然小小鸟 发表于 2021-6-1 08:53
你这个lisp拖动到CAD就行吗

嗯,我是把他放在了启动项里面,每次打开或者创建文件时都会自动加载线型~至于有没有覆盖加载我就不太清楚了.没有深入了解.
发表于 2014-9-5 22:14:21 | 显示全部楼层

点评

谢谢,但不是我需要的  发表于 2014-9-6 08:30
发表于 2014-9-5 23:05:58 | 显示全部楼层
不知道是不是你要的
  1. (foreach lt '("CENTER" "DASHDOT" "DASHED" "DIVIDE" "HIDDEN")
  2.   (if (not (tblsearch "ltype" lt))
  3.     (vla-load (vla-get-linetypes (vla-get-activedocument (vlax-get-acad-object))) lt "acadiso.lin")
  4.   )
  5. )
 楼主| 发表于 2014-9-6 08:31:34 | 显示全部楼层
1993063 发表于 2014-9-5 23:05
不知道是不是你要的

谢谢!这个只是没有就加载, 能不能做到,已经存在的,就重载 ?
发表于 2014-9-6 08:51:18 | 显示全部楼层
本帖最后由 1993063 于 2014-9-6 00:31 编辑
liuhaixin88 发表于 2014-9-5 14:31
谢谢!这个只是没有就加载, 能不能做到,已经存在的,就重载 ?

重载意义不大
  1. ;;;(loadltname "CENTER")
  2. ;;;(loadltname '("CENTER" "DASHDOT" "DASHED" "DIVIDE" "HIDDEN"))
  3. (defun loadltname ( lt / cm s1 )
  4.   (setq cm (getvar 'CMDECHO))
  5.   (Cond
  6.     ((= (type lt) 'str)
  7.       (if (not (tblsearch "LTYPE" lt))
  8.         (vla-load (vla-get-Linetypes (vla-get-ActiveDocument (vlax-get-acad-object))) lt "acadiso.lin")
  9.         (progn (setvar 'CMDECHO 0)(vl-cmdf "-linetype" "load" lt (findfile "acadiso.lin") "Y" "")(setvar 'CMDECHO cm))
  10.       )
  11.     )
  12.     ((= (type lt) 'list)(foreach s1 lt (loadltname s1)))
  13.   ) t
  14. )

评分

参与人数 2明经币 +2 收起 理由
lee50310 + 1 很给力!
liuhaixin88 + 1 谢谢!

查看全部评分

 楼主| 发表于 2014-9-6 10:31:24 | 显示全部楼层
1993063 发表于 2014-9-6 08:51
重载意义不大

要的就是这种效果,谢谢啦!
发表于 2020-10-20 08:50:20 | 显示全部楼层
意义很大,可以重新统一线型 ,这样不同人用的线型不一样,或者 定义文件不一样,重新加载,可以统一。 ,然后再设置线型比例,就所有都统一了。
发表于 2020-11-18 09:00:49 | 显示全部楼层
liuhaixin88 发表于 2014-9-6 10:31
要的就是这种效果,谢谢啦!

代码怎么用啊 小白不太懂
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 04:33 , Processed in 0.185239 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表