Пример #1
0
        /// <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;
            }
        }
Пример #2
0
        /// <summary>
        /// Load Kompas 3D and set kompas object to controller
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void LoadCompas3D(object sender, EventArgs e)
        {
            if (LoadKompas3D.Enabled)
            {
                var errorCatcher = new ErrorCatcher();

                // Create Kompas application specimen
                _kompasApp = new KompasApplication();
                if (_kompasApp == null)
                {
                    errorCatcher.CatchError(ErrorCodes.KompasObjectCreatingError);
                }
                if (_kompasApp.LastErrorCode != ErrorCodes.OK)
                {
                    errorCatcher.CatchError(_kompasApp.LastErrorCode);
                    return;
                }

                SetAllInputsEnabledState(true);

                RunButton.Enabled = true;

                LoadKompas3D.Enabled  = false;
                CloseKompas3D.Enabled = true;
            }
        }
Пример #3
0
        public void CreateDetail(bool expected, params double[] parameters)
        {
            var figureParameters = new List <double>();

            for (int i = 0, length = parameters.Length; i < length; i++)
            {
                figureParameters.Add(parameters[i]);
            }

            var figureParametersValidator = new FigureParametersValidator(figureParameters);

            figureParametersValidator.Validate();

            var app = new KompasApplication
            {
                Parameters = figureParameters
            };

            app.CreateDocument3D();

            var manager = new BuildManager(app);
            var result  = manager.CreateDetail();

            Assert.AreEqual(result, expected);
        }
Пример #4
0
        /// <summary>
        /// Create rounded chamfer in regular polygon sketch by base sketch,
        /// regular polygon parameters and base plane coordinates in plane
        /// </summary>
        /// <param name="doc3D">Kompas document 3D</param>
        /// <param name="doc3DPart">Kompas document 3D part with detail</param>
        /// <param name="regPolySketch">Sketch of regular polygon</param>
        /// <param name="regPolyParam">An object with parameters of regular polygon</param>
        /// <param name="basePlanePoint">Base plane point of regular polygon</param>
        /// <param name="directionType">Direction type</param>
        /// <returns>Entity of rounded chamfer or null in case of error</returns>
        public RoundedChamfer(KompasApplication kompasApp, RoundedChamferParameters figureParameters)
        {
            if (kompasApp == null ||
                figureParameters.Document3DPart == null ||
                figureParameters.RegularPolygonSketch == null ||
                figureParameters.RegularPolygonParameters == null
                )
            {
                LastErrorCode = ErrorCodes.ArgumentNull;
                return;
            }

            // KompasApplication kompasApp, ksPart doc3DPart, ksEntity regPolySketch, RegularPolygonParameter regPolyParam, KompasPoint2D basePlanePoint, Direction_Type directionType

            _figureParameters = figureParameters;

            _kompasApp = kompasApp;

            if (!DoubleValidator.Validate(_figureParameters.BasePlanePoint.X) ||
                !DoubleValidator.Validate(_figureParameters.BasePlanePoint.Y)
                )
            {
                LastErrorCode = ErrorCodes.DoubleValueValidationError;
                return;
            }
        }
Пример #5
0
        /// <summary>
        /// Constructor of screw manager
        /// </summary>
        public ScrewManager(KompasApplication kompasApp)
        {
            if (kompasApp == null)
            {
                LastErrorCode = ErrorCodes.ArgumentNull;
                return;
            }

            _kompasApp = kompasApp;
        }
Пример #6
0
        /// <summary>
        /// Create kompas sketch with circle inside
        /// </summary>
        /// <param name="app">Kompas application</param>
        /// <returns>Kompas sketch with circle</returns>
        public ksEntity CreateSketchWithCirle(KompasApplication app, int circleRadius = 10)
        {
            var sketch     = new KompasSketch(app.ScrewPart, Obj3dType.o3d_planeXOY);
            var sketchEdit = sketch.BeginEntityEdit();

            sketchEdit.ksCircle(0.0, 0.0, circleRadius, 1);

            sketch.EndEntityEdit();

            return(sketch.Entity);
        }
