明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5906|回复: 6

[讨论] 如何快速变换到指定图层?

[复制链接]
发表于 2016-2-19 11:54:04 | 显示全部楼层 |阅读模式
本帖最后由 szxgsh 于 2016-2-19 15:26 编辑

如题,如何快速变换到指定图层?

有这样一个需求:
画图过程中,经常碰到图层切换问题,有时候图层列表里图层太多,寻找好困难。

比如当前层是:
    层名:345;
    线型:dash
    颜色 :8

我想去另外一个层:
    层名:369
    线型:hidden
    颜色 :3

想实现这样一个功能,输入命令:1a,立即将369改为当前层,这里有个问题,如果当前图没有这个图层,要按上述369的图层设置,生成一个新的图层,然后再改369为当前层。

===============================
我在网上找到一个类似的,不会修改:

;;;;;;;;;尺寸线归为DIM层
(defun hh:dim(/ ss)
(command "layer" "make" "DIM" "Color" 3 "" "")
(setq ss (ssget "X" '((0 . "DIMENSION"))))
(command "Chprop" ss "" "layer" "DIM" "")
)
;;;;;;;;;尺寸线归为DIM层

===============================
弱弱的问一下,hh:dim,中的冒号是干嘛的?


发表于 2016-2-19 12:09:25 | 显示全部楼层
命令: -LAYER
当前图层:  0
输入选项 [?/生成(M)/设置(S)/新建(N)/重命名(R)/开(ON)/关(OFF)/颜色(C)/线型(L)/线宽(LW)/透明度(TR)/材质(MAT)/打印(P)/冻结(F)/解冻(T)/锁定(LO)/解锁(U)/状态(A)/说明(D)/协调(E)]: M
输入新图层的名称 (成为当前图层) <0>: 1
输入选项 [?/生成(M)/设置(S)/新建(N)/重命名(R)/开(ON)/关(OFF)/颜色(C)/线型(L)/线宽(LW)/透明度(TR)/材质(MAT)/打印(P)/冻结(F)/解冻(T)/锁定(LO)/解锁(U)/状态(A)/说明(D)/协调(E)]:
 楼主| 发表于 2016-2-19 12:18:03 | 显示全部楼层
Linhay 发表于 2016-2-19 12:09
命令: -LAYER
当前图层:  0
输入选项 [?/生成(M)/设置(S)/新建(N)/重命名(R)/开(ON)/关(OFF)/颜色(C)/线型 ...

这个不科学,有些图层名是很怪的名字,或者特别长,那还不如直接去菜单去找。
意思是,我输入1a,就能直接去那个层。简单高效

点评

按这思路自己做个lisp不就科学了吗?  发表于 2016-2-19 12:40
发表于 2016-2-19 12:38:07 | 显示全部楼层
;;;更改当前图层为所选物体所在的图层
(defun c:as (/ ent entlay err old-osmode old-ortho old-cmdecho)
  (setvar "cmdecho" 0)
  (setvar "errno" 0)
  (setq ent (entsel "\n选择一个对象,将其所在的图层设置为当前图层 :"))
  (setq err (getvar "errno"))
  (while (/= err 52)
    (if        (= err 7)
      (progn
        (setvar "errno" 0)
        (setq ent (entsel "没有选中.\n选择一个对象,将其所在的图层设置为当前图层 :"))
        (setq err (getvar "errno"))
        )
      (setq err 52)
      )
    )
  (if (= (getvar "errno") 52)
    (exit)
    )
  (setq entlay (cdr (assoc 8 (entget (car ent)))))
  (command "_.layer" "set" entlay "")
  (princ)
  )
 楼主| 发表于 2016-2-19 13:06:28 | 显示全部楼层
chg 发表于 2016-2-19 12:38
;;;更改当前图层为所选物体所在的图层
(defun c:as (/ ent entlay err old-osmode old-ortho old-cmdecho) ...

这个也不是我的诉求。我改变层的时候,不用点一个物体来改当前层,是先搜索当前图有没有,如果没用要自己生成一个。
发表于 2016-2-20 17:14:38 | 显示全部楼层
szxgsh 发表于 2016-2-19 13:06
这个也不是我的诉求。我改变层的时候,不用点一个物体来改当前层,是先搜索当前图有没有,如果没用要自己 ...

别人怎么知道你要切换到那一个图层去?叫你输入图层名你嫌麻烦,叫你点取你说可能没有,程序知道你想切换到一个你臆想的图层去?你说你怎么给出要切换的图层名?无非是输入或选取。简直无理取闹
 楼主| 发表于 2016-2-21 12:12:58 | 显示全部楼层
陈进佳 发表于 2016-2-20 17:14
别人怎么知道你要切换到那一个图层去?叫你输入图层名你嫌麻烦,叫你点取你说可能没有,程序知道你想切换 ...

你理解错了,我只是要高手们提供一个样板,比如图层1,然后我自己去定义很多层。然后才可以用命令去到指定的图层。我们的图层有200多个,用鼠标去选,会比较浪费时间。
已经找人解决了。谢谢大家关心。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-20 21:29 , Processed in 0.200503 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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