可以通过更改实体列表并将更改发布回数据库来直接修改实体。 该函数通过向实体传递一个列表来修改实体,该列表的格式与应用程序返回的列表相同,但某些实体组代码值(可能)由应用程序修改。此功能补充了 .AutoLISP 应用程序更新数据库的主要机制是检索具有 的实体,修改其实体列表,然后使用 将列表传递回数据库。entmodentgetentgetentgetentmod 下面的示例代码检索图形中第一个图元的定义数据,并将其图层属性更改为 MYLAYER。 (setq en (entnext)) ; Sets en to first entity name in the drawing. (setq ed (entget en)) ; Sets ed to the entity data for entity name en. (setq ed (subst (cons 8 "MYLAYER") (assoc 8 ed) ; Changes the layer group in ed. ed ; to layer MYLAYER. ) ) (entmod ed) ; Modifies entity en's layer in the drawing. 对数据库可能进行的更改有限制; 无法更改以下内容:entmodentmod
修改尺寸和填充图案时,存在其他限制。 AutoCAD 必须识别实体列表引用的所有对象(图层除外)。在将实体列表传递给 之前,必须在当前图形中定义实体列表中出现的任何文本样式、线型、形状或块的名称。唯一的例外是接受新的图层名称。如果图元列表引用的图层名称尚未在当前图形中定义,则创建一个新图层。新图层的属性是 AutoCAD LAYER 命令的“新建”选项使用的标准默认值。entmodentmodentmod 该函数可以修改子实体,例如折线顶点和块属性。如果用于修改块定义中的图元,则会影响模型空间和图纸空间中存在的对该块的所有引用。除非定义为常量,否则不会为图形中存在的每个块参照更新属性。此外,块定义中的实体不能被 删除。entmodentmodentdel 相关概念父主题: |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2024-12-15 14:33
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.