明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1213|回复: 12

[提问] 求该如下代码

[复制链接]
发表于 2020-5-14 17:34 | 显示全部楼层 |阅读模式
10明经币
(Defun C:K1 (/ ss ct cl la old)
(setvar "cmdecho" 0)
(prompt "\nSelect entities on the layers you want to remain:")
(setq ss (ssget))
(setq ct 0
len (sslength ss)
cl (cdr (assoc 8 (entget (ssname ss 0))))
)
(setvar "clayer" cl)
(while (< ct len)
(setq la (cdr (assoc 8 (entget (ssname ss ct)))))
(if (= old nil)
(setq OLD la)
(setq OLD (strcat OLD "," la))
)
(setq ct (1+ ct))
)
(command ".layer" "off" "*" "y" "")
(command ".layer" "on" old "")
(princ)
)


选择对象:
无效的选项关键字。
; 错误: 函数被取消
输入选项 [?/生成(M)/设置(S)/新建(N)/重命名(R)/开(ON)/关(OFF)/颜色(C)/线型(L)/线宽(LW)/透明度(TR)/材质(MAT)/打印(P)/冻结(F)/解冻(T)/锁定(LO)/解锁(U)/状态(A)/说明(D)/协调(E)]: *取消*

在cad2014上运行出现上述问题,该怎么修改呀


最佳答案

查看完整内容

请楼主试一下这个行吗?
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2020-5-14 17:34 | 显示全部楼层
本帖最后由 xvjiex 于 2020-5-15 10:15 编辑

请楼主试一下这个行吗?

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2020-5-14 18:48 | 显示全部楼层
论坛搜一下,大把这种图层开关上锁的代码
回复

使用道具 举报

发表于 2020-5-14 21:31 | 显示全部楼层
不需要写这么多,给你我常用的函数吧

(defun c:xs ()                                ;显示
  (command "LAYISO")
  (princ)
)
回复

使用道具 举报

 楼主| 发表于 2020-5-15 08:27 | 显示全部楼层
gduthy 发表于 2020-5-14 21:31
不需要写这么多,给你我常用的函数吧

(defun c:xs ()                                ;显示

这个好像只是隔离,没有关闭未选定的图层
回复

使用道具 举报

 楼主| 发表于 2020-5-15 08:53 | 显示全部楼层
start4444 发表于 2020-5-14 18:48
论坛搜一下,大把这种图层开关上锁的代码

能不能麻烦大神帮忙用vla写一个啊,先谢谢了
回复

使用道具 举报

 楼主| 发表于 2020-5-15 09:26 | 显示全部楼层
xvjiex 发表于 2020-5-15 09:03
请楼主试一下这个行吗?

谢谢,可以用
  1. (defun c:G1 (/ ent lname)
  2.         (setvar "cmdecho" 0)
  3.         (setq ent (entsel "\n选择一个图层,仅能单选: "))
  4.         (if ent
  5.                 (progn
  6.                         (setq ent (entget (car ent)))
  7.                         (setq lname (cdr (assoc 8 ent)))
  8.                 )
  9.                 (setq lname (getstring "\n不选择,输入需要关闭图层的名字: "))
  10.         )
  11.         (if (= (getvar "clayer") lname)
  12.                 (setvar "clayer" "0")
  13.         )
  14.         (command "layer" "off" lname "" "y" "")
  15.         (princ)
  16. )

cad2014也出现了问题选择一个图层,仅能单选: 未知命令“Y”。按 F1 查看帮助。
未知命令“G1”。按 F1 查看帮助。
能否帮忙再看一下
回复

使用道具 举报

发表于 2020-5-15 09:30 | 显示全部楼层
输入s设置为关闭就行
命令: XS
当前设置: 隐藏图层, Viewports=Off

选择要隔离的图层上的对象或 [设置(S)]: s
输入未隔离图层的设置 [关闭(O)/锁定和淡入(L)] <关闭(O)>: o
在图纸空间视口使用 [视口冻结(V)/关(O)] <关(O)>: o
选择要隔离的图层上的对象或 [设置(S)]: 找到 1 个

选择要隔离的图层上的对象或 [设置(S)]:
已隔离图层 JMD。
回复

使用道具 举报

发表于 2020-5-15 09:36 | 显示全部楼层
直接这样也行
(defun c:xs ()                                ;显示
  (command "LAYISO" "s" "o" "o" )
  (princ)
)
回复

使用道具 举报

发表于 2020-5-15 09:41 | 显示全部楼层
  1. (defun c:G1 (/ ent lname)
  2.         (setvar "cmdecho" 0)
  3.         (setq ent (entsel "\n选择一个图层,仅能单选: "))
  4.         (if ent
  5.                 (progn
  6.                         (setq ent (entget (car ent)))
  7.                         (setq lname (cdr (assoc 8 ent)))
  8.                 )
  9.                 (setq lname (getstring "\n不选择,输入需要关闭图层的名字: "))
  10.         )
  11.         (if (= (getvar "clayer") lname)
  12.                 (setvar "clayer" "0")
  13.         )
  14.         (command "layer" "off" lname "y" "")
  15.         (princ)
  16. )
试试这个
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 23:55 , Processed in 0.209477 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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