乐筑天下

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

[编程交流] SSGET-块,然后搜索Des

[复制链接]

35

主题

145

帖子

114

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
180
发表于 2022-7-5 15:27:37 | 显示全部楼层 |阅读模式
我有一个区块的SSGET,选择有效。然后,我想对每个块描述进行通配符搜索。然后我想保留带有“AAA”、“BBB”和“CCC”描述的块,并从选择中排除其他块。
 
一旦我有了选择,我想将选择更改为另一层。
 
以下是我目前掌握的情况:
 
  1. (defun c:Test ( / in ss en de myco)
  2. (setq myco 0)
  3. (if (setq in -1 ss (ssget "_C" '(7.244 2.071) '(16.665 10.003) '((0 . "INSERT") (8 . "FTG-Iso"))))
  4.    (while (setq en (ssname ss (setq in (1+ in))))
  5.      (progn
  6.        (setq myco (+1 myco))
  7.        (princ (strcat "\n                      " (rtos myco 2 0) ". Hey!"))
  8.        (setq de (entget en description))
  9.        ; (princ (strcat "\n                            "  de))
  10.        [color=blue]{Exclude entities that do not have valid strings in description}[/color]
  11.      )
  12.    )
  13. )
  14. (sssetfirst nil ss)
  15. (princ)
  16. )
Greg
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 15:32:39 | 显示全部楼层
这是一个正确的方向-
  1. (defun c:test ( / i s )
  2.    (if (setq s (ssget "_C" '(7.244 2.071) '(16.665 10.003) '((0 . "INSERT") (8 . "FTG-Iso"))))
  3.        (repeat (setq i (sslength s))
  4.            (print (cdr (assoc 4 (entget (tblobjname "block" (cdr (assoc 2 (entget (ssname s (setq i (1- i)))))))))))
  5.        )
  6.    )
  7.    (princ)
  8. )
回复

使用道具 举报

35

主题

145

帖子

114

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
180
发表于 2022-7-5 15:35:27 | 显示全部楼层
 
李,我运行了这个,我得到的只是文本窗口中的一串“nil”。这是应该发生的吗?
 
格雷格
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 15:40:20 | 显示全部楼层
格雷格·格里森我很困惑?你是说区块名吗?
 
  1. lee ?
  2. (entget (tblobjname "block" (cdr (assoc 2 (entget (car (entsel)))))))
  3. is ok
  4. returns nil no (assoc 4

 
  1. (setq s (ssget "_C" '(7.244 2.071) '(16.665 10.003) '((0 . "INSERT") (8 . "FTG-Iso"))))
  2. (repeat (setq x (sslength s))
  3. (setq obj (vlax-ename->vla-object (ssname s (setq x (- x 1)))))
  4. (princ "\n")
  5. (princ (vla-get-name obj))
  6. ; put a cond here check for aaa bb ccc and change obj layer
  7. ; (vla-put-layer obj newlay)
  8. )
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 15:43:12 | 显示全部楼层
块描述是块定义的一部分。尝试创建一个新块,并查看选项的右下角。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 15:46:21 | 显示全部楼层
作品很好,李现在我已经添加了一些评论。每天学习新的东西。
 
不确定VL中的等价物是什么,它可能是一个属性而不是get。
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 15:48:31 | 显示全部楼层
 
以下是VL示例:
162742lbzn4l7gw4d4gf4l.png
回复

使用道具 举报

35

主题

145

帖子

114

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
180
发表于 2022-7-5 15:51:10 | 显示全部楼层
 
这就是我所说的描述。我希望能够提取描述值并检查它,以决定是否将其包含在选择中。
 

                               
登录/注册后可看大图

 
希望这有意义。
 
格雷格
162745uu5ai13r2ni2j2tr.jpg
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 15:55:21 | 显示全部楼层
 
现在是这样。。。
回复

使用道具 举报

35

主题

145

帖子

114

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
180
发表于 2022-7-5 15:59:00 | 显示全部楼层
好吧,我必须承认,到目前为止,我对这些评论感到迷茫,因为我(在这一点上)没有足够的深度来理解代码。
 
看起来我的做法不对,或者至少效率不高。
 
有人能推荐一个地方开始了解我想要完成什么吗?
 
我想在解决问题的同时提高我的理解力。
 
格雷格
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 00:00 , Processed in 0.412650 second(s), 74 queries .

© 2020-2025 乐筑天下

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