/// <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); }
/// <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> /// Удалить глушитель из 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); }
/// <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> /// Создать глушитель оси базовой плоскости /// </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); }
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; } }
/// <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); }
/// <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); }