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

XDATA on a Programmatically Created DXF File

我有一个小型 vb.net 应用程序,可以从头开始创建 DXF 文件,其中包含多段线和一些文本对象。它正在按预期工作并正在执行其工作,利用了我在网上找到的一些 "minimum dxf requirements" 信息。

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

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

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

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

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 文件未加载并出现 "Invalid application" 错误。我必须怎么做才能以最少的添加量将此扩展数据添加到我的正常 dxf 例程中?

任何有关 APPID 及其注册的帮助都将非常有用。 提前谢谢大家。

在 table 类型定义标签(2APPID),以下 table 条目以 (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 及更高版本):