ADN Club > Inventor API
Размер между двумя точками.
izhgtumekhanik:
Добрый вечер.
Есть необходимость проставить размер GeneralDimension между двумя точками эскиза.
Со всеми работает но не хочет работать с точками:
--- Код - Python [Выбрать] ---n_Doc2D = inventorApiV21.DrawingDocument(in_ADoc) in_Doc2DSheet = in_Doc2D.ActiveSheet in_Doc2DSheet = inventorApiV21.Sheet(in_Doc2DSheet) oSketches = in_Doc2DSheet.Sketches # oSketches = AppInvType.DrawingSketches(oSketches) oTG = AppInvCom.TransientGeometry # создание эскиза oSketch = oSketches.Add() oSketch.Edit() # создание геометрии #------------------------------------------------------------- oPoint1 = oSketch.SketchPoints.Add(oTG.CreatePoint2d(0, 10), True) oPoint2 = oSketch.SketchPoints.Add(oTG.CreatePoint2d(10, 15), True) #------------------------------------------------------------- GIntent_1 = in_Doc2DSheet.CreateGeometryIntent(oPoint1, in_const_.kPointIntent) #kPoint2dIntent GIntent_2 = in_Doc2DSheet.CreateGeometryIntent(oPoint2, in_const_.kPointIntent) #------------------------------------------------------------- oSketch.ExitEdit() in_Doc2DSheet.Update() textpoint = oTG.CreatePoint2d(15.67, 17.25) LinearDimObject = in_Doc2DSheet.DrawingDimensions.GeneralDimensions.AddLinear(textpoint, GIntent_1, GIntent_2, in_const_.kVerticalDimensionType) LGDimension_ = inventorApiV21.LinearGeneralDimension(LinearDimObject)
izhgtumekhanik:
если размер в в активном эскизе - то работает
--- Код - Python [Выбрать] ---oSketch.DimensionConstraints.AddTwoPointDistance(oPoint1, oPoint2, in_const_.kVerticalDim, oTG.CreatePoint2d(10.2, 12.2), False)
izhgtumekhanik:
ошибка здесь в сведении типа
--- Код - Python [Выбрать] ---GIntent_1 = in_Doc2DSheet.CreateGeometryIntent(oPoint1, in_const_.kPointIntent)
перебрал что нашел:
kPoint2dIntent kSketchPointObject kPoint2dIntent kPointIntent kPointEnumIntent kSketchPointObject kEndPointIntent kStartPointIntent kSketchPointObject
mikazakov:
Наверное логика инвентора так не дает делать. Ведь если поставить точки в эскизе на чертеже то после выхода из эскиза привязыться к ним нельзя. По факту вне эскиза на чертеже происходит привязка размера к концам примитивов. Но поставленный размер в эскизе можно извлечь на чертеж возможно через GeneralDimensions.GetRetrievableDimensions
izhgtumekhanik:
--- Цитата: mikazakov от 30-08-2023, 07:13:58 --- По факту вне эскиза на чертеже происходит привязка размера к концам примитивов. Но поставленный размер в эскизе можно извлечь на чертеж возможно через GeneralDimensions.GetRetrievableDimensions
--- Конец цитаты ---
у меня ошибку выдает:
--- Код - Python [Выбрать] ---oTG = AppInvCom.TransientGeometry # создание эскизаoSketch = oSketches.Add()oSketch.Edit() oPoint1 = oSketch.SketchPoints.Add(oTG.CreatePoint2d(0, 10), True)oPoint2 = oSketch.SketchPoints.Add(oTG.CreatePoint2d(10, 15), True) localDimension = oSketch.DimensionConstraints.AddTwoPointDistance(oPoint1, oPoint2, in_const_.kVerticalDim, oTG.CreatePoint2d(10.2, 12.2), False) oSketch.ExitEdit()in_Doc2DSheet.Update() in_Doc2D.SelectSet.Clear()in_Doc2D.SelectSet.Select(oSketch) CDefinitions = AppInvCom.CommandManager.ControlDefinitionsCDefinitions = inventorApiV21.ControlDefinitions(CDefinitions) CDefinition1 = CDefinitions.Item("DrawingRetrieveDimsCmd")CDefinition1 = inventorApiV21.ControlDefinition(CDefinition1) CDefinition2 = CDefinitions.Item("AppContextual_OKCmd")CDefinition2 = inventorApiV21.ControlDefinition(CDefinition2) CDefinition1.Execute()CDefinition2.Execute() #вот тут ошибка не как не получить объект LinearGeneralDimension из localDimensionLGDimension_ = inventorApiV21.LinearGeneralDimension(localDimension) var = LGDimension_.ModelValue #- значение размераprint(var)
Навигация
Перейти к полной версии