В API AutoCAD .NET при открытии чертежа вы можете получить экстенты, используя переменные среды EXTMAX и EXTMIN. Однако эти переменные не дают правильных значений, если у вас нет открытого чертежа. Как вы получаете эти же экстенты, не открывая чертеж (AKA, используя базу данных)?Получите экстенты на чертеже, используя базу данных, не открывая чертеж
3
A
ответ
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;
Я ненавижу, чтобы принести это обратно к жизни - но как именно вы ссылки ObjectARX DLL файлы без AutoCAD быть открытым? - Я думал, вы должны запустить эти DLL внутри COM, как в плагине? - это для автостоянок? – Pakk
@Pakk Использование метода базы данных для открытия чертежа означает только открытие чертежа в фоновом режиме без визуального отображения в пользовательском интерфейсе. Вам все равно придется запускать этот код из плагина внутри AutoCAD. – skeletank