乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 157|回复: 9

再---请教如何用LISP的SSGET函数选中“非锁定层”的实体

[复制链接]

2

主题

4

帖子

1

银币

初来乍到

Rank: 1

铜币
12
发表于 2003-12-22 02:46:00 | 显示全部楼层 |阅读模式
在LSP程序中用SSGET函数选择物体准备处理,锁定层的物体不需要也不能被改动,但是却被加入选择集并且可以被redraw函数重画,如何排除锁定层的物体使之不被选中?
回复: (ssget "");Rejects locked layers
不行啊,ACAD不接受这个函数
Command: (ssget "")
*Cancel*
请讲详细些,谢谢!
回复

使用道具 举报

20

主题

872

帖子

10

银币

中流砥柱

Rank: 25

铜币
952
发表于 2003-12-22 06:30:00 | 显示全部楼层
可以啊,选择时锁定层物体不亮显,
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2003-12-22 08:19:00 | 显示全部楼层
可以先用命令select,选择all,然后用ssget
(command "_.select" "all" "")
(setq ss (ssget "p"))
回复

使用道具 举报

63

主题

1203

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1455
发表于 2003-12-22 09:04:00 | 显示全部楼层
To meflying:
                 您好,     你的方法好好的. 用(command "_.select" "all" "")就全部選非鎖定層的了. 很合適樓主選到非鎖定層的全部實體了. 呵呵
回复

使用道具 举报

8

主题

35

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
67
发表于 2003-12-22 13:26:00 | 显示全部楼层
(ssget "")好像可以的吧?
不过如何不可以的话可以自己做一个过滤表的吧,这样不是快很多吗?
用COMMAND太慢了吧
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2003-12-22 13:31:00 | 显示全部楼层
过滤表我也想过,好象写不出来。。。。
我测试过,简单的command命令和普通函数的运行时间差不多
回复

使用道具 举报

8

主题

35

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
67
发表于 2003-12-22 13:43:00 | 显示全部楼层
那我放一个我写的过滤表:);取得非锁定层
(defun getunlocklayer(/ layer lay_list )
(setq layer (tblnext "layer" T))
  (if (= (cdr (assoc 70 layer) ) 0)
(setq lay_list (list (cons 8 (cdr (assoc 2 layer)))))
    )
(setq layer (tblnext "layer"))
(while layer
  (if (= (cdr (assoc 70 layer) ) 0)
     (setq lay_list (append lay_list (list (cons 8 (cdr (assoc 2 layer))))))
    )
        (setq layer (tblnext "layer"))
         )
   (append (cons (cons -4  "")))
  )
我还以为我刚刚没回复,原来有两个贴晕啊
例:
(ssget (getunlocklayer))
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2003-12-22 13:46:00 | 显示全部楼层
这个到是没想到,动态写过滤表,好!
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2003-12-22 14:09:00 | 显示全部楼层
简化一下程序:
  1. (defun getLayer ( / layer lay_list)
  2.   (while (setq layer (tblnext "layer" (not layer)))
  3.     (if (= (cdr (assoc 70 layer)) 0)
  4.       (setq lay_list (append lay_list (list (cons 8 (cdr (assoc 2 layer))))))
  5.     )
  6.   )
  7.   (append (cons (cons -4  "")))
  8. )
回复

使用道具 举报

29

主题

1152

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1268
发表于 2003-12-22 16:31:00 | 显示全部楼层
查看(LUCAS 是我)
http://www.xdcad.net/forum/showthread.php?s=&postid=380504#post380504
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-8 18:41 , Processed in 0.692717 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表