kun123322 发表于 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) 改为你的图元名的变量

magicheno 发表于 2025-2-19 13:19:41

感谢大佬分享
页: [1]
查看完整版本: 如何获取相同组码的属性?