Вид сверху

Автор Lemieux, 22.01.25, 16:04:42

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Lemieux

Всех приветствую. Как с помощью API в 3D документе выполнить команду "Вид сверху"?

Lemieux

IViewProjectionManager
SetMatrix3D

lavgirb

Цитата: Lemieux от 22.01.25, 16:04:42Всех приветствую. Как с помощью API в 3D документе выполнить команду "Вид сверху"?

Вот это, наверное, то что нужно.
IViewProjection7

Я, правда, делал в API5, там есть, но посмотреть и уточнить сейчас не имею возможности.
Если не то, посмотрю позже.

lavgirb

Посмотрел-таки.
Вот рабочий код. Оно?)

Private Sub ViewOrientation(ByVal eViewOrientation As ksRelativeProjectionTypeEnum)
 
  'eViewOrientation = ksPtUp      ' Вид сверху 
  'eViewOrientation = ksPtDown    ' Вид снизу 
  'eViewOrientation = kksPtIsoXYZ  ' Изометрия
 
  Dim oDoc3D_5           As Kompas6API5.Document3D
  Dim oViewProjColl_5    As Kompas6API5.ViewProjectionCollection
  Dim oViewProjection_5  As Kompas6API5.ViewProjection
 
  Set oDoc3D_5 = moKO5.ActiveDocument3D
  Set oViewProjColl_5 = oDoc3D_5.GetViewProjectionCollection
  oViewProjColl_5.viewProjectionScheme = ksVPSZ90AxonometricISO ' Схема Z(ISO)-аксонометрия
  Set oViewProjection_5 = oViewProjColl_5.GetByIndex(eViewOrientation)
  oViewProjection_5.SetCurrent

  oDoc3D_5.ZoomPrevNextOrAll ksZoomAll

  SetNothing oDoc3D_5, oViewProjColl_5, oViewProjection_5
End Sub
+ Благодарностей: 1

Lemieux


Kilia

Всем привет!
Пытаюсь создать вид ориентации модели в 3d модели. Предварительно вставил смещённую плоскость, и вид должен быть перпендикулярен данной плоскости.

plane = KompasObject.TransferInterface(iPlane3D, 1, 0)
iSurface = plane.GetSurface()
iPlaneParam = iSurface.GetSurfaceParam()
iPlacement = iPlaneParam.GetPlacement()
iDocument3D = KompasObject.TransferInterface(iKompasDocument_a3d, 1, 0)
iViewProjectionCollection = iDocument3D.GetViewProjectionCollection()
iViewProjection = iViewProjectionCollection.NewViewProjection()
iViewProjection.name = 'Test_name'
iViewProjection.SetPlacement(iPlacement)
iViewProjectionCollection.Add(iViewProjection)
iViewProjection.SetCurrent()

Получаю вид ориентации, но мне надо чтобы вид был повернут на 90 градусов.

Подскажите, пожалуйста как это сделать?



Михаил88

#6
Цитата: Kilia от 15.04.25, 12:36:25Подскажите, пожалуйста как это сделать?

Так пойдет?

application.ExecuteKompasCommand(41890, False)

Без поворота
Без поворота.gif

С поворотом
С поворотом.gif
+ Благодарностей: 1

Kilia

#7
Цитата: Михаил88 от 15.04.25, 18:21:32application.ExecuteKompasCommand(41890, False)
Михаил88, Доброй ночи!
А не подскажите команду для изометрической ориентации?

А все победил!
iKompasDocument3D1 = API7.IKompasDocument3D1(iKompasDocument)
iViewProjectionManager = iKompasDocument3D1.ViewProjectionManager
iViewProjection7 = iViewProjectionManager.ViewProjection(7)
iViewProjection7.Current = True