找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3561|回复: 10

[求助]:求高手写个程序,关于冻结当前图层!!!

[复制链接]
发表于 2010-3-4 15:48:57 | 显示全部楼层 |阅读模式

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

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

×
求高手写个程序,关于冻结当前图层!!!

要求:求高手写个程序,输入命令后,在当前视口内不冻结某个图层,而冻结其他所有视口内的此图层,万分感谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2013-6-9 16:24:46 | 显示全部楼层
;只显示被选对象所在层
(DEFUN C:QQQ(/ ES EN EL A)
(princ "请选择对象,未被选中的对象所在的层将被锁定")
(setq ES (ssget) A 0 EN "" EL nil FL nil)
(while (/= EN nil)
(setq EN (ssname ES A) EL (cons EN EL) A (1+ A)))
(setq EL (cdr EL) FL (cdr (assoc ' 8 (entget (car EL)))) EL (cdr EL))
(repeat (- A 2)
(setq EN (cdr (assoc ' 8 (entget (car EL))))
  FL (strcat EN "," FL) EL (cdr EL)) )
(command "LAYER" "LO" "*" "U"  (eval FL) "")
(princ))

评分

参与人数 1D豆 +4 收起 理由
XDSoft + 4 及时回复奖!

查看全部评分

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

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

发表于 2013-6-14 01:09:31 | 显示全部楼层
当前层不能被冻结,可以关闭。

点评

可以设0层为当前层,然后冻结那个。  详情 回复 发表于 2013-6-14 08:18
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-6-14 01:34:19 | 显示全部楼层
Get the per-viewport frozen layers for paper space viewports in LispThe frozen layers of current viewport are stored in the XDATA of the paperspace viewport object. The registered application name is "ACAD".
In the XDATA, group code 1003 is used to store the layer name. The following code shows how to retrieve this information:
[pcode=lisp,true]
(defun c:ListVPFreezeLayers ()   
   (setq psEnt (tblobjname "block" "*PAPER_SPACE"))     
   (setq ent (entnext psEnt))     
   (setq ent (entnext ent))     
   (setq lst (entget ent '("*")))     
   (setq ename (cdr (assoc 0 lst)))     
   (setq i 0)     
   (while (/= ent nil)     
      (setq lst (entget ent '("*")))     
      (setq ename (cdr (assoc 0 lst)))     
      (if (= ename "VIEWPORT")     
         (progn     
            (setq i (+ i 1))     
            (print)     
            (princ "Frozen layers of No. ")     
            (princ i)     
            (princ " viewport are:")     
            (setq lst (cdadr (assoc -3 lst)))     
            (foreach memb lst     
               (if (= 1003 (car memb))     
                  (print (cdr memb))     
               )     
            )     
            (print)     
         )     
      )     
      (setq ent (entnext ent))     
   )     
   (print)     
)
[/pcode]


VPLAYER

设置视口中图层的可见性。
提示列表

将显示以下提示:
输入选项 [?/颜色(L)/线型(C)/线宽(LW)/打印样式(PS)/透明度(TR)/冻结(F)/解冻(T)/重置(R)/新建冻结(N)/视口默认可见性(V)]:
在“模型”布局中,VPLAYER 命令有两个选项。
输入选项 [新建冻结(N)/视口默认可见性(V)]:
?—列出冻结图层

显示选定视口中冻结图层的名称。
颜色

更改与图层关联的颜色。
真彩色
指定用于选定对象的真彩色。
配色系统
从已加载的配色系统中指定用于选定对象的颜色。
全部
将修改应用到所有视口中。
选择
将修改应用到选定的视口中。
当前
仅将修改应用到当前视口中。
线型

更改与图层关联的线型。
全部
选择
当前
线宽

更改与图层关联的线宽。
如果输入的线宽无效,则当前线宽将被设为最接近的固定线宽值。
如果要使用固定线宽值列表中找不到的自定义线宽来打印对象,则可以用打印样式表编辑器来自定义打印线宽。
全部
选择
当前
打印样式

设定为图层指定的打印样式。如果当前图形中使用的是颜色相关打印样式(PSTYLEPOLICY 系统变量设定为 1),则该选项不可用。请参见《用户手册》中的使用打印样式控制打印对象。
全部
选择
当前
透明度

更改与图层关联的透明度级别。
全部
选择
当前
冻结

在一个视口或多个视口中冻结一个或一组图层。不显示、不重生成或不打印冻结图层上的对象。
全部
选择
当前
当前以外。冻结跨所有布局的所有视口中的指定图层,但当前视口中的图层除外。
解冻

解冻指定视口中的图层。
全部
选择
当前
重置

将指定视口中图层的可见性设定为它们当前的默认设置。
全部
选择
当前
新建冻结

创建在所有视口中都被冻结的新图层。
视口默认可见性

解冻或冻结在后续创建的视口中指定的图层。
相关主题

冻结布局视口中的指定布局

评分

参与人数 1D豆 +10 收起 理由
XDSoft + 10 很给力!经验;技术要点;资料分享奖!

查看全部评分

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-6-14 08:18:19 | 显示全部楼层
sicky111 发表于 2013-6-14 01:09
当前层不能被冻结,可以关闭。

可以设0层为当前层,然后冻结那个。

点评

那就不叫冻结当前层了,楼主出的是一个假命题。  详情 回复 发表于 2013-6-14 10:25
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

发表于 2013-6-14 10:25:59 | 显示全部楼层
XDSoft 发表于 2013-6-14 08:18
可以设0层为当前层,然后冻结那个。

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

使用道具 举报

发表于 2013-6-14 10:43:30 | 显示全部楼层
LZ 说的是视口内Freeze,这个没有当前限制的,查看 Vplayer 命令选项
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

发表于 2013-6-14 10:45:52 | 显示全部楼层
  1. ;;;冻结当前层  sicky111 2013.06.14
  2. (defun C:TT (/ en lay clay)
  3.   (setvar "cmdecho" 0)
  4.   (princ "\n请选择要冷冻的图层...")
  5.   (setq en (entget (car (entsel)))
  6.         lay (cdr (assoc 8 en))
  7.         clay (getvar "CLAYER")
  8.   )
  9.   (if (= clay lay)
  10.     (command ".layer" "s" "0" "f" lay "")
  11.   )
  12.   (princ "\n该图层已冷冻!")
  13.   (setvar "cmdecho" 1)
  14.   (prin1)
  15. )

点评

命令在2006版本测试无效~~~  详情 回复 发表于 2013-7-11 19:16
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 275个

财富等级: 日进斗金

发表于 2013-7-11 19:16:40 | 显示全部楼层

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 23:56 , Processed in 0.471440 second(s), 52 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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