获取扩展数据问题
本帖最后由 yhly555 于 2015-11-4 18:08 编辑各位大侠好,我是初学者,我用命令: (entget (car (entsel)) '("SOUTH"))获取扩展数据时出来下面的表数据,
((-1 . <图元名: 7ef7eb28>) (0 . "LWPOLYLINE") (5 . "425") (102 .
"{ACAD_REACTORS") (330 . <图元名: 7ef7eb58>) (102 . "}") (330 . <图元名:
7ef7ccc0>) (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "JZD") (6 .
"Continuous") (100 . "AcDbPolyline") (90 . 3) (70 . 129) (43 . 0.15) (38 . 0.0)
(39 . 0.0) (10 146.388 83.064) (40 . 0.15) (41 . 0.15) (42 . 0.0) (10 165.256
48.3942) (40 . 0.15) (41 . 0.15) (42 . 0.0) (10 135.432 62.181) (40 . 0.15) (41
. 0.15) (42 . 0.0) (210 0.0 0.0 1.0) (-3 ("SOUTH" (1000 . "300000") (1000 .
"4690031142060") (1000 . "张某某") (1000 . "251"))))
如果用 (entget (assoc -3 (car (entsel)) '("SOUTH")))显示下面数据,
( (-3 ("SOUTH" (1000 . "300000") (1000 . "4690031142060") (1000 . "张某某") (1000 . "251"))))
请问怎么做才能只获取“张某某”或“4690031142060”或"251"的数据,谢谢!
(cadr(cddadr (assoc -3 (entget (car (entsel)) '("SOUTH"))))) Gu_xl 发表于 2015-11-4 20:09 static/image/common/back.gif
(cadr(cddadr (assoc -3 (entget (car (entsel)) '("SOUTH")))))
谢谢!如果我想直接获取“张某某”,前面的“1000”不要,又该怎么做的,初学者啥都不会,勿喷。
命令: (cadr(cddadr (assoc -3 (entget (car (entsel)) '("SOUTH")))))
选择对象: (1000 . "张某某") 扩展数据都是按一定次序写进实体的,每个数据的位置都是确定的,既然是自己确定的次序,再拿回来不是应该很容易么?
得到扩展数据的表,使用nth函数取就行了。 ll_j 发表于 2015-11-5 11:33 static/image/common/back.gif
扩展数据都是按一定次序写进实体的,每个数据的位置都是确定的,既然是自己确定的次序,再拿回来不是应该很 ...
通过层上的方法已经缩短围范了,但是我只想获得"张某某",该怎么写,请各位大神指教。 再加个cdr
(cdr(cadr(cddadr (assoc -3 (entget (car (entsel)) '("SOUTH")))))) 今天又学了一招!!!!
谢谢Gu_xl !!! edata 发表于 2015-11-5 11:52 static/image/common/back.gif
再加个cdr
(cdr(cadr(cddadr (assoc -3 (entget (car (entsel)) '("SOUTH"))))))
可以了,非常感谢! 关于获取删除扩展数据问题又学了一招!!
页:
[1]