明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2316|回复: 4

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

[复制链接]
发表于 2009-7-28 15:19:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2009-7-28 16:51:49 编辑

已知下面程序可以为直线添加扩展数据。可如何才能像块一样,可以自定义属性,并对应赋值?
会不会要每加一个属性,就加上一个 专属名? (regapp      "Track")[color="#000000"] (regapp        "Track2")
  1. (defun c:lsp54()
  2. (regapp "Track")
  3. (setq new_s (getstring "\n 第一属性:"))
  4. (if(= new_s "") (setq new_s "A0001"))
  5. (setq new_i (getstring "\n 第二属性:"))
  6. (if (null new_i) (setq new_i "123"))
  7. (setq new_r (getstring "\n 第三属性:"))
  8. (if (null new_r) (setq new_r "456"))
  9. (setq en (car (entsel "\n 选择对象")))
  10. (if en
  11.   (progn
  12.    (setq new_ext_list(list -3 (list "Track"
  13.    (cons 1000 new_s)
  14.    (cons 1000 new_i)
  15.    (cons 1000 new_r))))
  16.    (setq endata (entget en))
  17.    (setq entype (cdr (assoc 0 endata)))
  18.    (if (setq old_ext_list (assoc -3 endata))
  19.     (setq endata (subst new_ext_list old_ext_list endata))
  20.     (setq endata (append endata(list new_ext_list)))
  21.    )
  22.    (entmod endata)
  23.    (alert (strcat entype "加入扩展数据库成功" new_s "," new_i "," new_r))
  24.    
  25.   )
  26.   
  27. )
  28.   (prinl)
  29. )
发表于 2009-7-29 00:05:00 | 显示全部楼层

或许可以利用双击反应器来实现。

但如果想要实现真正的自定义属性,就像CAD的特性栏那样,恐怕用 lisp很难办到吧,或者说办不到,可能要用到arx了。

 楼主| 发表于 2009-7-29 09:06:00 | 显示全部楼层

感谢您的回复!

我想既然叫扩展数据就应该支持多属性吧?我现在首先要实现,给线添加多个自定义属性及赋值。然后再用dcl做界面去读取和修改。

希望哪位高手给提供相关例子。谢谢!

 楼主| 发表于 2009-7-29 10:26:00 | 显示全部楼层

为实体定义多个属性及赋值,然后建立dcl界面提供添加和修改,到底是用扩展数据好呢,还是用数据字典好呢?

有没有这方面的例子可以参考,谢谢!

发表于 2009-7-31 17:14:00 | 显示全部楼层
用vlax-ldata-put、vlax-ldata-get
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-6 07:13 , Processed in 0.169820 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表