Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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();
        }
Esempio n. 3
0
        /// <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);
        }
Esempio n. 4
0
        /// <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();
        }