明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1286|回复: 1

LIST解冻图层后为什么不显示

[复制链接]
发表于 2008-3-22 18:36 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2008-3-22 18:39:05 编辑

请教一下,用LISP对图层进行操作,冻结后再解冻,图层上的东西就看不到了,用REGEN REDRAW REDRAWALL ZOOM命令都没用,用移动(ALL)一下,就可以显示出来了,为什么会这样,怎么解决?

用法:

(layer1 "freez")全部冻结
(LAYER1 "THAW")全部解冻
(LAYER1 "ON")全部开启
(LAYER1 "OFF")全部关闭
(LAYER1 "LOCK")全部锁住
(LAYER1 "UNLOCK")全部解琐

;程序来自XD

(defun layer1(do / CORD_LAYER CLAY LAYEN LAYEN_DATA LAYERLIST LAYERNAME)
  (setq cord_layer (tblnext "layer" t))
  (setq layerlist nil)
  (SETQ CLAY (GETVAR "CLAYER"))
  (while cord_layer
    (setq layername (cdr(assoc 2 cord_layer)))
    (setq layerlist (cons layername layerlist))
    (setq cord_layer (tblnext "layer"))
    )
  (cond ((= (strcase do) "OFF")
     (foreach item layerlist
    (progn (setq layen (tblobjname "layer" item))
           (setq layen_data (entget layen))
           (setq layen_data (subst (cons 62 (* -1 (abs(cdr(assoc 62 layen_data)))))
          (assoc 62 layen_data)
          layen_data
          ))
           (entmod layen_data)
      )
    ))
    ((= (strcase do) "ON")
     (foreach item layerlist
    (progn (setq layen (tblobjname "layer" item))
           (setq layen_data (entget layen))
           (setq layen_data (subst (cons 62 (abs(cdr(assoc 62 layen_data))))
          (assoc 62 layen_data)
          layen_data
          ))
           (entmod layen_data)
      )
    ))
    ((= (strcase do) "THAW")
         (foreach item layerlist
    (progn (setq layen (tblobjname "layer" item))
           (setq layen_data (entget layen))
           (IF (= (boole 1 (cdr (assoc 70 layen_data)) 1) 1)
         (setq layen_data (subst (cons 70 (1- (cdr(assoc 70 layen_data))))
          (assoc 70 layen_data)
          layen_data
          ))
         )
           (entmod layen_data)
      )
    ))
    ((= (strcase do) "FREEZ")
     (foreach item layerlist
       (IF (/= CLAY ITEM)
    (progn (setq layen (tblobjname "layer" item))
           (setq layen_data (entget layen))
           (IF (= (boole 1 (CDR (assoc 70 layen_data)) 1) 0)
         (setq layen_data (subst (cons 70 (1+ (cdr(assoc 70 layen_data))))
          (assoc 70 layen_data)
          layen_data
          ))
         )
           (entmod layen_data)
      )
    ))
    )
    ((= (strcase do) "LOCK")
     (foreach item layerlist
    (progn (setq layen (tblobjname "layer" item))
           (setq layen_data (entget layen))
           (IF (= (boole 1 (CDR (assoc 70 layen_data)) 4) 0)
            (setq layen_data (subst (cons 70 (+ (CDR (assoc 70 layen_data)) 4))
          (assoc 70 layen_data)
          layen_data
          ))
         )
           (entmod layen_data)
      )
    )
    )
    ((= (strcase do) "UNLOCK")
     (foreach item layerlisT
    (progn (setq layen (tblobjname "layer" item))
           (setq layen_data (entget layen))
           (IF (= (boole 1 (CDR (assoc 70 layen_data)) 4) 4)
            (setq layen_data (subst (cons 70 (- (CDR (assoc 70 layen_data)) 4))
          (assoc 70 layen_data)
          layen_data
          ))
         )
           (entmod layen_data)
      )
    )
    )
    
  )
  (princ)
  )

发表于 2008-3-22 22:45 | 显示全部楼层
是从晓东找来的吧!手边没有高版本,写了个小程序试试能不能将图元显示出来?
游客,本帖隐藏的内容需要发帖数高于 5 才可浏览,你当前发帖数只有 0

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

本版积分规则

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

GMT+8, 2024-5-17 14:31 , Processed in 0.272398 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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