扩展数据如何自定义属性?
本帖最后由 作者 于 2009-7-28 16:51:49 编辑已知下面程序可以为直线添加扩展数据。可如何才能像块一样,可以自定义属性,并对应赋值?
会不会要每加一个属性,就加上一个 专属名? (regapp "Track") (regapp "Track2")
(defun c:lsp54()
(regapp "Track")
(setq new_s (getstring "\n 第一属性:"))
(if(= new_s "") (setq new_s "A0001"))
(setq new_i (getstring "\n 第二属性:"))
(if (null new_i) (setq new_i "123"))
(setq new_r (getstring "\n 第三属性:"))
(if (null new_r) (setq new_r "456"))
(setq en (car (entsel "\n 选择对象")))
(if en
(progn
(setq new_ext_list(list -3 (list "Track"
(cons 1000 new_s)
(cons 1000 new_i)
(cons 1000 new_r))))
(setq endata (entget en))
(setq entype (cdr (assoc 0 endata)))
(if (setq old_ext_list (assoc -3 endata))
(setq endata (subst new_ext_list old_ext_list endata))
(setq endata (append endata(list new_ext_list)))
)
(entmod endata)
(alert (strcat entype "加入扩展数据库成功" new_s "," new_i "," new_r))
)
)
(prinl)
)
<p>或许可以利用双击反应器来实现。</p><p>但如果想要实现真正的自定义属性,就像CAD的特性栏那样,恐怕用 lisp很难办到吧,或者说办不到,可能要用到arx了。</p> <p>感谢您的回复!</p><p>我想既然叫扩展数据就应该支持多属性吧?我现在首先要实现,给线添加多个自定义属性及赋值。然后再用dcl做界面去读取和修改。</p><p>希望哪位高手给提供相关例子。谢谢!</p> <p>为实体定义多个属性及赋值,然后建立dcl界面提供添加和修改,到底是用扩展数据好呢,还是用数据字典好呢?</p><p>有没有这方面的例子可以参考,谢谢!</p> 用vlax-ldata-put、vlax-ldata-get
页:
[1]