Пример #7
0
        /// <summary>
        /// Create Kompas application for tests
        /// </summary>
        /// <returns>Kompas application</returns>
        public KompasApplication CreateKompasApplication()
        {
            var parameters = new List <double>()
            {
                85, 75, 125, 375, 50, 60
            };
            var app = new KompasApplication();

            app.Parameters = parameters;
            app.CreateDocument3D();

            return(app);
        }
Пример #8
0
        public void TestDestructKompasApplication()
        {
            var parameters = new List <double>()
            {
                85, 75, 125, 375, 50, 60
            };
            var app = new KompasApplication();

            app.Parameters = parameters;

            app.CreateDocument3D();

            app.DestructApp();
        }
Пример #9
0
        public void TestDestructKompasApplication()
        {
            var parameters = new List <double>()
            {
                27, 5, 25, 64, 10, 5
            };
            var app = new KompasApplication
            {
                Parameters = parameters
            };

            app.CreateDocument3D();

            app.DestructApp();
        }
Пример #10
0
        /// <summary>
        /// Создать Kompas application для теста
        /// </summary>
        /// <returns>Kompas application</returns>
        public KompasApplication CreateKompasApplication()
        {
            var parameters = new List <double>()
            {
                27, 5, 25, 64, 10, 5
            };
            var app = new KompasApplication
            {
                Parameters = parameters
            };

            app.CreateDocument3D();

            return(app);
        }
Пример #11
0
        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;
            }
        }
Пример #12
0
        public void TestConstructKompasApplication(ErrorCodes res, params double[] parameters)
        {
            var figureParameters = new List <double>();

            for (int i = 0, length = parameters.Length; i < length; i++)
            {
                figureParameters.Add(parameters[i]);
            }

            var app = new KompasApplication();

            app.Parameters = figureParameters;
            Assert.AreEqual(app.LastErrorCode, res);

            Assert.IsTrue(app.CreateDocument3D());
        }
Пример #13
0
        /// <summary>
        /// Get regular polygon param
        /// </summary>
        /// <param name="_kompas">Kompas object</param>
        /// <param name="anglesCount">Angles count</param>
        /// <param name="inscribedCircleRadius">Inscribed circle radius</param>
        /// <param name="point2D">Two-dimensional point of figure base</param>
        public RegularPolygonParameter(KompasApplication kompasApp, int anglesCount, double inscribedCircleRadius, KompasPoint2D point2D)
        {
            if (kompasApp == null)
            {
                LastErrorCode = ErrorCodes.ArgumentNull;
                return;
            }

            // Angles amount must be from 3 to 12
            if (anglesCount <= 2 ||
                anglesCount >= 13 ||
                !DoubleValidator.Validate(anglesCount) ||
                inscribedCircleRadius <= 0.0 ||
                !DoubleValidator.Validate(inscribedCircleRadius) ||
                !DoubleValidator.Validate(point2D.X) ||
                !DoubleValidator.Validate(point2D.Y)
                )
            {
                LastErrorCode = ErrorCodes.ArgumentInvalid;
                return;
            }

            // Regular polygon is base of hat
            ksRegularPolygonParam polyParam;

            polyParam = kompasApp.KompasObject.GetParamStruct((short)StructType2DEnum.ko_RegularPolygonParam);

            if (polyParam == null)
            {
                LastErrorCode = ErrorCodes.EntityDefinitionNull;
                return;
            }

            polyParam.count    = anglesCount;                                   // Count of angles
            polyParam.ang      = 0;                                             // Radius-vector angle from center to first top
            polyParam.describe = true;                                          // The polygon is DEscribed
            polyParam.radius   = inscribedCircleRadius;                         // INscribed circle radius, / W3 /
            polyParam.style    = 1;                                             // Line style
            polyParam.xc       = point2D.X; polyParam.yc = point2D.Y;           // Plane coordinates

            FigureParam = polyParam;
        }
