/// <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); }
/// <summary> /// Create muffler in detail in base plane axis /// </summary> /// <param name="figureParameters">Parameters of muffler</param> /// <param name="basePlane">Base plane of muffler, by default is null</param> /// <returns>Muffler extrusion or null if extrusion returns error</returns> private KompasExtrusion CreateMuffler(MufflerParameters figureParameters, ksEntity basePlane = null) { // Muffler sketch var muffler = new KompasSketch(figureParameters.Document3DPart, figureParameters.BasePlaneAxis); // If base plane is set -- // -- create sketch of muffler on it // instead of base plane axis 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); } // Muffler rectangle, width and height are screw hat width 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(); // Muffler extrusion, height of muffler is nut height / 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); }
public void TestRectangleParameterNormal(ErrorCodes errorCode, double width, double height) { var appTest = new KompasApplicationTest(); var app = appTest.CreateKompasApplication(); var sketch = new KompasSketch(app.ScrewPart, Obj3dType.o3d_planeXOZ); var sketchEdit = sketch.BeginEntityEdit(); var rectangleParam = new RectangleParameter(app, width, height, new KompasPoint2D(0.0, 0.0)); sketchEdit.ksRectangle(rectangleParam.FigureParam); sketch.EndEntityEdit(); Assert.AreEqual(rectangleParam.LastErrorCode, errorCode); }
/// <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); }
/// <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); }
/// <summary> /// Создание шляпки винта с методом выдавливания /// </summary> /// <returns>Выдавленная шляпки винта для базовой части винта</returns> private ksEntity CreateHat() { // 0.1 Create muffler, which base point is (D / 5, D / 5) var basePoint = -(_kompasApp.Parameters[0] / 5.0); var mufflerParameters = new MufflerParameters { Document3DPart = _kompasApp.ScrewPart, Direction = Direction_Type.dtNormal, BasePlaneAxis = Obj3dType.o3d_planeYOZ, BasePlanePoint = new KompasPoint2D(basePoint, basePoint) }; var mufflerManager = new Muffler(_kompasApp, mufflerParameters); if (mufflerManager.LastErrorCode != ErrorCodes.OK) { LastErrorCode = mufflerManager.LastErrorCode; return(null); } var mufflerExtrusion = mufflerManager.Extrusion; if (mufflerExtrusion == null) { LastErrorCode = mufflerManager.LastErrorCode; return(null); } // 1.1 Create hat var screwHat = new KompasSketch(_kompasApp.ScrewPart, Obj3dType.o3d_planeYOZ); if (screwHat.LastErrorCode != ErrorCodes.OK) { LastErrorCode = screwHat.LastErrorCode; return(null); } var screwHatSketchEdit = screwHat.BeginEntityEdit(); if (screwHatSketchEdit == null) { LastErrorCode = screwHat.LastErrorCode; return(null); } var screwHatPoint = new KompasPoint2D(0, 0); if (screwHatSketchEdit.ksCircle(screwHatPoint.X, screwHatPoint.Y, _kompasApp.Parameters[0] / 2, 1) == 0) { LastErrorCode = ErrorCodes.Document2DCircleCreatingError; return(null); } screwHat.EndEntityEdit(); // 1.2 Screw base extrusion var extrusionParameters = new KompasExtrusionParameters(_kompasApp.ScrewPart, Obj3dType.o3d_baseExtrusion, screwHat.Entity, Direction_Type.dtReverse, _kompasApp.Parameters[4] * 0.84); var screwHatExtrusion = new KompasExtrusion(extrusionParameters, ExtrusionType.ByEntity); // H if (screwHatExtrusion.LastErrorCode != ErrorCodes.OK) { LastErrorCode = screwHatExtrusion.LastErrorCode; return(null); } screwHatExtrusion.BaseFaceAreaState = KompasFaces.BaseFaceAreaState.BaseFaceAreaLower; var extruded = screwHatExtrusion.ExtrudedEntity; if (extruded == null) { LastErrorCode = screwHatExtrusion.LastErrorCode; return(null); } // 0.2 Delete muffler if (!mufflerManager.DeleteDetail()) { LastErrorCode = mufflerManager.LastErrorCode; return(null); } //Create slot var rectangleSketch = new KompasSketch(_kompasApp.ScrewPart, Obj3dType.o3d_planeYOZ); if (rectangleSketch.LastErrorCode != ErrorCodes.OK) { LastErrorCode = rectangleSketch.LastErrorCode; return(null); } var rectangleSketchEdit = rectangleSketch.BeginEntityEdit(); if (rectangleSketchEdit == null) { LastErrorCode = rectangleSketch.LastErrorCode; return(null); } var rectanglePoint = new KompasPoint2D(-_kompasApp.Parameters[0], -_kompasApp.Parameters[5] / 2); var rectangleParam = new RectangleParameter(_kompasApp, _kompasApp.Parameters[0] * 2, _kompasApp.Parameters[5], rectanglePoint); if (rectangleSketchEdit.ksRectangle(rectangleParam.FigureParam, 0) == 0) { LastErrorCode = ErrorCodes.EntityDefinitionNull; return(null); } rectangleSketch.EndEntityEdit(); extrusionParameters = new KompasExtrusionParameters(_kompasApp.ScrewPart, Obj3dType.o3d_cutExtrusion, rectangleSketch.Entity, Direction_Type.dtNormal, _kompasApp.Parameters[1] * 0.84); var rectangleExtrusion = new KompasExtrusion(extrusionParameters, ExtrusionType.ByEntity); // m; выдавливание шлица методом вырезания на глубину m if (rectangleExtrusion.LastErrorCode != ErrorCodes.OK) { LastErrorCode = rectangleExtrusion.LastErrorCode; return(null); } return(extruded); }