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

时间:2018-12-04 09:52:05

标签: dxf autolisp

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

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

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

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及其注册的帮助都将非常有用。 谢谢大家。

1 个答案:

答案 0 :(得分:2)

缺少的是表类型定义标记(70count)之后的最大表计数标记(2APPID),以下表条目以(0APPID)标签。 (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