コード例 #1
0
        /// <summary>
        /// метод создания треугольника для крестообразного шлица
        /// </summary>
        /// <param name="width">длина </param>
        /// <param name="height">высота</param>
        /// <param name="planeType">плоскость</param>
        /// <param name="type">метод выдавливания</param>
        /// <param name="extrusionHeight">высота выдавливания</param>
        /// <returns></returns>
        private ksEntity DrawTriangle(
            Double width,
            Double height,
            Obj3dType planeType,
            Direction_Type type,
            Double extrusionHeight)
        {
            var regPolySketch     = new KompasSketch(_kompasApp.ScrewPart, planeType);
            var regPolySketchEdit = regPolySketch.BeginEntityEdit();

            regPolySketchEdit.ksLineSeg(0, width, 0, -width, 1);
            regPolySketchEdit.ksLineSeg(0, width, height, 0, 1);
            regPolySketchEdit.ksLineSeg(0, -width, height, 0, 1);
            regPolySketch.EndEntityEdit();

            var extrusionParameters = new KompasExtrusionParameters
                                      (
                _kompasApp.ScrewPart,
                Obj3dType.o3d_cutExtrusion,
                regPolySketch.Entity,
                type,
                extrusionHeight
                                      );

            var regPolyExtrusion = new KompasExtrusion(extrusionParameters,
                                                       ExtrusionType.ByEntity);

            return(regPolyExtrusion.ExtrudedEntity);
        }
コード例 #2
0
ファイル: Muffler.cs プロジェクト: alheym/screw_orsapr
        /// <summary>
        /// Конструктор глушителя
        /// </summary>
        /// <param name="figureParameters">Parameters of muffler</param>
        /// <param name="kompasApp">Kompas application specimen</param>
        /// <param name="basePlane">Base plane of muffler, by default is null</param>
        public Muffler(KompasApplication kompasApp, MufflerParameters figureParameters,
                       ksEntity basePlane = null)
        {
            if (kompasApp == null ||
                figureParameters.Document3DPart == null ||
                figureParameters.BasePlanePoint.LastErrorCode != ErrorCodes.OK ||
                !(figureParameters.BasePlaneAxis == Obj3dType.o3d_planeXOY ||
                  figureParameters.BasePlaneAxis == Obj3dType.o3d_planeXOZ ||
                  figureParameters.BasePlaneAxis == Obj3dType.o3d_planeYOZ) ||
                !DoubleValidator.Validate(figureParameters.BasePlanePoint.X) ||
                !DoubleValidator.Validate(figureParameters.BasePlanePoint.Y))
            {
                LastErrorCode = ErrorCodes.ArgumentNull;
                return;
            }
            if (!(figureParameters.Direction == Direction_Type.dtNormal ||
                  figureParameters.Direction == Direction_Type.dtReverse))
            {
                LastErrorCode = ErrorCodes.ArgumentInvalid;
                return;
            }

            _kompasApp        = kompasApp;
            _figureParameters = figureParameters;

            Extrusion = CreateMuffler(figureParameters, basePlane);
            if (Extrusion == null)
            {
                return;
            }
        }
コード例 #3
0
        /// <summary>
        /// Удалить глушитель из 3D детали документа
        /// </summary>
        public bool DeleteDetail()
        {
            if (Extrusion == null)
            {
                LastErrorCode = ErrorCodes.ArgumentNull;
                return(false);
            }

            // Удаление глушителя
            Extrusion.BaseFaceAreaState = KompasFaces.BaseFaceAreaState.BaseFaceAreaLower;
            var extruded = Extrusion.ExtrudedEntity;

            if (extruded == null)
            {
                LastErrorCode = Extrusion.LastErrorCode;
                return(false);
            }

            var extrusionParameters = new KompasExtrusionParameters(_figureParameters.Document3DPart, Obj3dType.o3d_cutExtrusion, extruded, _figureParameters.Direction, _kompasApp.Parameters[4] / 4.0);
            var mufflerDeletion     = new KompasExtrusion(extrusionParameters, ExtrusionType.ByEntity);

            if (mufflerDeletion.LastErrorCode != ErrorCodes.OK)
            {
                LastErrorCode = mufflerDeletion.LastErrorCode;
                return(false);
            }

            return(true);
        }
