diadblo 发表于 2018-7-14 10:51:04

新手,想问提取DXf码为100的内容

本帖最后由 diadblo 于 2018-7-14 11:04 编辑

((-1 . <图元名: 7e4c8190>) (0 . "DIMENSION") (330 . <图元名: 7e4f4cf8>) (5 .
"18ED2") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "标注线") (100 .
"AcDbDimension") (2 . "*D221") (10 -386.547 -1719.79 0.0) (11 -388.507 -1692.79
0.0) (12 0.0 0.0 0.0) (70 . 32) (1 . "") (71 . 5) (72 . 1) (41 . 1.0) (42 .
54.0) (73 . 0) (74 . 0) (75 . 0) (52 . 0.0) (53 . 0.0) (54 . 0.0) (51 . 0.0)
(210 0.0 0.0 1.0) (3 . "标注ISO_1.25") (100 . "AcDbAlignedDimension") (13
-414.105 -1665.79 0.0) (14 -414.105 -1719.79 0.0) (15 0.0 0.0 0.0) (16 0.0 0.0
0.0) (40 . 0.0) (50 . 1.5708) (100 . "AcDbRotatedDimension"))
我想通过提取上面DXF码100的内容用判断选择的对象是否是对齐标注
我 用(assoc 100 list) 结果是 (100 ."AcDbEntity")
但是我想提取的是内容是(100 . "AcDbAlignedDimension") 或者(100 . "AcDbDimension") 又如何提取.

或者有函数可以检查 (100 . "AcDbAlignedDimension") 是否在List 里面

masterlong 发表于 2018-7-14 10:56:05

(vl-remove-if-not '(lambda(x) (= (car x) 100)) (entget ent))

diadblo 发表于 2018-7-14 11:21:19

masterlong 发表于 2018-7-14 10:56
(vl-remove-if-not '(lambda(x) (= (car x) 100)) (entget ent))

你的应该是读出所有DXF码为100的内容

lenlenq 发表于 2018-7-14 13:37:44

(setq ent (entget(car(entsel))))
(mapcar'(lambda(x)(if (= (car x) 100) (setq 100lst(cons x 100lst))))ent)
(vl-remove '(100 . "AcDbEntity")100lst)
页: [1]
查看完整版本: 新手,想问提取DXf码为100的内容