明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3472|回复: 6

申请编程:冻结选定层以外的所有层!

[复制链接]
发表于 2006-6-8 16:19:00 | 显示全部楼层 |阅读模式

请高手帮忙,我经常想把某一个层以外的层都冻结,只剩下我选的层,方便画图

发表于 2006-6-9 19:58:00 | 显示全部楼层

我只见过 某一个层以外的层都关闭     只剩下我选的层,方便画图

发表于 2006-7-17 16:17:00 | 显示全部楼层
上传不了,给我发邮件,我传给你alex@peridot.com.cn
发表于 2006-10-10 11:23:00 | 显示全部楼层
<BR>(DEFUN C:DW(/ VAR1 VAR2 O A P Q)  ;功能:冻结非物体所在layer<BR>  (SETQ VAR1 (GETVAR "BLIPMODE"))<BR>  (SETQ VAR2 (GETVAR "CMDECHO"))<BR>  (SETVAR "BLIPMODE" 0)<BR>  (SETVAR "CMDECHO"  0)<BR>  (PRINC "\n 冻结非物体所在层: ")<BR>  (SETQ O (ENTSEL))<BR>  (SETQ A (ENTGET (CAR O)))<BR>  (SETQ P (CDR (ASSOC 8 A)))       ;物体所在层<BR>  (COMMAND "-LAYER" "S" P "")<BR>  (COMMAND "-LAYER" "F" "*" "")<BR>  (SETVAR "BLIPMODE" VAR1)<BR>  (SETVAR "CMDECHO"  VAR2)<BR>  (PRINC "\nOK!")(PRINC)<BR>)<BR>(DEFUN C:TA()<BR>  (SETVAR "CMDECHO" 0)<BR>  (PRINC "\n 解冻!!!")<BR>  (COMMAND "-LAYER" "T" "*" "")<BR>  (PRINC "\nOK!")(PRINC)<BR>)
发表于 2007-6-6 23:48:00 | 显示全部楼层

(defun *$dyq-error$* (msg)
  ;(command ".undo" "")
  (setq *error* &olderr&)
  ;(princ)
)
(defun c:sd (/ layerlist ss num n lname prinname)
  ;锁定所选图层以外的图层
  (prompt
    "\n请选择不要锁定的图层,要解锁所有图层请直接按右键:"
  )
  (setq &olderr& *error*)
  (setq *error* *$dyq-error$*)
  (setq layerlist (list "0"))
  (if (setq ss (ssget))
    (progn
      (setq num (sslength ss))
      (setq n 0)
      (repeat num
 (setq lname (cdr (assoc '8 (entget (ssname ss n)))))
 (if (not (member lname layerlist))
  ;如果对象的图层名已经存在则不再加入列表
   (setq layerlist (cons lname layerlist))
 )
 (setq n (+ n 1))
      )
      (command "-layer" "lo" "*" "")
      (setq num (length layerlist))
      (setq prinname "")
      (setq n 0)
      (repeat (- num 1)
 (command "-layer" "u" (nth n layerlist) "")
 (if (= n 0)
   (setq prinname (nth n layerlist))
   (setq prinname (strcat (nth n layerlist) "、" prinname))
 )
 (setq n (+ n 1))
      )
      (prompt
 (strcat "\n除"
  (itoa (- num 1))
  "个图层外,其他均锁定了:"
  prinname
 )
      )
    )
    (progn
      (princ "\n所有图层均解锁了!")
      (command "-layer" "u" "*" "")
    )
  )
  (setq *error* &olderr&)
  (princ)
)

发表于 2007-6-10 00:16:00 | 显示全部楼层
好像是从XD里down的我的代码吧,哈哈。
发表于 2007-9-6 17:34:00 | 显示全部楼层

程序也可以这样啊!冻结选定的层以外的所有的层,就是反向冻结层,只可看见所选择的层中的对象

  dim ppsetmm as acadentity

 .......  '略    选择集操作

     dim ppsetaa as acadlayer

    for each ppsetaa in thisdrawing.layers

     if ppsetaa.name<>ppsetmm.layer then

          ppsetmm.freeze=true

     end if

      就这么简单

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

本版积分规则

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

GMT+8, 2025-5-25 23:12 , Processed in 0.165584 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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