/// <summary> /// Зубья вала. /// </summary> private void BuildTeeth() { //Многоугольник для выдавливания PlanarSketch StemSketchQ = MakeNewSketch(3, ValParameters.GetParameter(ParameterType.LengthFirstLevel).Value + ValParameters.GetParameter(ParameterType.LengthSecondLevel).Value);// второй параметр отодвигает по Z координате на заданную длину. Point2d pointQ = _inventorApi.TransientGeometry.CreatePoint2d(ValParameters.GetParameter(ParameterType.RadiusThirdLevel).Value + 3, 0); Point2d CenterPointQ = _inventorApi.TransientGeometry.CreatePoint2d(ValParameters.GetParameter(ParameterType.RadiusThirdLevel).Value, 0); DrawPolygon(pointQ, StemSketchQ, CenterPointQ); ExtrudeDefinition extrudeDefQ = _inventorApi.PartDefinition. Features. ExtrudeFeatures. CreateExtrudeDefinition(StemSketchQ.Profiles.AddForSolid(), PartFeatureOperationEnum.kCutOperation); extrudeDefQ.SetDistanceExtent( ValParameters.GetParameter(ParameterType.LengthThirdLevel).Value, PartFeatureExtentDirectionEnum.kPositiveExtentDirection); ExtrudeFeature extrudeQ = _inventorApi.PartDefinition.Features.ExtrudeFeatures.Add(extrudeDefQ); //Базовые оси //для создания массива. WorkAxis XAxis = _inventorApi.PartDefinition.WorkAxes[1]; WorkAxis YAxis = _inventorApi.PartDefinition.WorkAxes[2]; WorkAxis ZAxis = _inventorApi.PartDefinition.WorkAxes[3]; //Create an object collection ObjectCollection objectCollection = _inventorApi.CreateObjectCollection(); objectCollection.Add(extrudeQ); _inventorApi.PartDefinition.Features.CircularPatternFeatures.Add( objectCollection, ZAxis, true, (int)(ValParameters.GetParameter(ParameterType.RadiusThirdLevel).Value / 1.5), "360 deg", true, PatternComputeTypeEnum.kAdjustToModelCompute); }
/// <summary> /// Построение зубьев вала. /// </summary> private void BuildTeeth() { if (ValParameters.GetParameter(ParameterType.NumTeethLevelSetted).Value == 1) { _numTeethLevelL = ValParameters.GetParameter(ParameterType.LengthFirstLevel).Value - ValParameters.GetParameter(ParameterType.LengthFirstLevel).Value; _numTeethLevelR = ValParameters.GetParameter(ParameterType.RadiusFirstLevel).Value + ValParameters.GetParameter(ParameterType.RadiusFirstLevel).Value / 10; _numTeethLevelQ = ValParameters.GetParameter(ParameterType.RadiusFirstLevel).Value; _distance = ValParameters.GetParameter(ParameterType.LengthFirstLevel).Value; } // if (ValParameters.GetParameter(ParameterType.NumTeethLevelSetted).Value == 2) { _numTeethLevelL = ValParameters.GetParameter(ParameterType.LengthFirstLevel).Value; _numTeethLevelR = ValParameters.GetParameter(ParameterType.RadiusSecondLevel).Value + ValParameters.GetParameter(ParameterType.RadiusSecondLevel).Value / 10; _numTeethLevelQ = ValParameters.GetParameter(ParameterType.RadiusSecondLevel).Value; _distance = ValParameters.GetParameter(ParameterType.LengthSecondLevel).Value; } // if (ValParameters.GetParameter(ParameterType.NumTeethLevelSetted).Value == 3) { _numTeethLevelL = ValParameters.GetParameter(ParameterType.LengthFirstLevel).Value + ValParameters.GetParameter(ParameterType.LengthSecondLevel).Value; _numTeethLevelR = ValParameters.GetParameter(ParameterType.RadiusThirdLevel).Value + ValParameters.GetParameter(ParameterType.RadiusThirdLevel).Value / 10; _numTeethLevelQ = ValParameters.GetParameter(ParameterType.RadiusThirdLevel).Value; _distance = ValParameters.GetParameter(ParameterType.LengthThirdLevel).Value; } // if (ValParameters.GetParameter(ParameterType.NumTeethLevelSetted).Value == 4) { _numTeethLevelL = ValParameters.GetParameter(ParameterType.LengthFirstLevel).Value + ValParameters.GetParameter(ParameterType.LengthSecondLevel).Value + ValParameters.GetParameter(ParameterType.LengthThirdLevel).Value; _numTeethLevelR = ValParameters.GetParameter(ParameterType.RadiusFourthLevel).Value + ValParameters.GetParameter(ParameterType.RadiusFourthLevel).Value / 10; _numTeethLevelQ = ValParameters.GetParameter(ParameterType.RadiusFourthLevel).Value; _distance = ValParameters.GetParameter(ParameterType.LengthFourthLevel).Value; } // if (ValParameters.GetParameter(ParameterType.NumTeethLevelSetted).Value == 5) { _numTeethLevelL = ValParameters.GetParameter(ParameterType.LengthFirstLevel).Value + ValParameters.GetParameter(ParameterType.LengthSecondLevel).Value + ValParameters.GetParameter(ParameterType.LengthThirdLevel).Value + ValParameters.GetParameter(ParameterType.LengthFourthLevel).Value; _numTeethLevelR = ValParameters.GetParameter(ParameterType.RadiusFifthLevel).Value + ValParameters.GetParameter(ParameterType.RadiusFifthLevel).Value / 10; _numTeethLevelQ = ValParameters.GetParameter(ParameterType.RadiusFifthLevel).Value; _distance = ValParameters.GetParameter(ParameterType.LengthFifthLevel).Value; } // if (ValParameters.GetParameter(ParameterType.NumTeethLevelSetted).Value == 6) { _numTeethLevelL = ValParameters.GetParameter(ParameterType.LengthFirstLevel).Value + ValParameters.GetParameter(ParameterType.LengthSecondLevel).Value + ValParameters.GetParameter(ParameterType.LengthThirdLevel).Value + ValParameters.GetParameter(ParameterType.LengthFourthLevel).Value + ValParameters.GetParameter(ParameterType.LengthFifthLevel).Value; _numTeethLevelR = ValParameters.GetParameter(ParameterType.RadiusSixthLevel).Value + ValParameters.GetParameter(ParameterType.RadiusSixthLevel).Value / 10; _numTeethLevelQ = ValParameters.GetParameter(ParameterType.RadiusSixthLevel).Value; _distance = ValParameters.GetParameter(ParameterType.LengthSixthLevel).Value; } // if (ValParameters.GetParameter(ParameterType.NumTeethLevelSetted).Value == 7) { _numTeethLevelL = ValParameters.GetParameter(ParameterType.LengthFirstLevel).Value + ValParameters.GetParameter(ParameterType.LengthSecondLevel).Value + ValParameters.GetParameter(ParameterType.LengthThirdLevel).Value + ValParameters.GetParameter(ParameterType.LengthFourthLevel).Value + ValParameters.GetParameter(ParameterType.LengthFifthLevel).Value + ValParameters.GetParameter(ParameterType.LengthSixthLevel).Value; _numTeethLevelR = ValParameters.GetParameter(ParameterType.RadiusSeventhLevel).Value + ValParameters.GetParameter(ParameterType.RadiusSeventhLevel).Value / 10; _numTeethLevelQ = ValParameters.GetParameter(ParameterType.RadiusSeventhLevel).Value; _distance = ValParameters.GetParameter(ParameterType.LengthSeventhLevel).Value; } PlanarSketch StemSketchQ = _inventorApi.MakeNewSketch(3, _numTeethLevelL);// второй параметр отодвигает по Z координате на заданную длину. Point2d pointQ = _inventorApi.TransientGeometry.CreatePoint2d(_numTeethLevelR, 0); Point2d CenterPointQ = _inventorApi.TransientGeometry.CreatePoint2d(_numTeethLevelQ, 0); _inventorApi.DrawPolygon(pointQ, StemSketchQ, CenterPointQ); //DrawPolygon(pointQ, StemSketchQ, CenterPointQ); ExtrudeDefinition extrudeDefQ = _inventorApi.PartDefinition. Features. ExtrudeFeatures. CreateExtrudeDefinition(StemSketchQ.Profiles.AddForSolid(), PartFeatureOperationEnum.kCutOperation); extrudeDefQ.SetDistanceExtent( _distance, // insteadof _distance = ValParameters.GetParameter(ParameterType.LengthFirstLevel).Value; PartFeatureExtentDirectionEnum.kPositiveExtentDirection); ExtrudeFeature extrudeQ = _inventorApi.PartDefinition.Features.ExtrudeFeatures.Add(extrudeDefQ); //Базовые оси //для создания массива. WorkAxis XAxis = _inventorApi.PartDefinition.WorkAxes[1]; WorkAxis YAxis = _inventorApi.PartDefinition.WorkAxes[2]; WorkAxis ZAxis = _inventorApi.PartDefinition.WorkAxes[3]; //Create an object collection ObjectCollection objectCollection = _inventorApi.CreateObjectCollection(); objectCollection.Add(extrudeQ); _inventorApi.PartDefinition.Features.CircularPatternFeatures.Add( objectCollection, ZAxis, true, // (int)(ValParameters.GetParameter(ParameterType.RadiusThirdLevel).Value/1.5), (int)(ValParameters.GetParameter(ParameterType.NumTeeth).Value), "360 deg", true, PatternComputeTypeEnum.kAdjustToModelCompute); }