4.2.2.3. Масштабирование вида

Источник здесь.[перевод не проверен];[перевёл Андрей Бушман]

    Для того, чтобы приблизить или удалить изображение в окне чертежа, следует изменить значения свойств Width (ширина) и Height (высота) текущего вида. После изменения границ вида убедитесь в том, что значения свойств Width (ширина) и Height (высота) изменились в соответствии с нужным значением масштабного коэффициента. Этот коэффициент расчитывается вами когда изменяется текущий вид одним из следующих способов1:
  • Отношением лимитов чертежа1
  • Отношением текущего вида1
  • Отношением единиц пространства листа1. Зуммирование в активном чертеже посредством указания масштабного коэффициента
Пример приведённого ниже кода демонстрирует, как уменьшить текущий вид на 50% используя процедуру Zoom, определённой в Управлении Текущим Видом.

    Пока процедуре Zoom передаётся всего четыре значения: первые два являются новыми 3D точками, которые не использованы. Третьим параметром является центральная точка, используемая при изменении размера вида. Последний (четвёртый) параметр - это масштабный коэффициент, используемый для изменения размера вида.

Код VB.NET

  1:  <CommandMethod("ZoomScale")> _
   2:  Public Sub ZoomScale()
   3:   
   4:    '' Получаем текущий документ
   5:    Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument 
   6:   
   7:    '' Получаем текущий вид
   8:    Using acView As ViewTableRecord = acDoc.Editor.GetCurrentView()
   9:   
  10:        '' Получаем центральную точку текущего вида
  11:        Dim pCenter As Point3d = New Point3d(acView.CenterPoint.X, _
  12:                                             acView.CenterPoint.Y, 0) 
  13:   
  14:        '' Определяем масштабный коэффициент
  15:        Dim dScale As Double = 0.5 
  16:   
  17:        '' Изменяем масштаб текущего вида, используя его центральную точку
  18:        Zoom(New Point3d(), New Point3d(), pCenter, 1 / dScale)
  19:    End Using
  20:  End Sub

Код C#

   1:  [CommandMethod("ZoomScale")]
   2:  static public void ZoomScale()
   3:  {
   4:    // Получаем текущий документ
   5:    Document acDoc = Application.DocumentManager.MdiActiveDocument; 
   6:   
   7:    // Получаем текущий вид
   8:    using (ViewTableRecord acView = acDoc.Editor.GetCurrentView())
   9:    {
  10:        // Получаем центральную точку текущего вида
  11:        Point3d pCenter = new Point3d(acView.CenterPoint.X,
  12:                                      acView.CenterPoint.Y, 0); 
  13:   
  14:        // Определяем масштабный коэффициент
  15:        double dScale = 0.5; 
  16:   
  17:        // Масштабируем вид, используя его центральную точку
  18:        Zoom(new Point3d(), new Point3d(), pCenter, 1 / dScale);
  19:    }
  20:  }

Код VBA / ActiveX

   1:  Sub ZoomScale()
   2:      Dim scalefactor As Double
   3:      Dim scaletype As Integer 
   4:      scalefactor = 0.5
   5:      scaletype = acZoomScaledRelative 
   6:      ThisDrawing.Application.ZoomScaled scalefactor, scaletype
   7:  End Sub

Примечания переводчика:
1не уверен в правильности перевода этого предложения.

Comments