明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3723|回复: 26

[提问] 请大神写个简单代码 ,

[复制链接]
发表于 2019-8-4 11:16:38 | 显示全部楼层 |阅读模式
20明经币
本帖最后由 孙玉坤 于 2019-8-4 18:10 编辑

功能就是   一键锁定所有图层,然后知道解锁自己  新建的图层,图层名为()01一层平面,02二层平面,03三层平面,04四层平面,05五层平面,06跃层平面,09栏杆,07顶层,00墙面,011窗户,08地板配件,014瓦顶,016区域雕刻---浅洗,018区域雕刻---深洗,017划线,012窗筋,015玻璃,013凸窗,轮廓偏移,019窗紧外框,10-0.8abs,10-1.0abs,10-1.2abs,10-1.5abs,10-2.0abs,10-3.0abs,10-4.0abs,窗线样式,板线,槽线,00辅助线,模型走线-垂直,模型走线-水平,模型走线-临时,layer1)
附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

;锁定指定图层外的图层 (defun c:tt (/ lst name-lst x) (setq name-lst '( "01一层平面" "02二层平面" "03三层平面" "04四层平面" "05五层平面" "06跃层平面" "09栏杆" "07顶层" "00墙面" "011窗户" "08地板配件" "014瓦顶" ...
发表于 2019-8-4 11:16:39 | 显示全部楼层
本帖最后由 taoyi0727 于 2019-8-4 18:26 编辑

;锁定指定图层外的图层
(defun c:tt (/ lst name-lst x)
        (setq name-lst '(
                                                                                "01一层平面" "02二层平面" "03三层平面" "04四层平面" "05五层平面"
                                                                                "06跃层平面" "09栏杆" "07顶层" "00墙面" "011窗户" "08地板配件" "014瓦顶"
                                                                                "016区域雕刻---浅洗" "018区域雕刻---深洗" "017划线" "012窗筋" "015玻璃"
                                                                                "013凸窗" "轮廓偏移" "019窗紧外框" "10-0.8abs" "10-1.0abs" "10-1.2abs"
                                                                                "10-1.5abs" "10-2.0abs" "10-3.0abs" "10-4.0abs" "窗线样式" "板线" "槽线"
                                                                                "00辅助线" "模型走线-垂直" "模型走线-水平" "模型走线-临时" "layer1"
                                                                        )
        )
        (vlax-for x (vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object)))
                (if (not (member (vlax-get x 'name) name-lst))
                        (Vla-put-Lock x :vlax-true)
                )
        )
)


看看是不是这样
回复

使用道具 举报

发表于 2019-8-4 12:07:16 | 显示全部楼层
然后知道解锁自己 ????
回复

使用道具 举报

 楼主| 发表于 2019-8-4 12:10:21 | 显示全部楼层
本帖最后由 孙玉坤 于 2019-8-4 12:26 编辑
kanxiaokan 发表于 2019-8-4 12:07
然后知道解锁自己 ????

自动解锁自己 新建的图层   其他图层全部锁定,  明白表达的意思了吧
回复

使用道具 举报

发表于 2019-8-4 12:29:11 | 显示全部楼层
本帖最后由 kanxiaokan 于 2019-8-4 16:09 编辑

(defun c:tt (/ cmd makelayer)
(defun makelayer (name_layer layer_color)  ;(makelayer 图层名 层颜色)
  (if (null (tblsearch "LAYER" name_layer))
  (entmake (list '(0 . "LAYER")
                 '(100 . "AcDbSymbolTableRecord")
                 '(100 . "AcDbLayerTableRecord")
                  (cons 2 name_layer)      ;图层名称
                 '(70 . 0)                 ;图层状态
                  (cons 62 layer_color)    ;图层颜色
                 '(6 . "bylayer")          ;图层线型
                 )
           )(vl-cmdf "LAYER" "u" name_layer "")
    );_if
  )
  (vl-cmdf "_.undo" "be")
  (setq cmd (getvar "CMDECHO"))
  (setvar "cmdecho" 0)
  (vl-cmdf "LAYER" "lo" "*" "")
  (MAKELAYER "01一层平面" 7)
  (MAKELAYER "02二层平面" 7)
  (MAKELAYER "03三层平面" 7)
  (MAKELAYER "04四层平面" 7)
  (MAKELAYER "05五层平面" 7)
  (MAKELAYER "06跃层平面" 7)
  (MAKELAYER "09栏杆" 7)
  (MAKELAYER "06跃层平面" 7)
  ;图层参考上面自自己弄
  (vl-cmdf "_.undo" "e")
  (setvar "cmdecho" CMD)
  (princ)
  )



回复

使用道具 举报

发表于 2019-8-4 12:36:17 | 显示全部楼层
好东西收藏一下
回复

使用道具 举报

发表于 2019-8-4 12:46:41 | 显示全部楼层
这个表达.......看的我一脸蒙B
回复

使用道具 举报

 楼主| 发表于 2019-8-4 13:33:38 | 显示全部楼层
kanxiaokan 发表于 2019-8-4 12:29
(defun c:tt (/ cmd makelayer)
(defun makelayer (name_layer layer_color)  ;(makelayer 图层名 层颜色 ...

谢谢 ,执行没有结果
回复

使用道具 举报

发表于 2019-8-4 14:40:12 | 显示全部楼层
孙玉坤 发表于 2019-8-4 13:33
谢谢 ,执行没有结果

你的意思不是锁上除了新建的层吗?新建的图层你参考,自己补全。
回复

使用道具 举报

发表于 2019-8-4 14:40:42 | 显示全部楼层
taoyi0727 发表于 2019-8-4 12:46
这个表达.......看的我一脸蒙B

萌新写的代码,请指教!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-18 16:13 , Processed in 0.212625 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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