找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1813|回复: 10

[求助] [求助]:判断图层是否存在,如果不存在则建立图层的代码

[复制链接]

已领礼包: 2个

财富等级: 恭喜发财

发表于 2006-9-23 11:00:12 | 显示全部楼层 |阅读模式

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

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

×
(if (=(tblobjname "LAYER" "-视口") nil)
(progn
(entmake (list
'(0 . "LAYER")
'(100 . "AcDbSymbolTableRecord")
'(100 . "AcDbLayerTableRecord")
'(6 . "CONTINUOUS") ;线型
'(62 . 3) ;颜色
'(70 . 0) ;图层状态
(cons 2 "-视口") ;图层名
)
)
)
)
这是一段判断图层是否存在,如果不存在则建立图层的代码。
那怎么将图层是否打印的控制添加到里面?
先谢谢了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-9-25 21:13:42 | 显示全部楼层
(defun c:lay()
(setq ado(vlax-get-acad-object))
(setq adt(vla-get-activedocument ado))
(setq layertable(vla-get-layers adt))
(setq catchit(vl-catch-all-apply 'vla-item (list layertable "tucen")))
(if(vl-catch-all-error-p catchit)
(progn
   (setq nlay(vla-add  layertable "tucen"))
   (vla-put-color nlay acred)
   (vla-put-linetype nlay "dashed")
   (vla-put-plot nlay :vlax-false)
)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-9-25 21:17:26 | 显示全部楼层
不错,楼主幸苦了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-9-25 21:20:35 | 显示全部楼层
回复中的VLA-PUT-PLOT应为VLA-PUT-PLOTTABLE,特此更正。其他不当之处,敬请指正,谢谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

 楼主| 发表于 2006-9-26 13:27:50 | 显示全部楼层
楼上的朋友,使用你的程序加载时出现问题
(LOAD "C:/Documents and Settings/yfywk/桌面/ll.lsp") ; 错误:
输入的列表有缺陷
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2006-9-26 14:14:24 | 显示全部楼层
;;;请试试这个

(if (= (tblobjname "LAYER" "-视口") nil)
  (progn
    (entmake (list
               '(0 . "LAYER")
               '(100 . "AcDbSymbolTableRecord")
               '(100 . "AcDbLayerTableRecord")
               '(6 . "CONTINUOUS")        ;线型
               '(62 . 3)                ;颜色
               '(70 . 0)                ;图层状态
               (cons 2 "-视口")                ;图层名
             )
    )
    (command "'_layer" "p" "p" "-视口" "")                    ;打印
    ;(command "'_layer" "p" "N" "-视口" "")              ;不打印
  )
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

 楼主| 发表于 2006-9-26 19:11:19 | 显示全部楼层
楼上的朋友,我将你的代码另存为acaddoc.lsp,然后放到cad搜索路径,出现如下情况:
AutoCAD Express Tools Copyright ?2002-2004 Autodesk, Inc.

输入要加载的自定义文件的名称: '_layer
输入要加载的自定义文件的名称: p
输入要加载的自定义文件的名称: N
输入要加载的自定义文件的名称: -视口
输入要加载的自定义文件的名称: 文件名不能为空
AutoCAD 菜单实用程序已加载。
输入要加载的自定义文件的名称:
命令: *取消*



不用command就不不能实现吗??
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-12-19 21:33:25 | 显示全部楼层
(command "layer" "m" "layername" "")
以上代码可以判断layername图层是否存在,如有就设为当前层,
否则建立layername层并设为当前层.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2006-12-19 22:35:48 | 显示全部楼层

  1.   [FONT=courier new]
  2. ;;; ==================================================================
  3. ;;;                   图层颜色格式化输入
  4. ;;; 方式 : (mkla "层名" 颜色号),xyp版主的函数
  5. ;;; ==================================================================
  6. (defun xyp-mkla (name color)
  7.   (if (= (tblsearch "layer" name) nil)
  8.     (command "layer" "m" name "c" color name "")
  9.     (command "layer" "t" name "s" name "c" color name "")
  10.   )
  11. )
  12. ;;; ==================================================================
  13.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 24个

财富等级: 恭喜发财

发表于 2007-2-28 09:07:39 | 显示全部楼层

Re: [求助]:判断图层是否存在,如果不存在则建立图层的代码

最初由 yfywk 发布
[B](if (=(tblobjname "LAYER" "-视口") nil)
(progn
(entmake (list
'(0 . "LAYER")
'(100 . "AcDbSymbolTableRecord")
'(100 . "AcDbLayerTableRecord")
'(6 . "CONTINUOUS") ;线型
'(62 . 3) ;颜色
'(70 . 0... [/B]


在此基础上增加一个DXF组码 290 ,此组码为打印标志。如果设置为 0,则不打印此图层.如果为1,则打印
对已有图层的修改,可修改290组码后entmod
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-2-28 10:53:16 | 显示全部楼层
好函数,对于大批量建立图层很有用。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 17:36 , Processed in 0.320282 second(s), 52 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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