コード例 #4
0
        /// <summary>
        /// Создать глушитель оси базовой плоскости
        /// </summary>
        /// <param name="figureParameters">Parameters of muffler</param>
        /// <param name="basePlane">Base plane of muffler, by default is null</param>
        /// <returns>Выдавливание глушителя или ноль, если выдавливание возвращает ошибку</returns>
        private KompasExtrusion CreateMuffler(MufflerParameters figureParameters, ksEntity basePlane = null)
        {
            // Muffler sketch
            var muffler = new KompasSketch(figureParameters.Document3DPart, figureParameters.BasePlaneAxis);

            // If базовая плоскость установлена --
            // -- создать эскиз глушителя на нем
            // вместо оси базовой плоскости
            if (basePlane != null)
            {
                muffler = new KompasSketch(figureParameters.Document3DPart, basePlane);
            }
            if (muffler.LastErrorCode != ErrorCodes.OK)
            {
                LastErrorCode = muffler.LastErrorCode;
                return(null);
            }

            var mufflerSketchEdit = muffler.BeginEntityEdit();

            if (mufflerSketchEdit == null)
            {
                LastErrorCode = ErrorCodes.EntityCreateError;
                return(null);
            }

            // Глушитель прямоугольник, ширина и высота диаметр шляпки
            var mufflerRectangleParam = new RectangleParameter(_kompasApp, _kompasApp.Parameters[0], _kompasApp.Parameters[0], figureParameters.BasePlanePoint);

            if (mufflerSketchEdit.ksRectangle(mufflerRectangleParam.FigureParam) == 0)
            {
                LastErrorCode = ErrorCodes.Document2DRectangleCreateError;
                return(null);
            }

            muffler.EndEntityEdit();

            // Выдавливание глушителя, высота глушителя высота шляпки / 4
            var extrusionParameters = new KompasExtrusionParameters(figureParameters.Document3DPart, Obj3dType.o3d_baseExtrusion, muffler.Entity, figureParameters.Direction, _kompasApp.Parameters[4] / 4.0);
            var mufflerExtrusion    = new KompasExtrusion(extrusionParameters, ExtrusionType.ByEntity);

            if (mufflerExtrusion.LastErrorCode != ErrorCodes.OK)
            {
                LastErrorCode = mufflerExtrusion.LastErrorCode;
                return(null);
            }

            return(mufflerExtrusion);
        }
コード例 #5
0
ファイル: Muffler.cs プロジェクト: alheym/screw_orsapr
        /// <summary>
        /// Создать глушитель оси базовой плоскости
        /// </summary>
        /// <param name="figureParameters">Parameters of muffler</param>
        /// <param name="basePlane">Base plane of muffler, by default is null</param>
        /// <returns>Выдавливание глушителя или ноль, если выдавливание возвращает ошибку</returns>
        private KompasExtrusion CreateMuffler(MufflerParameters figureParameters,
                                              ksEntity basePlane = null)
        {
            var muffler = new KompasSketch(figureParameters.Document3DPart,
                                           figureParameters.BasePlaneAxis);

            if (basePlane != null)
            {
                muffler = new KompasSketch(figureParameters.Document3DPart, basePlane);
            }

            var mufflerSketchEdit = muffler.BeginEntityEdit();

            if (mufflerSketchEdit == null)
            {
                LastErrorCode = ErrorCodes.EntityCreateError;
                return(null);
            }

            var mufflerRectangleParam = new RectangleParameter
                                        (
                _kompasApp,
                _kompasApp.Parameters[0],
                _kompasApp.Parameters[0],
                figureParameters.BasePlanePoint
                                        );

            if (mufflerSketchEdit.ksRectangle(mufflerRectangleParam.FigureParam) == 0)
            {
                LastErrorCode = ErrorCodes.Document2DRegPolyCreateError;
                return(null);
            }

            muffler.EndEntityEdit();

            var extrusionParameters = new KompasExtrusionParameters
                                      (
                figureParameters.Document3DPart,
                Obj3dType.o3d_baseExtrusion,
                muffler.Entity,
                figureParameters.Direction, _kompasApp.Parameters[4] / 4.0
                                      );

            var mufflerExtrusion = new KompasExtrusion(extrusionParameters,
                                                       ExtrusionType.ByEntity);

            return(mufflerExtrusion);
        }
