Пример #1
0
        /// <summary>
        /// Функция поиска центра текста
        /// </summary>
        /// <param name="dbt">Текст</param>
        /// <returns>Центральная точка</returns>
        Point3d GetCenter(DBText dbt)
        {
            Point3d location = Point3d.Origin;


            Point3d tl, br;

            Extents3d?nex = dbt.Bounds;

            if (!nex.HasValue)
            {
                Messaging.Alert("Не удалось прочитать границы текста");
                return(location);
            }

            tl = nex.Value.MinPoint;
            br = nex.Value.MaxPoint;

            double X = tl.X * 0.5 + br.X * 0.5;
            double Y = tl.Y * 0.5 + br.Y * 0.5;

            location = new Point3d(X, Y, 0);

            return(location);
        }
Пример #2
0
        /// <summary>
        /// Функция поиска центра текста
        /// </summary>
        /// <param name="mt">Мультитекст</param>
        /// <returns>Центральная точка</returns>
        Point3d GetCenter(MText mt)
        {
            Point3d location = Point3d.Origin;

            Point3dCollection points = mt.GetBoundingPoints();

            Point3d tl, br;

            try
            {
                tl = points[0];
                br = points[3];
            }
            catch (System.Exception ex)
            {
                Messaging.Alert("Не удалось прочитать границы текста\n\n" + ex);
                return(location);
            }

            double X = tl.X * 0.5 + br.X * 0.5;
            double Y = tl.Y * 0.5 + br.Y * 0.5;

            location = new Point3d(X, Y, 0);


            return(location);
        }
Пример #3
0
        void Button1Click(object sender, EventArgs e)
        {
            /*
             * string result="Таки ви что-то нажали!";
             *
             * string code = richTextBox1.Text; //обязательно нужно прописать функцию string Execute() чтобы код ниже что-то возвратил
             *
             * try
             * {
             *      dynamic scr = CSScript.LoadCode(code).CreateObject("*");
             *      //внимательно! есть метод LoadMethod где не нужно прописывать класс.
             *      //Здесь же в скрипте надо создать класс и в нем описать методы
             *
             *      result= scr.Execute();
             * }
             * catch(Exception ex)
             * {
             *      result = ex.ToString();
             * }
             *
             * Messaging.Alert(result);*/

            string result = "";

            string code_core = richTextBox1.Text;

            string code = @"
using System;
using PKUserTools.Commands;
using PKUserTools.Utilities;

public class My
{
     public string Execute()
         {
"
                          + code_core
                          + @"}}";

            //таким образом автоматизируем шаблон, в котором не нужно прописывать классы

            try
            {
                dynamic scr = CSScript.LoadCode(code, "PKUserTools.dll").CreateObject("*");

                result = scr.Execute();
            }
            catch (Exception ex)
            {
                result = ex.ToString();
            }

            Messaging.Alert(result);
        }