yybu 发表于 2007-4-7 14:37:00

怎样将一些数据信息添加到图形中去!

画一条直线代表一段管线,怎样将一些数据信息(比如管径、标高、坡度等)添加到这条直线上,哪位高手有这方面的实例程序啊!!

caoyin 发表于 2007-4-7 15:24:00

“源码共享”版块以前看到过,如果找不到,明天我贴上来

caoyin 发表于 2007-4-8 09:06:00

; 以下代码来自“源码共享”版块的程序收集
; 给某个图形对象添加或提取非图形数据的例程.
(Defun C:TDPut ()
(setq en (car (entsel "\n要加入用户数据的图形对象: "))
en (vlax-ename->vla-object en)
)
(vlax-ldata-put en "UKey2" "用户数据2")
)
(Defun C:TDGet ()
(setq en (car (entsel "\n要提取用户数据的图形对象: "))
en (vlax-ename->vla-object en)
)
(setq udata2 (vlax-ldata-get en "UKey2"))
)
; 给一个图形对象添加AutoLISP表达式,就是将这些表达式"附着"在指定的图形对象上,
; 并且随对象保存.之后,用简单的函数就可以激活这些表达式并且执行.
(Defun C:TDPut1 ()
(setq en (car (entsel "\n要加入应用程序(1)的图形对象: "))
en (vlax-ename->vla-object en)
a (getreal "\nReal: ")
)
(vlax-ldata-put en "UKey1" a)
(vlax-ldata-put en "UKey2"
         '(alert (strcat "这个数的平方=" (rtos (* a a))))
)
)
(defun C:TDPut2 ()
(setq en (car (entsel "\n要加入应用程序(2)的图形对象: "))
en (vlax-ename->vla-object en)
a (getstring "\nString: ")
)
(vlax-ldata-put en "UKey1" a)
(vlax-ldata-put en "UKey2" '(alert (strcat "附加说明: " a)))
)
(defun C:TDGet ()
(setq en (car (entsel "\n要运行应用程序的图形对象: "))
en (vlax-ename->vla-object en)
)
(setq a (vlax-ldata-get en "UKey1"))
(eval (vlax-ldata-get en "UKey2"))
)

abcxyz0517 发表于 2007-4-8 09:19:00

<p>楼上的兄弟辛苦了~~~</p><p>谢谢兄弟~</p>

yybu 发表于 2007-4-10 22:32:00

本帖最后由 作者 于 2007-4-10 22:58:59 编辑 <br /><br /> <p><strong><font face="Verdana" color="#61b713">谢谢热心的"caoyin"</font></strong></p><p><strong><font face="Verdana" color="#61b713">我的解答帮了我大忙!!</font></strong></p>

smartstar 发表于 2012-5-8 19:10:32

又学了一招。

goldwheat 发表于 2013-7-17 15:39:29

很好的实例,多谢楼主,正学习这方面的知识。

香田里浪人 发表于 2013-7-17 21:46:57

有意思,很好的实例,很有用

springwillow 发表于 2013-7-18 14:56:11

曹版厉害!
页: [1]
查看完整版本: 怎样将一些数据信息添加到图形中去!