Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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);
        }