明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1139|回复: 5

高手们来帮个忙吧 图层多选 筛选并过滤

[复制链接]
发表于 2011-6-7 11:37 | 显示全部楼层 |阅读模式
帮找找下面程序的错误吧 member老不成功 什么情况?
(defun c:ceshi ()
(prompt"\n请选择要选择过滤的图层上的对象")
(setq s1 (ssget))
(setq la '())
       (setq len (sslength s1) i 0)
       (while (< i len)
              (setq temp (ssname s1 i))
              (setq templst (list (assoc 8 (entget temp))))
              (setq la (append  templst la))     
              (setq i (1+ i))
       )
(prompt"\n请选择要生成对象的范围")
(setq ss1 (ssget "x" '((-4 . "<OR") la (-4 . "<OR"))))
)
发表于 2011-6-7 13:43 | 显示全部楼层
(setq ss1 (ssget "x" '((-4 . "<OR") la (-4 . "<OR"))))
->
(setq ss1 (ssget "x" (list '(-4 . "<OR") la '(-4 . "<OR"))))
试试
 楼主| 发表于 2011-6-7 13:48 | 显示全部楼层
回复 caoyin 的帖子

运行了一下  提示  错误: ssget 列表错误
发表于 2011-6-7 13:51 | 显示全部楼层
或者这样
(defun c:ceshi (/ S1 I TEMP LAY LST FILT SS1)
  (prompt"\n请选择要选择过滤的图层上的对象")
  (setq s1 (ssget)  I (sslength s1))
  (while (setq TEMP (ssname s1 (setq I (1- I))))
    (setq LAY (cdr (assoc 8 (entget temp))))
    (or (member LAY LST)
        (setq LST (cons LAY LST))
    )
  )
  (prompt"\n请选择要生成对象的范围")
  (setq FILT (read (vl-string-translate "( )" "\",\"" (vl-princ-to-string LST)))
        ss1  (ssget "x" (list (cons 8 FILT)))
  )
)
发表于 2011-6-7 13:53 | 显示全部楼层
本帖最后由 caoyin 于 2011-6-7 14:05 编辑
pparc 发表于 2011-6-7 13:48
回复 caoyin 的帖子

运行了一下  提示  错误: ssget 列表错误


那是你的代码问题,检查一下变量la
 楼主| 发表于 2011-6-7 14:03 | 显示全部楼层
回复 caoyin 的帖子

谢谢 找出来 应该是la有问题  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-26 17:47 , Processed in 0.293394 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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