Пример #1
0
        private void PrintPar1(ksTextLineParam par2, ksTextItemParam par3, ksDynamicArray arr2)
        {
            string buf = string.Empty;

            buf = string.Format("style = {0}", par2.style);
            kompas.ksMessage(buf);

            int count = arr2.ksGetArrayCount();

            for (int j = 0; j < count; j++)
            {
                arr2.ksGetArrayItem(j, par3);
                ksTextItemFont font = (ksTextItemFont)par3.GetItemFont();
                if (font != null)
                {
                    buf = string.Format("j = {0}, h = {1:.#}, s = {2} \n fontName = {3}",
                                        j, font.height,
                                        par3.s, font.fontName);
                    kompas.ksMessage(buf);
                }
            }
        }
Пример #2
0
        // Создать Bezier сплайн
        private void DrawBezier()
        {
            string buf = string.Empty;

            double[] x = new double[] { 0, 20, 50, 70, 100, 50 };
            double[] y = new double[] { 0, 20, 10, 20, 0, -50 };

            // построить Bezier сплайн
            doc.ksBezier(0, 1);
            for (int i = 0; i < 5; i++)
            {
                doc.ksPoint(x[i], y[i], 0);
            }
            reference p = doc.ksEndObj();

            // взять параметры Bezier сплайна
            ksMathPointParam pPar = (ksMathPointParam)kompas.GetParamStruct((short)StructType2DEnum.ko_MathPointParam);
            ksBezierParam    par  = (ksBezierParam)kompas.GetParamStruct((short)StructType2DEnum.ko_BezierParam);

            if ((pPar != null) && (par != null))
            {
                par.Init();
                ksDynamicArray arr = (ksDynamicArray)par.GetMathPointArr();
                if (arr != null)
                {
                    int t = doc.ksGetObjParam(p, par, ldefin2d.ALLPARAM);

                    int count = arr.ksGetArrayCount();
                    buf = string.Format("t = {0}, count = {1}, close = {2}, tl = {3}",
                                        t, count, par.closed, par.style);
                    kompas.ksMessage(buf);

                    for (int i = 0; i < count; i++)
                    {
                        arr.ksGetArrayItem(i, pPar);
                        buf = string.Format("x[{0}] = {1:##0.#}, y[{2}] = {3:##0.#}",
                                            i, pPar.x, i, pPar.y);
                        kompas.ksMessage(buf);
                    }

                    // заменить параметры Bezier сплайна
                    arr.ksClearArray();
                    // подставим свою память
                    for (int i = 0; i < 6; i++)
                    {
                        pPar.x = x[i];
                        pPar.y = y[i];
                        arr.ksAddArrayItem(-1, pPar);
                    }

                    par.style  = 2;
                    par.closed = 1;

                    if (doc.ksSetObjParam(p, par, ldefin2d.ALLPARAM) == 1)
                    {
                        kompas.ksMessage("Изменили объект");
                    }
                    else
                    {
                        kompas.ksMessageBoxResult();
                    }
                    arr.ksDeleteArray();
                }
            }
        }