明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1377|回复: 1

这段子程序是什么作用?老师们帮忙解释一下?

[复制链接]
发表于 2005-1-2 16:54:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2005-1-2 20:30:21 编辑

(defun ss_layer_check(ss / sss i entname ent lcode70)
(if ss
(progn
(setq sss (ssadd) i 0)
(repeat (sslength ss)
(setq entname (ssname ss i))
(if (setq ent (entget entname))
(progn
(setq lcode70 (cdr (assoc 70 (entget (tblobjname "LAYER" (cdr (assoc 8 ent)))))))
(if (or (= lcode70 0)(= lcode70 64))
(setq sss (ssadd entname sss))
)
)
)
(setq i (1+ i))
)
(if (= (sslength sss)0)(setq sss nil))
)
)
sss;
) 主函数如下: (defun c:xxx()
(setq pos1 (getpoint "\n第一点 : "))
(if pos1 (setq pos2 (getcorner pos1 "\n第二点 : ")))
(setq ssw (ssget "W" pos1 pos2 (list '(-4 . "<OR")'(0 . "LWPOLYLINE")'(0 . "POLYLINE")'(-4 . "OR>"))))
(if ssw (setq ssw (ss_layer_check ssw)))
(if ssw (command "EXPLODE" ssw))
) 尤其是其中的(or (= lcode70 0)(= lcode70 64))那个64码代表什么意义?
发表于 2005-1-3 08:49:00 | 显示全部楼层
是一个过滤选择集的子程序,两个代码意义参考帮助文件中的DXF部分。。。 其实可以将主函数中的过滤表改成如下直接过滤,而不需要这个子函数了: (setq ssw (ssget "W" pos1 pos2 (list '(0 . "*POLYLINE") '(-4 . "<OR") '(70 . 0) '(70 . 64) '(-4 . "OR>"))))
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-29 22:29 , Processed in 0.169803 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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