/// <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> /// Draws the word "XYZ" on plane. /// Эта функция используется для отладки других функций /// которые работают с эскизами. /// </summary> /// <param name="_doc3DPart">Kompas part of 3D document</param> /// <param name="plane">Selected plane</param> public static void DrawXyzOnPlane(ksPart _doc3DPart, ksEntity plane) { var xyz = new KompasSketch(_doc3DPart, plane); var xyzEdit = xyz.BeginEntityEdit(); xyzEdit.ksLineSeg(0, 0, -5, -10, 1); xyzEdit.ksLineSeg(0, -10, -5, 0, 1); xyzEdit.ksLineSeg(-7, 0, -13, -10, 1); xyzEdit.ksLineSeg(-7, -10, -10, -5, 1); xyzEdit.ksLineSeg(-15, -10, -20, -10, 1); xyzEdit.ksLineSeg(-20, -10, -15, 0, 1); xyzEdit.ksLineSeg(-15, 0, -20, 0, 1); xyz.EndEntityEdit(); }
/// <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> /// Draws the word "XYZ" on plane. /// Эта функция используется для отладки других функций /// которые работают с эскизами. /// </summary> /// <param name="_doc3DPart">Kompas part of 3D document</param> /// <param name="plane">Selected plane</param> public static void DrawXyzOnPlane(ksPart _doc3DPart, ksEntity plane) { var xyz = new KompasSketch(_doc3DPart, plane); var xyzEdit = xyz.BeginEntityEdit(); // Draw X xyzEdit.ksLineSeg(0, 0, -5, -10, 1); // "/" xyzEdit.ksLineSeg(0, -10, -5, 0, 1); // "\" // Draw Y xyzEdit.ksLineSeg(-7, 0, -13, -10, 1); // "/" xyzEdit.ksLineSeg(-7, -10, -10, -5, 1); // верхняя половина "\" // Draw Z xyzEdit.ksLineSeg(-15, -10, -20, -10, 1); // верх "--" xyzEdit.ksLineSeg(-20, -10, -15, 0, 1); // "/" xyzEdit.ksLineSeg(-15, 0, -20, 0, 1); // низ "--" xyz.EndEntityEdit(); }