ADN Open CIS
Сообщество программистов Autodesk в СНГ

24/05/2013

Можно ли использовать с базами в памяти функции ADS?

Рассмотрим такой пример:

Используя метод AcDbDatabase::readDwgFile() прочитаем несколько чертежей в память. При помощи функции ads_entget() попробуем получить список DXF-кодов объектов. Для большинства баз эта функция вернёт NULL, хотя для  некоторых вернёт правильные значения. Так можно ли безопасно использовать ADS-функции с базами в памяти и как заставить эти функции возвращать правильные значения?

Короткий ответ: НЕТ!

Некоторые ADS-функции могут работать с объектами из других баз в некоторых случаях, но это не предусмотрено. Таким образом не следует использовать в этом случае ADS-функции.

Если вы хотите работать с объектами в базах, не загруженных в редактор AutoCAD, тогда вы не можете безопасно использовать ads-функции и следовательно необходимо использовать не ads-функции, а методы в AcDb-классах.

Источник: http://adndevblog.typepad.com/autocad/2013/02/quick-tip-can-you-use-ads-functions-with-in-memory-side-databases.html

Обсуждение: http://adn-cis.org/forum/index.php?topic=40.0

Опубликовано 24.05.2013
Отредактировано 06.06.2013 в 00:28:05