CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 文档中心

关于在不使用命令函数的情况下添加实体(AutoLISP)

2023-1-8 11:08| 发布者: admin| 查看: 669| 评论: 0|来自: AutoCAD

摘要: 应用程序可以通过调用 entmake 函数将实体添加到图形数据库。

应用程序可以通过调用函数将实体添加到图形数据库。entmake

与此类似,参数 to 是一个列表,其格式类似于返回的列表。列表描述的新图元将追加到图形数据库中(它将成为图形中的最后一个图元)。如果实体是复杂实体(旧式折线或块),则在完成之前不会追加到数据库中。entmodentmakeentget

以下示例代码在 MYLAYER 层上创建一个圆圈:

(entmake '((0 . "CIRCLE") ; Object type
  (8 . "MYLAYER")         ; Layer
  (10 5.0 7.0 0.0)        ; Center point
  (40 . 1.0)              ; Radius
))

以下限制适用于所有实体:entmake

  • 列表中的第一个或第二个成员必须指定实体类型。键入的值必须是有效的 DXF 组代码。如果第一个成员未指定类型,则它只能指定实体的名称:组 -1(名称不保存在数据库中)。
  • AutoCAD 必须识别实体列表引用的所有对象。有一个例外:接受新的图层名称。entmake
  • 传递到的任何内部字段都将被忽略。entmake
  • entmake无法创建视口实体。

对于 AutoCAD 版本 13 及更高版本中引入的实体类型,还必须在创建实体时指定子类标记(DXF 组代码 100)。所有 AutoCAD 实体都具有 AcDbEntity 子类标记,并且必须显式包含在列表中。此外,还需要一个或多个子类标记条目来标识特定的子实体类型。这些条目必须遵循组代码 0,并且必须位于专门用于定义列表中的实体属性的组代码之前。例如,以下是创建 MTEXT 实体所需的最低代码:entmakeentmakeentmake

(entmake '(
  (0 . "MTEXT")
  (100 . "AcDbEntity") ; Required for all post-R12 entities.
  (8 . "ALAYER")
  (100 . "AcDbMText")  ; Identifies the entity as MTEXT.
  (10 4.0 4.0 0.0)
  (1 . "Some\\Ptext")
))

下表标识了不需要传递到的列表中的子实体标记条目的实体:entmake

在AutoCAD Release 13之前引入的实体的DXF名称

3Dface

阿特德夫

阿特里布

尺寸

插入

线

折线(旧式)

塞昆德

形状

固体

发短信

顶点

视窗

该函数验证是否提供了有效的图层名称、线型名称和颜色。如果引入了新的图层名称,则会自动创建新图层。在冻结图层上创建的对象在解冻之前不会再生。该函数还会检查块名称、标注样式名称、文本样式名称和形状名称(如果实体类型需要)。如果函数无法创建有效的实体,则该函数将失败。entmakeentmakeentmake


路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 13:18

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部