明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: y1075

[原创]请高手帮个忙,有关修改扩展数据的.

  [复制链接]
发表于 2008-4-22 10:40:00 | 显示全部楼层
(setq objent(car(entsel)))
(setq ent(entget objent))
(setq entall(entget objent '("djinfo")))
(setq appent(cadr(assoc -3 entall)))
(setq appent(mapcar '(lambda(x)(if (equal  x '(1000 . "253")) '(1000 . "072") x)) appent))
                                                                             ;看前面一个(1000 . "253")是你要修改的,
                                                                             ;后面一个(1000 . "072")是你想修改到的值---
(setq appent(append (list -3) (list appent)))
(setq entall(append ent (list appent)))
(entmod entall)
发表于 2008-4-22 17:06:00 | 显示全部楼层
樓主指的(1000 . "253")應該是位置吧!
发表于 2008-4-22 20:33:00 | 显示全部楼层
层层扒皮
层层回溯
发表于 2024-7-23 14:42:18 | 显示全部楼层
danxingpen 发表于 2008-4-22 10:40
(setq objent(car(entsel)))(setq ent(entget objent))(setq entall(entget objent '("djinfo")))(setq app ...

下面是对每一行代码的详细分析:

1. `(setq objent (car (entsel)))`
   - 这行代码通过`entsel`函数选择一个实体,并将其存储在变量`objent`中。`entsel`函数会弹出一个选择框让用户选择一个实体,并返回一个包含该实体的列表。`car`函数用于提取列表中的第一个元素,即选择的实体。

2. `(setq ent (entget objent))`
   - 这行代码使用`entget`函数获取所选实体的完整数据,并将其存储在变量`ent`中。`entget`函数返回一个包含实体所有属性和值的关联列表。

3. `(setq entall (entget objent '("djinfo")))`
   - 这行代码再次使用`entget`函数获取所选实体的数据,但这次传递了一个额外的参数`'("djinfo")`,表示只获取与"djinfo"相关的数据。这个参数的具体含义可能与具体的应用场景有关。

4. `(setq appent (cadr (assoc -3 entall)))`
   - 这行代码从`entall`中提取与代码块`-3`相关的数据。`assoc -3 entall`会返回一个包含代码块`-3`及其相关数据的列表,`cadr`函数用于提取这个列表的第二个元素,并将其存储在变量`appent`中。

5. `(setq appent (mapcar '(lambda (x) (if (equal x '(1000 . "253")) '(1000 . "072") x)) appent))`
   - 这行代码使用`mapcar`函数遍历`appent`中的每个元素,并使用一个匿名函数`(lambda (x) ...)`来检查每个元素是否等于`(1000 . "253")`。如果是,则将其替换为`(1000 . "072")`,否则保持不变。这个操作的目的是修改特定的数据值。

6. `(setq appent (append (list -3) (list appent)))`
   - 这行代码将代码块`-3`和修改后的`appent`数据重新组合成一个新的列表。`append`函数用于将两个列表连接在一起。

7. `(setq entall (append ent (list appent)))`
   - 这行代码将原始的实体数据`ent`和修改后的`appent`数据组合成一个新的列表,并将其存储在变量`entall`中。

8. `(entmod entall)`
   - 这行代码使用`entmod`函数将修改后的实体数据写回到AutoCAD中,从而更新实体的属性。
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 11:49 , Processed in 0.177067 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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