明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 588|回复: 10

[经验] VLA选择集

  [复制链接]
发表于 2024-4-24 20:03 | 显示全部楼层 |阅读模式
  1. (progn
  2.   (setq ss-n "SSGET")
  3.   (vl-Catch-All-Apply
  4.     'vla-delete
  5.     (LIST
  6.       (vl-Catch-All-Apply
  7.     'vla-item
  8.     (list (vla-get-SelectionSets
  9.         (vla-get-ActiveDocument (vlax-get-acad-object))
  10.           )
  11.           ss-n
  12.     )
  13.       )
  14.     )
  15.   )
  16.   (setq
  17.     ss (vl-Catch-All-Apply
  18.      'vla-add
  19.      (list (vla-get-selectionsets
  20.          (vla-get-activedocument (vlax-get-acad-object))
  21.            )
  22.            ss-n
  23.      )
  24.        )
  25.   )
  26.   (setq    filtType
  27.      (vl-Catch-All-Apply
  28.        'vlax-make-variant
  29.        (LIST
  30.          (vl-Catch-All-Apply
  31.            'vlax-safearray-fill
  32.            (LIST
  33.          (vl-Catch-All-Apply 'vlax-make-safearray(LIST vlax-vbInteger '(0 . 4)))
  34.                     ;①这里需要修改(下面②、③总数减一即可);一维数组
  35.          (list 0 -4 0 -4 1001)
  36.                     ;②这里需要修改;过滤扩展数据的时候是1001
  37.            )
  38.          )
  39.          (logior vlax-vbarray vlax-vbInteger)
  40.        )
  41.      )
  42.   )
  43.   (setq    filtData
  44.      (vlax-make-variant
  45.        (vl-Catch-All-Apply
  46.          'vlax-safearray-fill
  47.          (list
  48.            (vl-Catch-All-Apply 'vlax-make-safearray(LIST vlax-vbVariant '(0 . 4)))
  49.                     ;①这里需要修改(下面②、③总数减一即可);一维数组
  50.            (list "*LINE*" "<NOT" "INSERT" "NOT>" "JDCD")
  51.                     ;③这里需要修改(和上面的②一一对应);过滤条件
  52.          )
  53.        )
  54.        (vl-Catch-All-Apply
  55.          'logior
  56.          (list vlax-vbarray vlax-vbVariant)
  57.        )
  58.      )
  59.   )
  60.   (vl-catch-all-apply
  61.     'vla-select
  62.     (list ss acSelectionSetAll nil nil filtType filtData)
  63.   )
  64. )

评分

参与人数 5明经币 +5 收起 理由
liuhe + 1
kucha007 + 1 赞一个!
USER2128 + 1 赞一个!
飞雪神光 + 1 很给力!
dtucad + 1 很给力!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-4-24 20:19 | 显示全部楼层
鼓掌鼓掌鼓掌鼓掌鼓掌鼓掌吧
发表于 2024-4-24 22:16 | 显示全部楼层
我测试没选出来   你们测试通过了吗?
发表于 2024-4-24 22:59 | 显示全部楼层
感谢大佬分享
发表于 2024-4-25 20:59 | 显示全部楼层
试出来了,运行后为nil,查结果ss里面有图元。
发表于 2024-4-26 13:00 | 显示全部楼层
本帖最后由 guosheyang 于 2024-4-26 13:07 编辑
null. 发表于 2024-4-25 20:59
试出来了,运行后为nil,查结果ss里面有图元。

帮吗测试下 这个文件的扩展数据,看看代码要如何改?谢谢!    (-3 ("注册名称" (1000 . "扩展数据")))




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2024-4-26 14:57 | 显示全部楼层
C:MIAN
命令: MIAN
命令: 1   注册名称
"AcDbCircle"
2   注册名称
"AcDbCircle"
3   注册名称
"AcDbCircle"
命令: 1   JZDST
"AcDbCircle"
2   JZDST
"AcDbCircle"
3   JZDST
"AcDbCircle"
4   JZDST
"AcDbCircle"
5   JZDST
"AcDbCircle"
6   JZDST
"AcDbCircle"
7   JZDST
"AcDbCircle"

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2024-4-28 00:04 | 显示全部楼层
null. 发表于 2024-4-26 14:57
C:MIAN
命令: MIAN
命令: 1   注册名称

(sssetfirst nil (setq ss(SSGET "X" (list (list -3 (list "JZDST"))))))     能否实现这个代码对应的功能?
发表于 2024-4-28 01:20 | 显示全部楼层
guosheyang 发表于 2024-4-28 00:04
(sssetfirst nil (setq ss(SSGET "X" (list (list -3 (list "JZDST"))))))     能否实现这个代码对应的功 ...

不要觉得选择集过滤器什么都能过滤,
要知道过滤器是怎么制作的才明白它什么过滤不了...
如果你想知道可以接着问我
发表于 2024-4-28 07:59 | 显示全部楼层
你有种再说一遍 发表于 2024-4-28 01:20
不要觉得选择集过滤器什么都能过滤,
要知道过滤器是怎么制作的才明白它什么过滤不了...
如果你想知道可 ...

好的  感谢 !  清楚了 ,群里面也讨论过了,不是所有的都能选择的,有的只有遍历选择
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-6 13:05 , Processed in 0.338177 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表