Редактор векторной графики "КАСКАД"



МАКРОСЫ

Макросы (макрокоманды) предназначены для решения двух задач:

  1. Геометрические построения и автоматизация рутинных операций на этапе разработки чертежа;
  2. Создание интерактивности в момент просмотра чертежа;

В качестве макроязыка используется язык "ЛУА".

Из сборки System.Drawing в него уже импортированы типы:
  Color
  PointF
  RectangleF
  SizeF
  Font

Таким образом в lua-коде можно сразу писать, что-то вроде: center = PointF(50, 100);

Из сборки ksCAD импортированы типы (объектная модель библиотеки ksCAD.dll):
  Draft
  Layer
  BlockSpecification
  ParameterizedBlockSpecification
  Entity

  Pline
  Line
  Curve
  Bezier
  Polygon
  Circle
  RegularPolygon
  ksRectangle
  Ellipse
  Arc
  Pie
  Image
  String
  String2
  MultiText
  Block
  ParameterizedBlock

  Foreground
  PenForeground

  Background
  SolidBackground
  HatchBackground
  TextureBackground
  GradientBackground
  PathGradientBackground
  WindowBackground

  Property

Дополнительно определены следующие функции:
  public PointF RotatePoint(PointF point, PointF center, float angle)
  public PointF ScalePoint(PointF point, PointF center, float scale)
  public PointF MirrorPoint(PointF point, PointF point1, PointF point2)

Для доступа к редактируемому (просматриваемому) чертежу создается переменная draft (тип Draft). Для всех графических примитивов, имеющих ненулевой ID, объявляется соответствующая переменная, поэтому, если в чертеже имеется прямоугольник с ID = "RECT", то в lua-коде можно писать RECT.Width = 100 или RECT:Rotate(...). Если несколько графических примитивов имеют одинаковый ID - объявляется lua-массив соответствующего названия.

Если скрипт действует во время разработки чертежа в редакторе ksCADEditor.exe, ему доступны типы:
  Editor
  DraftEdit
и переменные:
  editor - графический редактор
  draftEdit - изображение редактируемого чертежа


Скрипты могут описывать и реакцию на некоторые события.

События времени редактирования:

Событие Описание Инфо
KeyPress Вызывается при нажатии клавиши. В обработчике для определения нажатой клавиши можно использовать значение переменной key.
MouseClick Вызывается при одинарном нажатии кнопки мыши. Положение курсора определяется переменными X и Y. Какая кнопка (левая, правая) - переменной Button.
MouseDoubleClick Вызывается при двойном нажатии кнопки мыши. Аналогично MouseClick

События времени просмотра:

Событие Описание Инфо
OnLoad Используется для начальной инициализации переменных при открытии чертежа.  
KeyPress Вызывается при нажатии клавиши. В обработчике для определения нажатой клавиши можно использовать значение переменной key.
MouseClick Вызывается при одинарном нажатии кнопки мыши. Положение курсора определяется переменными X и Y. Какая кнопка (левая, правая) - переменной Button.
MouseDoubleClick Вызывается при двойном нажатии кнопки мыши. Аналогично MouseClick
MouseEnter Вызывается при наезде указателя мыши на графический примитив. Графический примитив можно определить через переменную entity.
MouseLeave Вызывается при съезде указателя мыши с графического примитива. Аналогично MouseEnter
OnTimer Периодический вызов по таймеру.  

Обработчики времени просмотра могут быть написаны и на C#.


Вернуться назад