明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4442|回复: 26

求大神修改一键切换图层代码(图层切换)(沙盘模型画图)

[复制链接]
发表于 2019-11-25 11:59:32 | 显示全部楼层 |阅读模式
本帖最后由 296715530 于 2019-11-30 07:53 编辑

以下是在明经上找的两个代码
第一个

(defun YH_chlayer (YH_layer / YH_S)
(if (null (tblsearch "LAYER" YH_layer))
    (entmake (list
        '(0 . "LAYER")
        '(100 . "AcDbSymbolTableRecord")
        '(100 . "AcDbLayerTableRecord")
        (cons 2 YH_layer)          ;图层名称的意思
        '(70 . 0)                 ;图层状态
        '(62 . 7)                 ;图层颜色
        '(6 . "bylayer")          ;图层线型
)
      )
    )
(setq YH_S (cadr (ssgetfirst)))
(if YH_S
    (command "CHPROP" YH_S "" "la" YH_layer "c" "bylayer" "")
    (setvar "clayer" YH_layer)
    )
(princ)
)
(defun c:0 ()
(YH_chlayer "_10")
)
(defun c:1 ()
(YH_chlayer "_1")
)
(defun c:2 ()
(YH_chlayer "_2")
)
(defun c:3 ()
(YH_chlayer "_3")
)
(defun c:4 ()
(YH_chlayer "_4")
)
(defun c:5 ()
(YH_chlayer "_5")
)
(defun c:6 ()
(YH_chlayer "_6")
)
(defun c:7 ()
(YH_chlayer "_7")
)
(defun c:8 ()
(YH_chlayer "_8")
)
(defun c:9 ()
(YH_chlayer "_9")
)



第二个

(defun lyh(mylsp / ss)
(setvar"cmdecho"0)
(if(setq ss(ssget"i"))
(command"_.change"SS"""p""LA"mylsp"")
(setvar"clayer"mylsp))
(princ))

(defun C:1 ()
(lyh"_1"))
(defun C:2 ()
(lyh"_2"))
(defun C:3 ()
(lyh"_3"))
(defun C:4 ()
(lyh"_4"))
(defun C:5 ()
(lyh"_5"))
(defun C:6 ()
(lyh"_6"))
(defun C:7 ()
(lyh"_7"))
(defun C:8 ()
(lyh"_8"))
(defun C:9 ()
(lyh"_9"))
(defun C:0 ()
(lyh"_10"))

上班时基本上用这几个图层画沙盘模型图,本人不懂代码,求大神帮忙修改下。。。方便的加好友留下联系方式,以便感谢。。。
1,第一个代码可以实现没有此图层可以自动建立一个图层,但是图层颜色是白色的,能否实现跟图片上一样建立的图层不同颜色。(能实现就不用复制模板了)
*2,两个代码哪个都行,能否实现空选时按1+空格改变当前层为“_1” (此功能已经实现) 。
选择图元后按1+空格,把图元变到"_1"图层,当前层不变。(_1是自己设置的图层名字)(需要这个功能)
感谢明经,感谢热心人士。。

本帖子中包含更多资源

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

x
发表于 2019-12-13 18:56:04 | 显示全部楼层

命令:te;图层号0~254区间

  1. (defun C:TE(/ dx aa a1)
  2.   (setq
  3.     aa (getint "\n 输入图层号:")
  4.     a1 (strcat "_" (itoa aa))
  5.   )
  6.   (if (not(tblobjname "layer" a1))
  7.     (command "-layer" "n" a1 "C" aa a1 "L" "Continuous" a1 "LW" "0.25" a1 "")
  8.   )
  9.   (if(setq dx (cadr (ssgetfirst)))
  10.     (command "Chprop" dx "" "LA" a1 "")
  11.   )
  12.   (princ)
  13. )
[/code]
 楼主| 发表于 2019-12-2 10:38:16 来自手机 | 显示全部楼层
cqf1980 发表于 2019-12-2 10:31
选择图元后按1+空格,把图元变到"_1"图层,当前层不变。(_1是自己设置的图层名字)(需要这个功能)
第一 ...

这倒无所谓,建个模板复制粘贴就行了
发表于 2019-12-2 10:31:32 | 显示全部楼层
选择图元后按1+空格,把图元变到"_1"图层,当前层不变。(_1是自己设置的图层名字)(需要这个功能)
第一个代码可以实现。

就是新建图层时颜色是固定白色,能自定义颜色就完美了
 楼主| 发表于 2019-11-25 15:43:44 | 显示全部楼层
有好心人帮忙改下吗,可以留下联系方式详谈的
发表于 2019-11-25 22:17:56 | 显示全部楼层
本帖最后由 wyl219 于 2019-11-26 10:26 编辑

内容更新 编辑掉
发表于 2019-11-26 16:13:43 | 显示全部楼层
楼主 做模型的???同行呀
 楼主| 发表于 2019-11-26 20:03:51 来自手机 | 显示全部楼层
love1030312 发表于 2019-11-26 16:13
楼主 做模型的???同行呀

建筑沙盘画图,你也是干这个的吗
发表于 2019-11-26 20:21:26 | 显示全部楼层
我觉得楼主应该换过一个思路,先把图层建好再切换
 楼主| 发表于 2019-11-26 20:28:48 来自手机 | 显示全部楼层
maiko 发表于 2019-11-26 20:21
我觉得楼主应该换过一个思路,先把图层建好再切换

是建好的,就用10个图层不到,别的图层都锁上的,用不着
 楼主| 发表于 2019-11-30 08:01:33 | 显示全部楼层
本帖最后由 296715530 于 2019-11-30 08:03 编辑

有大神帮忙吗,例如,空选时按1切换图层,选择图元时按1(而不是11)改变图元的图层,当前层不变,当前层不变,当前层不变。之前用某工具箱可以实现,换电脑还要注册,太麻烦了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 04:41 , Processed in 0.193794 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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