找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1085|回复: 9

[已解决] 如何判断是否存在一个指定的线型?(已解决)

[复制链接]
发表于 2005-1-23 13:44:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
如何用程序判断是否存在一个指定的线型?
比如“center”线型,如果存在就设成当前线型,如果不存在就加载线型并设成当前线型。
如何修改以下程序:
[php]
;;;jzxx 加载线型
;;; 程序搜寻线型ltname,如果没有找到,则会由acadiso.lin 文件添加
;;;Example: (jzxx"车库1")
(defun jzxx (ltname)
  (setq found :vlax-false)
  (setq LinetypeSel (vla-get-Linetypes (vlax-get-acad-object)))
  (VLAX-FOR entry LinetypeSel
    (if        (= (vla-get-Name entry) ltname)
      (setq found :vlax-true)
    )
  )
  (if (= found :vlax-false)
    (vla-load LinetypeSel ltname "acadiso.lin")
  )
  (princ)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-1-23 13:49:07 | 显示全部楼层
命令: (tblsearch "ltype" "continuous")
((0 . "LTYPE") (2 . "CONTINUOUS") (70 . 0) (3 . "Solid line") (72 . 65) (73 .
0) (40 . 0.0))


  1. ;;;jzxx 加载线型
  2. ;;; 程序搜寻线型ltname,如果没有找到,则会由acadiso.lin 文件添加
  3. ;;;Example: (jzxx"车库1")
  4. (defun jzxx (ltname)
  5.   (if (not (tblsearch "ltype" ltname))
  6.     (vl-catch-all-apply
  7.       'vla-load
  8.       (list (vla-get-Linetypes
  9.               (vla-get-activedocument (vlax-get-acad-object))
  10.             )
  11.             ltname
  12.             "acadiso.lin"
  13.       )
  14.     )
  15.   )
  16.   (princ)
  17. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-23 13:59:28 | 显示全部楼层
多谢!
再加上(command"-linetype""s" ltname "")就达到目的了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-1-23 14:58:47 | 显示全部楼层
最初由 xyp1964 发布
[B]多谢!
再加上(command"-linetype""s" ltname "")就达到目的了。 [/B]

  1. ;;;jzxx 加载线型
  2. ;;; 程序搜寻线型ltname,如果没有找到,则会由acadiso.lin 文件添加
  3. ;;;Example: (jzxx"车库1")
  4. (defun jzxx (ltname)
  5.   (if (not (tblsearch "ltype" ltname))
  6.     (if        (not
  7.           (vl-catch-all-error-p
  8.             (vl-catch-all-apply
  9.               'vla-load
  10.               (list (vlax-get-property
  11.                       (vlax-get-property
  12.                         (vlax-get-acad-object)
  13.                         'activedocument
  14.                       )
  15.                       'Linetypes
  16.                     )
  17.                     ltname
  18.                     "acadiso.lin"
  19.               )
  20.             )
  21.           )
  22.         )
  23.       (setvar "celtype" ltname)
  24.     )
  25.   )
  26.   (princ)
  27. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-1-23 15:32:42 | 显示全部楼层
各位版主,除用上述vl类型函数及使用诸如(command "-Linetype" "Load" Layer_Ltype "" "")外,在R14中还有其它方法吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2005-1-23 16:36:57 | 显示全部楼层
其实如果只由当前默认的.lin文件加载,可以不必判断,只要使用:
(connand "linetype" "set" "center" "")
即可将当前线形设为“center”,不必管线形是否存在。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 24个

财富等级: 恭喜发财

发表于 2005-1-23 16:42:44 | 显示全部楼层
楼上的方法建议配合系统变量expert的使用
expert值为3
3 禁止显示上述提示,以及要加载的线型已加载或要创建的线型已定义时 LINETYPE 命令所给出的提示。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-23 16:46:18 | 显示全部楼层
当前默认的.lin文件是“acad.lin”还是“acadiso.lin”?由什么参数控制?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2005-1-23 17:42:27 | 显示全部楼层
线形样板文件可能是跟随图形模板加载的,在不指定图形模板时,acad好像是使用acadiso.dwt,这里的设置都是使用acadiso前缀的(我也是自琢磨的,没有理论根据)。
正如 fools 所说的,将变量 expert 设为3以后,就不必管替换提示,使用:
(command "linetype" "load" "center" "acad.lin" "set" "center" "")
就可以使用不同的线形文字加载并设置了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-23 23:53:36 | 显示全部楼层
根据帮助文件:“如果 EXPERT 禁止显示一个提示,相应操作会认为用户已输入 y 确认提示。EXPERT 的设置会影响脚本、菜单宏、AutoLISP 及其命令函数。”这样就会对其他程序产生影响,程序结束前有必要恢复原有 EXPERT 的值。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-28 00:15 , Processed in 0.188826 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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