明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 846|回复: 3

[讨论] 如何获取相同组码的属性?

[复制链接]
发表于 2024-12-16 02:24:15 | 显示全部楼层 |阅读模式
本帖最后由 kun123322 于 2024-12-16 02:39 编辑


一个图案填充,结构如下:

选择对象: ((-1 . <图元名: 7ef9b260>) (0 . "HATCH") (330 . <图元名: 7ef97cc0>)
(5 . "324C") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "GCD") (62 .
94) (6 . "Continuous") (370 . 0) (100 . "AcDbHatch") (10 0.0 0.0 81.102) (210
0.0 0.0 1.0) (2 . "SOLID") (70 . 1) (71 . 0) (91 . 1) (92 . 1) (93 . 1) (72 .
2) (10 460072.0 2.568e+006 0.0) (40 . 0.5) (50 . 0.0) (51 . 6.28319) (73 . 1)
(97 . 0) (75 . 0) (76 . 1) (98 . 0) (450 . 0) (451 . 0) (460 . 0.0) (461 . 0.0)
(452 . 0) (462 . 0.0) (453 . 0) (470 . "")

我想获取: (10 0.0 0.0 81.102)     ,  (10 460072.0 2.568e+006 0.0)  两个属性,

我使用(assoc 10 (entget (car (entsel))))只能获取到第一个,我想两个都获取,代码该如何写啊?

回复

使用道具 举报

发表于 2024-12-16 07:45:21 | 显示全部楼层
(defun MJ:Massoc (key alist)
  (apply
    'append
    (mapcar '(lambda (x)
               (if (eq (car x) key)
                 (list (cdr x))
               )
             )
            alist
    )
  )
)
回复 支持 反对

使用道具 举报

发表于 2024-12-16 17:21:24 | 显示全部楼层
本帖最后由 嘒彼小星 于 2024-12-16 17:22 编辑

(setq s_10 (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= 10 (car x))) (entget (ssname ss i)))))
把后面这个 (ssname ss i) 改为你的图元名的变量
回复 支持 反对

使用道具 举报

发表于 2025-2-19 13:19:41 | 显示全部楼层
感谢大佬分享
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-5 02:44 , Processed in 0.154182 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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