乐筑天下

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

[编程交流] Lisp选择所有对象

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 18:07:12 | 显示全部楼层 |阅读模式
大家好!我正在尝试创建一个lisp,当激活时,它将自动选择和删除几个层上的所有对象,理想情况下,这些对象会写入lisp本身,因此我不必输入任何内容。不幸的是,虽然我可以随着时间的推移理解代码,但我对代码的理解非常有限,不知道我需要什么命令来完成我想做的事情。
 
我有一个不错的开始,这段代码:
  1. (defun c:SALL ()
  2. (setq TargetEnt (car (entsel "\nSelect object on layer to select: ")))
  3. (setq TargetLayer (assoc 8 (entget TargetEnt)))
  4. (sssetfirst nil (ssget "_X" (list TargetLayer)))
  5. (princ)
  6. )

 
取自
在这里,但我不知道如何让它自动从指定层中选择项目,并且在整个过程结束时添加擦除命令似乎不起作用。
 
如果有人能帮我完成这件事,我将不胜感激!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:34:56 | 显示全部楼层
欢迎来到CADTutor。
 
以下是此类程序的一种非常简单的形式:
  1. (defun c:delonlayer ( / i s )
  2.    (if (setq s (ssget "_X" '((8 . "[highlight]Layer1,Layer2,Layer3[/highlight]"))))
  3.        (repeat (setq i (sslength s)) (entdel (ssname s (setq i (1- i)))))
  4.    )
  5.    (princ)
  6. )
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 18:50:01 | 显示全部楼层
完美的谢谢
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 19:08:18 | 显示全部楼层
也许是命令行版本?
 
  1. (defun delonlayer (lays / i s )
  2.    (if (setq s (ssget "_X" (List (cons 8 lays))))
  3.        (repeat (setq i (sslength s)) (entdel (ssname s (setq i (1- i)))))
  4.    )
  5.    (princ)
  6. )
  7. type this on command line
  8. (delonlayer ""Layer1,Layer2,Layer3")
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 20:09 , Processed in 0.592883 second(s), 60 queries .

© 2020-2025 乐筑天下

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