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 и позже):