乐筑天下

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

[编程交流] 反向选择

[复制链接]

5

主题

22

帖子

17

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 14:58:53 | 显示全部楼层 |阅读模式
我正在使用lisp,我需要反转用户选择的内容。这意味着,如果文件有A-Z,并且用户选择了A和Z,代码将取消选择A和Z,并选择B-Y。谢谢。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:10:02 | 显示全部楼层
我们在谈论选择集吗?
回复

使用道具 举报

5

主题

22

帖子

17

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 15:15:37 | 显示全部楼层
你把我弄丢了。
 
让我解释一下我将使用它做什么:我的意思是,在模型空间中,在一个有很多东西的图形上工作,我希望能够选择一件我需要的东西,让它反转选择并删除所有我不需要的东西。我只是试着练习我的lisp创建过程,所以我问了一个最小帮助类型的问题。抱歉给你带来了困惑。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:23:05 | 显示全部楼层
没问题,我想你可能在说一个选择集
 
谢谢你澄清
 
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:29:57 | 显示全部楼层
我有这个,但它似乎只适用于第一次使用。。。不知道为什么?
 
  1. (defun c:test (/ ss i eLst invss)
  2. (setq ss (ssget) i (sslength ss)
  3.    eLst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
  4.    invss (ssget "X" (list (cons 410 (getvar "CTAB")))))
  5. (while (not (minusp (setq i (1- i))))
  6.    (if (member (cdar (entget (ssname invss i))) eLst)
  7.      (ssdel (ssname invss i) invss)))
  8. (sssetfirst nil invss)
  9. (princ))
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 15:33:49 | 显示全部楼层
很危险,但给你!
 
  1. [b][color=BLACK]([/color][/b]defun c:danger [b][color=FUCHSIA]([/color][/b]/ ss[b][color=FUCHSIA])[/color][/b]
  2. [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]not ss[b][color=NAVY])[/color][/b]
  3.         [b][color=NAVY]([/color][/b]princ [color=#2f4f4f]"\nSelect Entities To Save..."[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  4.         [b][color=FUCHSIA]([/color][/b]setq ss [b][color=NAVY]([/color][/b]ssget[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  5. [b][color=FUCHSIA]([/color][/b]command [color=#2f4f4f]"_.ERASE"[/color] [color=#2f4f4f]"_All"[/color] [color=#2f4f4f]"_Remove"[/color] ss [color=#2f4f4f]""[/color][b][color=FUCHSIA])[/color][/b]
  6. [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

-大卫
回复

使用道具 举报

CAB

29

主题

781

帖子

430

银币

中流砥柱

Rank: 25

铜币
526
发表于 2022-7-6 15:43:33 | 显示全部楼层
这是一个子例程。
  1. ;;  CAB 03.05.09
  2. ;; Subtract ss2 from ss1 & return a selection set
  3. ;;  ss1 & ss2 must be valid selection sets
  4. (defun ssSubtract (ss1 ss2 / ss3 idx ent)
  5. (setq ss3 ss1
  6.        idx (sslength ss2)
  7. )
  8. (while (> (setq idx (1- idx)) -1)
  9.    (setq ent (ssname ss2 idx))
  10.    (if (ssmemb ent ss3) (ssdel ent ss3))
  11. )
  12. ss3
  13. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:48:54 | 显示全部楼层
啊!ssmemb!完全忘记了那个函数!:哎呀:
回复

使用道具 举报

5

主题

22

帖子

17

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 15:57:16 | 显示全部楼层
谢谢大家。我还没有机会测试你们提出的各种代码,但我应该可以去。大卫,我明白为什么你会说这很危险,但这是为了编程我们的数控系统。原始文件被锁定了,所以他们无论如何都无法保存,他们所做的就是删除不需要的东西,并将其放在表格图纸上。
回复

使用道具 举报

6

主题

44

帖子

39

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 16:00:19 | 显示全部楼层
任何时候你在没有验证的情况下批量删除对象都被认为是危险的。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 22:06 , Processed in 0.344642 second(s), 72 queries .

© 2020-2025 乐筑天下

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