2010-10-19 1 views
3

В API AutoCAD .NET при открытии чертежа вы можете получить экстенты, используя переменные среды EXTMAX и EXTMIN. Однако эти переменные не дают правильных значений, если у вас нет открытого чертежа. Как вы получаете эти же экстенты, не открывая чертеж (AKA, используя базу данных)?Получите экстенты на чертеже, используя базу данных, не открывая чертеж

ответ

5

Я просмотрел группы обсуждения Autodesk и нашел ответ от Tony Tanzillo.

http://forums.autodesk.com/t5/NET/Zoom-Extents-on-new-Database/m-p/2070825/highlight/true#M8176

Вот пример:

Database database = new Database(false, true); 

String drawingFilePath = @"C:\Drawings\MyDrawing.dwg"; 

database.ReadDwgFile(drawingFilePath, FileShare.ReadWrite, true, String.Empty); 
database.UpdateExt(true); 

Point3d extentsMax = database.Extmax; 
Point3d extentsMin = database.Extmin; 
+0

Я ненавижу, чтобы принести это обратно к жизни - но как именно вы ссылки ObjectARX DLL файлы без AutoCAD быть открытым? - Я думал, вы должны запустить эти DLL внутри COM, как в плагине? - это для автостоянок? – Pakk

+1

@Pakk Использование метода базы данных для открытия чертежа означает только открытие чертежа в фоновом режиме без визуального отображения в пользовательском интерфейсе. Вам все равно придется запускать этот код из плагина внутри AutoCAD. – skeletank