找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 879|回复: 9

[求助] 怎么给直线、多线等实体添加自定义属性呢?

[复制链接]

已领礼包: 1个

财富等级: 恭喜发财

发表于 2017-6-19 19:19:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在cad中,选中直线、多线等实体后,ctr+1可以查看该实体的特性
能不能自定义特性呢
比如一条直线,想定义如下信息
用途:道路
材质:金属
名称:延安路
客户:某某客户

能实现吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-6-19 19:23:20 | 显示全部楼层
用 扩展实体数据 或者 xdata 搜索论坛
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2017-6-19 20:48:30 | 显示全部楼层

(regapp "FREDS")
(entmake ; makes entity
    '((0 . "CIRCLE") ; entity type
    (8 . "0") ; layer name
    (62 . 3) ; color
    (39 . 2.75) ; thickness
    (10 8.0 6.0 0.0) ; center point
    (40 . 2.0) ; radius
    ; create and add xdata
    (-3 ("FREDS" (1002 . "{")
                          (1000 . "This is my data")

                          (1000 . "More Data")
                          (1000 . "and some more data")
                          (1040 . 12.345)
                          (1010 8.97197 6.8436 0.0)
                          (1040 . 2.75013)
                          (1002 . "}")))
    )
)
(Setq a (entget (entlast) '("FREDS")))
;; gets the assoc list with attached
;; extended entity data that belongs
;; to the regapp "FREDS"

(princ a) ;; prints assoc list to screen
(princ "\n\n") ;; two blank lines

(setq z (assoc -3 a)) ;; save xdata that belongs to the
;; regapp "FREDS" to z variable

(setq a (subst'(-3 ("FREDS")) (assoc -3 a) a)) ;; new assoc list without
;; xdata. The -3 assoc code has only
;; the regapp name without any data.
;; This gets substituted for the assoc
;; -3 list that has data.

(entmod a) ;; modifies entity removing the
;; xdata because feeding a entmod
;; an assoc list with only the regapp
;; name for the -3 assoc code removes
;; the extended entity data from the
;; entity.

(Setq a (entget (entlast) '("FREDS")))
;; gets the new assoc list to verify
;; the xdata has been removed

(princ a) ;; prints the new assoc list without
;; the xdata to screen.




如何设置扩展实体数据呢?
上面的代码有获取,那如何设置呢?
论坛上找了个类似的
代码如下:
(setx (entlast) "PRICE"  ((1040.123.45) (1040.321.54)))

(defun setx(entname appname xdata / x0 x1)

(setq appname(strcase appname))

(if (= (type entname) 'ENAME)

(if (tblsearch "APPID" appname)

(if (setq x0 (entget entname))

(progn

(setq x1 (list -3 (append (list appname) xdata)))

(setq x0 (append (entget entname) (list x1)))

(entmod x0)

)

)

)

)

)


但提示 函数错误: (1040.321.54),不知道该怎么用啊~~~~~··
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-6-19 20:51:03 | 显示全部楼层

从你的错误提示看

((1040.123.45)

这个前面应该加上 '

变成这样:

'((1040.123.45)....
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2017-6-19 20:56:58 | 显示全部楼层

追加了 ’ ,又提示 setx 函数未定义但下面已经定义了啊,为什么呢

点评

先定义才能用  发表于 2017-6-20 07:29
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-6-19 21:54:47 | 显示全部楼层

不知道你CAD什么版本呢, 那你就把setx函数提到最前面去。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2017-6-20 00:25:04 | 显示全部楼层
vlax-ldata-put 更简单灵活
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2017-6-20 10:14:18 | 显示全部楼层

有具体的例子吗?不是特别知道
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2017-6-21 10:37:36 | 显示全部楼层

我按vlax-ldata-put试了一下代码如下:


(regapp "project")
(setq e (car (entsel)))
(vlax-ldata-put e "project" '("北京项目"))

然后用
(entget (car (entsel)) '("*"))查看了一下组码

并没有给相应的实体加上扩展的实体数据,什么原因呢?还是使用错了

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-24 02:28 , Processed in 0.186238 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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