kingerst 发表于 2009-7-28 15:19:00

扩展数据如何自定义属性?

本帖最后由 作者 于 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)
)

highflybir 发表于 2009-7-29 00:05:00

<p>或许可以利用双击反应器来实现。</p><p>但如果想要实现真正的自定义属性,就像CAD的特性栏那样,恐怕用 lisp很难办到吧,或者说办不到,可能要用到arx了。</p>

kingerst 发表于 2009-7-29 09:06:00

<p>感谢您的回复!</p><p>我想既然叫扩展数据就应该支持多属性吧?我现在首先要实现,给线添加多个自定义属性及赋值。然后再用dcl做界面去读取和修改。</p><p>希望哪位高手给提供相关例子。谢谢!</p>

kingerst 发表于 2009-7-29 10:26:00

<p>为实体定义多个属性及赋值,然后建立dcl界面提供添加和修改,到底是用扩展数据好呢,还是用数据字典好呢?</p><p>有没有这方面的例子可以参考,谢谢!</p>

hhc 发表于 2009-7-31 17:14:00

用vlax-ldata-put、vlax-ldata-get
页: [1]
查看完整版本: 扩展数据如何自定义属性?