dxf - 以编程方式创建的 DXF 文件上的 XDATA

标签 dxf autolisp

我有一个小型 vb.net 应用程序,可以从头开始创建 DXF 文件,其中包含折线和一些文本对象。它正在按预期工作,并且目前正在完成其工作,利用了我在网上找到的一些“最低 dxf 要求”信息。

作为应用程序的升级,我决定在折线上添加一些扩展数据,这就是我遇到一些麻烦的地方。

我在实体部分的折线定义中添加了以下几行:

1001
MYAPPID01
1002
{
1000
-Some string I want to associate with the polyline-
1002
}

还为 appid 创建了一个表部分,如下所示:

0
SECTION
2
TABLES
0
TABLE
2
APPID
2
MYAPPID01
70
0
0
ENDTAB
0
ENDSEC

我还在 acaddoc lsp 文件中添加了自动加载过程来注册应用程序:

(if (not (tblsearch "APPID" "MYAPPID01"))   
  (regapp "MYAPPID01")
)

我的 dxf 文件无法加载并出现“无效的应用程序”错误。我必须做什么才能以最少的添加量将此 xdata 添加到我的正常 dxf 例程中?

任何有关 APPID 及其注册的帮助都会很棒。 提前谢谢大家。

最佳答案

表类型定义标记(2APPID)之后缺少最大表计数标记(70count) ),下表条目以 (0, APPID) 标记开头。 (DXF R12解决方案)

  0
SECTION         <<< start table section
  0
TABLE           <<< start table
  2             <<< group code 2 for
APPID           <<< table type definition
 70
10              <<< max table entry count
  0             <<< group code 0 for
APPID           <<< 1. table entry
  2
ACAD            <<< application name
 70
0               <<< flags, 0 is good
  0
APPID           <<< 2. table entry
  2
MYAPPID01       <<< application name
 70
0               <<< flags

... and so on

  0
ENDTAB
  0
ENDSEC

您可以找到更多信息here (适用于 DXF R13 及更高版本):

DXF Group Codes

关于dxf - 以编程方式创建的 DXF 文件上的 XDATA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53610068/

相关文章:

lisp - 复制时如何更新实体的扩展数据信息

autocad - 如何使用拟合点创建 dxf 样条曲线?

lisp - AutoCAD 中的 AutoLISP 函数错误参数

lisp - 文本实体的导出坐标

java - 如何使用java修改dxf文件

styles - 使用 AutoLISP 生成新的尺寸样式

Python:将 Shapely 对象导出到 DXF 文件

javascript - 如何将坐标数组格式化为不同的引用点

用于合并 DXF 文件的 Python 模块