找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5638|回复: 17

[选择集] 一次 Entmod 多个属性

[复制链接]
发表于 2013-6-5 07:37:25 | 显示全部楼层 |阅读模式
函数发布
函数名称: XD::OBJ:Entmod
调用格式: (XD::OBJ:Entmod el lst)
参数说明: el ----- 与 entget 函数返回表相同格式的表
lst ----- (<组码1> <修改后的值> [组码2] [修改后的值] ... [组码n] [修改后的值])

注意:组码和修改的值必须配对出现,可以提供多个配对。
返回值: 如果成功,返回 entmod 更新后的 el,如果不能修改,则函数返回 nil
函数简介: 一次 EntMod 多个属性
函数来源: 原创
函数作者: Free-lancer
适用版本: 不限 
最后更新时间: 2013-06-05
备注: -
演示图片: -

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

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

×
本帖最后由 Free-Lancer 于 2013-6-5 13:36 编辑

[pcode=lisp,true](defun XD::OBJ:Entmod (el lst)
  (while lst
    (if (assoc (car lst) el)
      (setq el (subst (cons (car lst) (cadr lst))
        (assoc (car lst) el)
        el
        )
      )
      (setq el (append el (list (cons (car lst) (cadr lst))))) ;_没有的组码要附加到最后
    )
    (setq lst (cddr lst))
  )
  (entmod el)
)[/pcode]

评分

参与人数 2D豆 +8 收起 理由
QiaoCheng + 3 很给力!经验;技术要点;资料分享奖!
炫翔 + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

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

已领礼包: 64个

财富等级: 招财进宝

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

使用道具 举报

已领礼包: 683个

财富等级: 财运亨通

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

使用道具 举报

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

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-6-5 09:44:43 | 显示全部楼层
XDRX_API里面的XDRX_MODENT函数的LISP实现,我看看能完善下代码不。感觉名字叫 XD::OBJ::EntMod 比较好,因为不只是能修改实体,对象都能修改。

点评

在 Alisp 中习惯叫 Entity,在 Vlisp 中用 Object,而 Object 是不能用 Entmod,这个对应的是 Entity,我觉得如果参数用 Object 的时候可以使用 OBJ,这样也有个区别,那些是纯Alisp,那些要用 Vlisp 方法、属性  详情 回复 发表于 2013-6-5 13:05
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-6-5 10:11:30 | 显示全部楼层
这些函数能不能汇总置顶放在一起啊?不然太多了

点评

点击论坛上面的函数发布分类,就可以将所有的函数发布帖子集中到一起浏览了!  详情 回复 发表于 2013-6-5 10:28
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-6-5 10:28:49 | 显示全部楼层
QiaoCheng 发表于 2013-6-5 10:11
这些函数能不能汇总置顶放在一起啊?不然太多了

点击论坛上面的函数发布分类,就可以将所有的函数发布帖子集中到一起浏览了!

                               
登录/注册后可看大图


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

使用道具 举报

发表于 2013-6-5 10:30:46 | 显示全部楼层
排在后面翘起头拼命拍手
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-5 13:05:20 | 显示全部楼层
Lispboy 发表于 2013-6-5 09:44
XDRX_API里面的XDRX_MODENT函数的LISP实现,我看看能完善下代码不。感觉名字叫 XD::OBJ::EntMod 比较好,因 ...

在 Alisp 中习惯叫 Entity,在 Vlisp 中用 Object,而 Object 是不能用 Entmod,这个对应的是 Entity,我觉得如果参数用 Object 的时候可以使用 XD::OBJ前缀,这样也有个区别,那些是纯Alisp,那些要用 Vlisp 方法、属性

点评

我觉得既然写通用的函数库,就不管是ALISP还是VLISP,(通用函数库是个黑盒子,用户不关心里面是ALISP还是VLISP实现的。给出来盒子的接口就够了。)都应该按ACAD的对象数据库文档来,不能因为VLISP叫OBJ了,其他的就  详情 回复 发表于 2013-6-5 13:30
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-6-5 13:30:59 | 显示全部楼层
Free-Lancer 发表于 2013-6-5 13:05
在 Alisp 中习惯叫 Entity,在 Vlisp 中用 Object,而 Object 是不能用 Entmod,这个对应的是 Entity,我 ...

我觉得既然写通用的函数库,就不管是ALISP还是VLISP,(通用函数库是个黑盒子,用户不关心里面是ALISP还是VLISP实现的。给出来盒子的接口就够了。)都应该按ACAD的对象数据库文档来,不能因为VLISP叫OBJ了,其他的就不能叫了。VLA的OBJ和文档里面的OBJECT不是一个东西。

因为这个函数是可以修改任何entget 得到的对象的数据的,只叫Ent有点对不上ARX的文档,叫OBJ能说明对层表、词典那些非显示的对象也可以适用。

因为以后还有很多只适合OBJ的函数要写。

一家之言,呵呵。

点评

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

使用道具 举报

 楼主| 发表于 2013-6-5 13:38:11 | 显示全部楼层
Lispboy 发表于 2013-6-5 13:30
我觉得既然写通用的函数库,就不管是ALISP还是VLISP,(通用函数库是个黑盒子,用户不关心里面是ALISP还 ...

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

使用道具 举报

已领礼包: 117个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

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

使用道具 举报

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

使用道具 举报

已领礼包: 195个

财富等级: 日进斗金

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-25 16:21 , Processed in 0.496570 second(s), 66 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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