コード例 #6
0
ファイル: Muffler.cs プロジェクト: alheym/screw_orsapr
        public Muffler(KompasApplication kompasApp, double basePoint,
                       ksEntity basePlane = null)
        {
            _figureParameters.Document3DPart = kompasApp.ScrewPart;
            _figureParameters.Direction      = Direction_Type.dtNormal;
            _figureParameters.BasePlaneAxis  = Obj3dType.o3d_planeYOZ;
            _figureParameters.BasePlanePoint = new KompasPoint2D(basePoint, basePoint);

            _kompasApp = kompasApp;

            Extrusion = CreateMuffler(_figureParameters, basePlane);
            if (Extrusion == null)
            {
                return;
            }
        }
コード例 #7
0
ファイル: Muffler.cs プロジェクト: alheym/screw_orsapr
        /// <summary>
        /// Удалить глушитель из 3D детали документа
        /// </summary>
        public bool DeleteDetail()
        {
            Extrusion.BaseFaceAreaState = KompasFaces.BaseFaceAreaState.BaseFaceAreaLower;
            var extruded = Extrusion.ExtrudedEntity;

            var extrusionParameters = new KompasExtrusionParameters
                                      (
                _figureParameters.Document3DPart,
                Obj3dType.o3d_cutExtrusion,
                extruded, _figureParameters.Direction,
                _kompasApp.Parameters[4] / 4.0
                                      );
            var mufflerDeletion = new KompasExtrusion(extrusionParameters,
                                                      ExtrusionType.ByEntity);

            return(true);
        }
コード例 #8
0
        /// <summary>
        /// Create cutoff for flathead screwdriver
        /// </summary>
        /// <returns>Created entity of cutoff</returns>
        protected ksEntity CreateCutout(double[] parameters)
        {
            var offsetX = parameters[0];
            var offsetY = parameters[1];

            var width  = parameters[2];
            var height = parameters[3];

            var gost = 0.84;

            var rectangleSketch = new KompasSketch(_kompasApp.ScrewPart,
                                                   Obj3dType.o3d_planeYOZ);
            var rectangleSketchEdit = rectangleSketch.BeginEntityEdit();
            var rectanglePoint      = new KompasPoint2D(offsetX, offsetY);

            var rectangleParam = new RectangleParameter(_kompasApp,
                                                        width, height, rectanglePoint);

            if (rectangleSketchEdit.ksRectangle(rectangleParam.FigureParam, 0) == 0)
            {
                LastErrorCode = ErrorCodes.Document2DRegPolyCreateError;
                return(null);
            }

            rectangleSketch.EndEntityEdit();

            var extrusionParameters = new KompasExtrusionParameters
                                      (
                _kompasApp.ScrewPart,
                Obj3dType.o3d_cutExtrusion,
                rectangleSketch.Entity,
                Direction_Type.dtNormal,
                _kompasApp.Parameters[1] * gost
                                      );

            var rectangleExtrusion = new KompasExtrusion(
                extrusionParameters,
                ExtrusionType.ByEntity);

            return(rectangleExtrusion.ExtrudedEntity);
        }