|
||
МАКРОСЫ
Макросы (макрокоманды) предназначены для решения двух задач:
В качестве макроязыка используется язык "ЛУА".
Из сборки 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#.