/// <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; } }
/// <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; } }
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); }
/// <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; } }
/// <summary> /// Constructor of screw manager /// </summary> public ScrewManager(KompasApplication kompasApp) { if (kompasApp == null) { LastErrorCode = ErrorCodes.ArgumentNull; return; } _kompasApp = kompasApp; }
/// <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); }
/// <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); }
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(); }
public void TestDestructKompasApplication() { var parameters = new List <double>() { 27, 5, 25, 64, 10, 5 }; var app = new KompasApplication { Parameters = parameters }; app.CreateDocument3D(); app.DestructApp(); }
/// <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); }
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; } }
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()); }
/// <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; }
/// <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; }
/// <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; }
/// <summary> /// Regular Polygon builder. /// </summary> /// <param name="kompasApp">Kompas application object</param> public RegularPolygonScrewdriver(KompasApplication kompasApp) { _kompasApp = kompasApp; }
/// <summary> /// Flathead builder. /// </summary> /// <param name="kompasApp">Kompas application object</param> public FlatheadScrewdriver(KompasApplication kompasApp) { _kompasApp = kompasApp; }
/// <summary> /// Screwdriver builder. /// </summary> /// <param name="kompasApp">Kompas application object</param> public CrossheadScrewdriver(KompasApplication kompasApp) { _kompasApp = kompasApp; }