乐筑天下

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

[编程交流] 选择多层过滤器

[复制链接]

6

主题

9

帖子

3

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 09:59:28 | 显示全部楼层 |阅读模式
我目前正在使用ssget选择要包含在lisp程序中的层,但正如您在下面看到的,我必须在图形上拖动窗口4次,才能将每个层保存到一个集合中。我想知道是否有办法在对象周围选择一个窗口(而不是重复四次),然后过滤掉我想要的层,并将它们保存到四个不同的SETQ。
下面是我目前在程序中写的内容
 
(提示“\n选择要添加到一起的行:”)
(setq ss1(ssget(列表(cons 8“layer1”)))
(setq ss2(ssget(列表(cons 8“layer2”)))
(setq ss3(ssget(列表(cons 8“layer3”)))
(setq ss4(ssget(列表(cons 8“layer4”)))
 
正如你们所看到的,我需要四次ssget,只是想知道我是否可以使用它一次,并且它存储在SS1、SS2、SS3、SS4中
 
谢谢
 
安得烈
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 10:08:26 | 显示全部楼层
您可以在每个ssget之后使用“_x”自动获取它们。
 
实例
 
将上述示例应用于所有代码。
 
塔瓦特
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 10:13:51 | 显示全部楼层
试试这个:
 
  1. (defun c:test ()
  2.   (setq
  3.         ss_set '("ss1" "ss2" "ss3")cnt -1)
  4. (foreach
  5.            layername (list "Layer1" "Layer2" "Layer3")
  6.           (set (setq tempo (read (nth (setq cnt (1+ cnt)) ss_set)))
  7.                        (ssget "_x" (list (cons 8 layername))))
  8.          )
  9.    )

 
当然,您需要根据需要更新图层列表和变量名
 
 
祝大家圣诞快乐!!!
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 10:19:51 | 显示全部楼层
或者可能:
  1. [b][color=BLACK]([/color][/b]setq i 1[b][color=BLACK])[/color][/b]
  2. [b][color=BLACK]([/color][/b]repeat 4
  3.    [b][color=FUCHSIA]([/color][/b]set [b][color=NAVY]([/color][/b]read [b][color=MAROON]([/color][/b]strcat [color=#2f4f4f]"SS"[/color] [b][color=GREEN]([/color][/b]itoa i[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  4.         [b][color=NAVY]([/color][/b]ssget [color=#2f4f4f]"X"[/color] [b][color=MAROON]([/color][/b]list [b][color=GREEN]([/color][/b]cons 8 [b][color=BLUE]([/color][/b]strcat [color=#2f4f4f]"LAYER"[/color] [b][color=RED]([/color][/b]itoa i[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  5.    [b][color=FUCHSIA]([/color][/b]setq i [b][color=NAVY]([/color][/b]1+ i[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

 
 
-大卫
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 10:32:02 | 显示全部楼层
 
是的。我同意。这将消除对列表的需要。但话说回来。如果您有不同名称的不同层。。您可能仍然需要为图层制作一个列表
 
说得好David
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 10:37:25 | 显示全部楼层
我经常使用类似的方法来详细描述部件:
  1. [color=#8b4513];;;GET LAYER NUMBERS[/color]
  2. [b][color=BLACK]([/color][/b]while
  3.    [b][color=FUCHSIA]([/color][/b]progn
  4.        [b][color=NAVY]([/color][/b]and il [b][color=MAROON]([/color][/b]princ [color=#2f4f4f]"\n"[/color][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]prin1 il[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  5.        [b][color=NAVY]([/color][/b]setq in [b][color=MAROON]([/color][/b]getint [color=#2f4f4f]"\nLayer Number To Select:   "[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  6.    [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]and in [b][color=MAROON]([/color][/b]not [b][color=GREEN]([/color][/b]member in il[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  7.        [b][color=NAVY]([/color][/b]setq il [b][color=MAROON]([/color][/b]cons in il[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]
  8. [color=#8b4513];;;GET PICK SETS[/color]
  9. [b][color=BLACK]([/color][/b]foreach i il
  10.    [b][color=FUCHSIA]([/color][/b]setq dxs [b][color=NAVY]([/color][/b]strcat [color=#2f4f4f]"SS"[/color] [b][color=MAROON]([/color][/b]if [b][color=GREEN]([/color][/b]< i 10[b][color=GREEN])[/color][/b] [color=#2f4f4f]"0"[/color] [color=#2f4f4f]""[/color][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]itoa i[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  11.    [b][color=FUCHSIA]([/color][/b]set [b][color=NAVY]([/color][/b]read dxs[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]ssget [color=#2f4f4f]"X"[/color] [b][color=MAROON]([/color][/b]list [b][color=GREEN]([/color][/b]cons 8  [b][color=BLUE]([/color][/b]strcat [color=#2f4f4f]"LAYER"[/color] [b][color=RED]([/color][/b]itoa i[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

 
-大卫
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 10:46:03 | 显示全部楼层
  1. (ssget '((8 . "pizza,beer,cheese,fun")))
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:50:54 | 显示全部楼层
我认为OP要求选择一个窗口,因此我会选择Alan的演示。
 
我不会用我的代码演示的方式来处理它,但是它确实显示了一种按照OP最初请求分配变量的方法:
 
  1. 5

 
它比其他任何东西都更适合学术界-它提醒我为每个列表项设置变量。。。
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 10:54:25 | 显示全部楼层
李,
 
有时我想你一定中了一张括号彩票,你的奖品是一个人一生中可以使用的无限数量。筑巢直到你掉下去!观看很有趣,解码也很有趣-大卫
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:00:10 | 显示全部楼层
 
让事情变得有趣一点
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 00:30 , Processed in 0.493082 second(s), 72 queries .

© 2020-2025 乐筑天下

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