Отображение всего чертежа
Границы пространтв или значение лимитов чертежа также могут использоваться для определения зоны на виде
Расчет границ текущего пространства
Границы текущего пространства могут быть получены используя свойства у объекта класса Database:
- Extmin и Extmax возвращают границы пространства модели;
- Pextmin и Pextmax возвращают границы текущего листа (если текущее пространство = лист); Как только границы определены, можно рассчитать новые значения Ширины и Высоты вида. Новое значение ширины и высоты может быть определено используя код ниже:
dWidth = MaxPoint.X : MinPoint.X
dHeight = MaxPoint.Y : MinPoint.Y
Координаты центральной точки могут быть определены как:
dCenterX = (MaxPoint.X + MinPoint.X) * 0.5
dCenterY = (MaxPoint.Y + MinPoint.Y) * 0.5
Расчет пределов (limits) текущего пространства
Чтобы изменить отображение чертежа на основе пределов (limits) текущего пространства, используются свойства Limmin и Limmax , а также Plimmin и Plimmax объекта Database. После возвращения точек, определяющих границы текущего пространства, вы можете использовать ранее упомянутые формулы для расчета ширины, высоты и координат центральной точки нового вида. Код ниже позволяет установить параметры отображения вида для заданных границ и лимитов. Для случая границ используется только пользовательское значение масштаба, немного большее 1. Для лимитов используются свойства Database для установки минимальной и максимальной точек вида.
[CommandMethod("ZoomExtents")]
static public void ZoomExtents()
{
// Zoom to the extents of the current space
Zoom(new Point3d(), new Point3d(), new Point3d(), 1.01075);
}
[CommandMethod("ZoomLimits")]
static public void ZoomLimits()
{
Document acDoc = Application.DocumentManager.MdiActiveDocument;
Database acCurDb = acDoc.Database;
// Zoom to the limits of Model space
Zoom(new Point3d(acCurDb.Limmin.X, acCurDb.Limmin.Y, 0),
new Point3d(acCurDb.Limmax.X, acCurDb.Limmax.Y, 0),
new Point3d(), 1);
}