Тема: ViewPort, Layout и Model: как сделать правильные размеры и содержимое?
Здравствуйте, добрые люди!
Помогите, кто сможет! Несмотря на прочтение Help-a и сего форума, пока не могу разобраться с Layout-aми и ViewPort-aми... Задача: в окне Model выбирается область (для начала будем считать, что прямоугольная). В некотором Layout-e нужно создать ViewPort, где в некотором масштабе надо нарисовать объекты, попадающие в выделенную область. Я пытаюсь создать ViewPort по заданным координатам углов, но он не отображается, и его содержимое тоже:
Set newViewport = ThisDrawing.Viewports.Add("TESTVIEWPORT") Set viewObj = ThisDrawing.Views.Add("TESTVIEW") viewObj.Center(0) = (vp_x_max + vp_x_min) / 2: viewObj.Center(1) = (vp_y_max + vp_y_min) / 2 viewObj.Width = vp_x_max - vp_x_min viewObj.Height = vp_y_max - vp_y_min newViewport.SetView viewObj 'Судя по Debuger-у, всё верно присваивается ThisDrawing.ActiveViewport = newViewport ThisDrawing.Regen True
Что я делаю неправильно?
Если создавать ViewPort с помощью SendCommand,
pt0(0) = vp_x_min: pt0(1) = vp_y_min: pt0(2) = 0 pt1(0) = vp_x_max: pt1(1) = vp_y_max: pt1(2) = 0 ThisDrawing.SendCommand ("_mview" & vbCr & strPt0 & vbCr & strPt1 & vbCr)
то он создаётся, однако при установке масштаба (не важно, до или после создания viewPort-a)
Dim Numerator As Double, Denominator As Double Numerator = 1 Denominator = 4 ActiveDocument.Layouts.Item("MyLayout").SetCustomScale Numerator, Denominator
размеры ViewPort-a тоже уменьшаются в N=4 раз, хотя их об этом не просили. Как это обойти? Ещё при таком создании ViewPort-a в него запихивается всё содержимое Model (оно как-то само туда масштабируется). Опять же, как это обойти?
В общем, форма ViewPort-a должна быть такая же, как форма выделенной области, а размеры его должны быть такими, чтобы он вписался в лист Layout-a. При этом внутри этого ViewPort-a должны отобразиться те объекты, которые находятся в выделенной области окна Model.
Спасибо всем, кто что-нибудь подскажет...