明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3085|回复: 15

如何获取所有已冻结的图层?谢谢!

  [复制链接]
发表于 2004-11-17 15:10:00 | 显示全部楼层 |阅读模式
如何获取所有已冻结的图层?谢谢!
发表于 2004-11-17 16:09:00 | 显示全部楼层
(defun c:test ( / lay name aa)

(while (setq lay (tblnext "layer" (not lay)))
(setq name (cdr (assoc 2 lay)))


(if (= 1 (cdr (assoc 70 lay)))
(setq aa (append (list name) aa))

)


);end while

(princ)
aa
)
发表于 2004-11-17 17:13:00 | 显示全部楼层
citykunan= 1 (cdr (assoc 70 lay)))----再想想!!
发表于 2004-11-17 18:00:00 | 显示全部楼层
好象对的哦
发表于 2004-11-17 19:51:00 | 显示全部楼层
对是对,只是不完全,考虑一下 逻辑运算
发表于 2004-11-18 08:18:00 | 显示全部楼层
dxf70=5                 -> 冻结+ 锁护 !! 要逻辑运算
发表于 2004-11-18 08:20:00 | 显示全部楼层
呵呵,确实!
发表于 2004-11-18 10:04:00 | 显示全部楼层
龙版主真是一语惊醒梦中人,果然是这样,可是怎么改啊?我试过用(<= 1 (cdr (assoc 70 lay))),但也不对,lisp是怎么进行计算的?谢谢。
发表于 2004-11-18 11:14:00 | 显示全部楼层
这样------(= (logand (cdr (assoc 70 LAY)) 1) 1)
发表于 2004-11-18 12:40:00 | 显示全部楼层
版主,好像应该如下吧。光(= (logand (cdr (assoc 70 LAY)) 1) 1)这一句,好像还是不行。 (defun c:test ( / lay name aa)

(while (setq lay (tblnext "layer" (not lay)))
(setq name (cdr (assoc 2 lay)))
(if (and (= 1 (cdr (assoc 70 lay))) (= (logior (cdr (assoc 70 lay)) 1) 1) )

(setq aa (append (list name) aa))

)


);end while

(princ)
aa
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-30 04:30 , Processed in 0.257846 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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