shirleyklove 发表于 2015-6-10 17:01:34

求教:提取标注内容并写入文件

比如一段管道,需要提取其起点,终点,编号,管径,标高等。起点,终点通过访问图元可以提取到,标注中的管径,标高等信息需要从标注中提取,这方面不是很了解,求大神指教。新手上图都不会啊,我试着弄一下啊。;vla方法获取起点,终点,长度,角度
(defun GETPro (ent)
(vl-load-com)
(setq vlobject (vlax-ename->vla-object ent))
(setq sp (vlax-get vlobject 'startpoint))
;(princ sp)
;(print)
(setq ep (vlax-get vlobject 'endpoint))
;(princ ep)
;(print)
(setq L (vlax-get vlobject 'length))
;(princ L)
;(print)
(setq ang(vlax-get vlobject 'angle))
;(princ ang)
;(print)

fl202 发表于 2015-6-10 17:33:24

标高写入文件有什么用?
最好上图,从你的标注文字中,找规律。

要写入什么文件中?管道索引表吗?

shirleyklove 发表于 2015-6-10 17:56:03

fl202 发表于 2015-6-10 17:33 static/image/common/back.gif
标高写入文件有什么用?
最好上图,从你的标注文字中,找规律。



上图只是举了一个例子,就是管径,该如何提取。最终想要转成三维的,就要求有起,终点,管径这些数据。
写入文本文件.txt就行。
格式如下应该可以吧:
(起点)(终点)管径
例如:(1000,1000) (1500,1000)50
图上的50该怎么提取,尽量与起点,终点一起提取
这下我说明白了没有?

edata 发表于 2015-6-10 19:36:31

Signature

object.Measurement

object

Dim3PointAngular, DimAligned, DimAngular, DimArcLength, DimDiametric, DimOrdinate, DimRadial, DimRadialLarge, DimRotated
The object or objects this property applies to.

Measurement


Double; read-only
For linear dimensions this is a length, for angular dimensions it is an angle.

object.TextOverride

object

Dim3PointAngular, DimAligned, DimAngular, DimArcLength, DimDiametric, DimOrdinate, DimRadial, DimRadialLarge, DimRotated
使用该属性的对象。

TextOverride

String[字符串]; 可读写
最大长度为 256 个字符。


edata 发表于 2015-6-10 19:40:39

按你的写法,(vlax-get vlobject'measurement )获得实际测量值。
实际上lisp比这个简单。。
(cdr(assoc 42 (entget ent)))
页: [1]
查看完整版本: 求教:提取标注内容并写入文件