XDATA в программно созданном файле DXF

У меня есть небольшое приложение 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 ответ

Решение

Чего не хватает, так это тега максимального количества таблиц (70, count) после тега определения типа таблицы (2, APPID), следующие записи таблицы начинаются с (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

Вы можете найти больше информации здесь (действительно для DXF R13 и позже):

Другие вопросы по тегам