CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2021 开发者帮助

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

2024-5-18 18:28| 发布者: admin| 查看: 14| 评论: 0|原作者: admin|来自: AutoCAD

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

应用程序可以通过调用函数将图元添加到图形数据库中。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 组代码。如果第一个成员未指定类型,则只能指定实体的名称:group -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 13 版之前引入的图元的 DXF 名称

3DFACE的

ATTDEF公司

ATTRIB公司

尺寸

插入

线

折线(旧式)

赛肯德

形状

固体

发短信

顶点

视窗

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


路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-6-27 16:04

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部