Пример #14
0
        /// <summary>
        /// Get regular polygon param
        /// </summary>
        /// <param name="_kompas">Kompas object</param>
        /// <param name="anglesCount">Angles count</param>
        /// <param name="inscribedCircleRadius">Inscribed circle radius</param>
        /// <param name="point2D">Two-dimensional point of figure base</param>
        public RegularPolygonParameter(KompasApplication kompasApp, int anglesCount,
                                       double inscribedCircleRadius, KompasPoint2D point2D)
        {
            if (kompasApp == null)
            {
                LastErrorCode = ErrorCodes.ArgumentNull;
                return;
            }

            if (anglesCount <= 2 ||
                anglesCount >= 13 ||
                !DoubleValidator.Validate(anglesCount) ||
                inscribedCircleRadius <= 0.0 ||
                !DoubleValidator.Validate(inscribedCircleRadius) ||
                !DoubleValidator.Validate(point2D.X) ||
                !DoubleValidator.Validate(point2D.Y)
                )
            {
                LastErrorCode = ErrorCodes.ArgumentInvalid;
                return;
            }

            ksRegularPolygonParam polyParam;

            polyParam = kompasApp.KompasObject.GetParamStruct(
                (short)StructType2DEnum.ko_RegularPolygonParam);

            if (polyParam == null)
            {
                LastErrorCode = ErrorCodes.EntityDefinitionNull;
                return;
            }

            polyParam.count    = anglesCount;
            polyParam.ang      = 0;
            polyParam.describe = true;
            polyParam.radius   = inscribedCircleRadius;
            polyParam.style    = 1;
            polyParam.xc       = point2D.X; polyParam.yc = point2D.Y;

            FigureParam = polyParam;
        }
Пример #15
0
        /// <summary>
        /// Set rectangle param
        /// </summary>
        /// <param name="kompas">KompasObject</param>
        /// <param name="width">Rectangle width</param>
        /// <param name="height">Rectangle height</param>
        /// <param name="point2D">2D point of rectangle position on sketch</param>
        public RectangleParameter(KompasApplication kompasApp,
                                  double width, double height, KompasPoint2D point2D)
        {
            if (kompasApp == null ||
                point2D.LastErrorCode != ErrorCodes.OK
                )
            {
                LastErrorCode = ErrorCodes.ArgumentNull;
                return;
            }

            if (width <= 0.0 ||
                !DoubleValidator.Validate(width) ||
                height <= 0.0 ||
                !DoubleValidator.Validate(height) ||
                !DoubleValidator.Validate(point2D.X) ||
                !DoubleValidator.Validate(point2D.Y)
                )
            {
                LastErrorCode = ErrorCodes.ArgumentInvalid;
                return;
            }

            ksRectangleParam rectangleParam;

            rectangleParam = kompasApp.KompasObject.GetParamStruct(
                (short)StructType2DEnum.ko_RectangleParam);
            rectangleParam.width  = width;
            rectangleParam.height = height;
            rectangleParam.ang    = 0;
            rectangleParam.style  = 1;
            rectangleParam.x      = point2D.X;
            rectangleParam.y      = point2D.Y;

            if (rectangleParam == null)
            {
                LastErrorCode = ErrorCodes.EntityDefinitionNull;
                return;
            }
            FigureParam = rectangleParam;
        }
Пример #16
0
 /// <summary>
 ///  Regular Polygon builder.
 /// </summary>
 /// <param name="kompasApp">Kompas application object</param>
 public RegularPolygonScrewdriver(KompasApplication kompasApp)
 {
     _kompasApp = kompasApp;
 }
Пример #17
0
 /// <summary>
 /// Flathead builder.
 /// </summary>
 /// <param name="kompasApp">Kompas application object</param>
 public FlatheadScrewdriver(KompasApplication kompasApp)
 {
     _kompasApp = kompasApp;
 }
Пример #18
0
 /// <summary>
 /// Screwdriver builder.
 /// </summary>
 /// <param name="kompasApp">Kompas application object</param>
 public CrossheadScrewdriver(KompasApplication kompasApp)
 {
     _kompasApp = kompasApp;
 }