ljxkm 发表于 2014-5-8 19:34:32

lisp如何提取标注内文字

选取标注图元,得到如下数据:
         ((-1 . <图元名: 7ef5ff00>) (0 . "DIMENSION") (330 . <图元名: 7ef5fcf8>) (5 .
"98") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 .
"AcDbDimension") (2 . "*D2") (10 1152.77 435.766 0.0) (11 1040.1 437.85 0.0)
(12 0.0 0.0 0.0) (70 . 32) (1 . "") (71 . 5) (72 . 1) (41 . 1.0) (42 . 225.344)
(52 . 0.0) (53 . 0.0) (54 . 0.0) (51 . 0.0) (210 0.0 0.0 1.0) (3 . "ISO-25")
(100 . "AcDbAlignedDimension") (13 927.426 355.372 0.0) (14 1152.77 299.445
0.0) (15 0.0 0.0 0.0) (16 0.0 0.0 0.0) (40 . 0.0) (50 . 0.0) (100 .
"AcDbRotatedDimension"))
群吗1后面为"",不知如何取得实际的尺寸标注值。

fangmin723 发表于 2021-12-17 13:08:35

jiang__jin 发表于 2021-4-22 13:44
有xyp-DXF函数吗

(defun xyp-DXF(dxf ent) (cdr (assoc dxf (entget ent))))

天宇飞翔12 发表于 2021-12-17 12:17:21

同问xyp-DXF函数在哪?

xyp1964 发表于 2014-5-8 19:49:26

(xyp-DXF 42 (car (entsel "\n选择尺寸标注: ")))

ljxkm 发表于 2014-5-8 20:45:36

感谢啊版主,

清风明月名字 发表于 2014-5-8 21:09:34

我正想写呢。谢谢了!

819534890 发表于 2014-5-8 21:37:30

xyp1964 发表于 2014-5-8 19:49 static/image/common/back.gif
(xyp-DXF 42 (car (entsel "\n选择尺寸标注: ")))

不完全正确。当(1 、 “”)的内容是空白时才是42,若非空,应该为1里面的内容。

xyp1964 发表于 2014-5-8 22:03:53

819534890 发表于 2014-5-8 21:37 static/image/common/back.gif
不完全正确。当(1 、 “”)的内容是空白时才是42,若非空,应该为1里面的内容。

(setq s1 (car (entsel "\n选择: ")))
(if (/= (setq tx (xyp-DXF 1 s1)) "")
(distof tx)
(xyp-DXF 42 s1)
)

819534890 发表于 2014-5-8 22:13:45

xyp1964 发表于 2014-5-8 22:03 static/image/common/back.gif


对的,42是真实值,1是手动输入的值。
楼主如果要显示的值的话就先判断1是否空白,如果要真实值,就直接取42.

czcxxx 发表于 2015-9-29 08:35:52

感谢啊版主!!!!!!!!!!!!!

czcxxx 发表于 2015-9-29 09:02:25

感谢啊版主!!!!!!!!!!!!!!!!!!

yuun 发表于 2015-10-3 16:50:38

可以先将标注炸开,提取炸开后的文字,再将炸开后的标注删除。
页: [1] 2
查看完整版本: lisp如何提取标注内文字