Zobrazení symbolu motoru pro sestavení technologických schémat. Přístroj umožňuje animaci rotace ve dvou směrech otáčení.
engine engine_name;
rem = string;
bubble = string;
timer = timer_name;
owner = owner_name;
position = integer, integer, integer, integer;
win_disable = [identifier, . . . ];
win_title = string;
access = integer;
tab_select = integer;
send_same_data;
expression = boolean_expression;
blink = boolean_expression;
blink_rate = identifier;
mode = identifier;
step = integer;
colors
border_paper = color;
run = color;
end_colors;
blink_colors
border_paper = color;
run = color;
end_blink_colors;
end_engine;
Implicitní tvar přístroje:

Implicitně jsou nastaveny parametry:
position = 0, 0, 25, 25; access = 4294967295; tab_select = 4294967295; mode = rotate_left; step = 30;
Příklad nastavení parametrů přístroje engine:
engine id_1;
timer = time_step;
owner = panel_1;
position = 57, 264, 51, 51;
expression = is_rotating;
step = 15;
end_engine;
SetValue( Value : boolean )Zápis nové hodnoty do přístroje včetně případného nastavení výstupního datového elementu.
MoveTo( x, y : real )Posunutí přístroje na pozici x, y. Velikosti hodnot x a y jsou v bodech obrazovky.
Show()Zobrazení skrytého přístroje.
Hide()Skrytí viditelného přístroje
SetMode( mode : real )Nastavení nového módu.
Reverse()Změna směru otáčení.
Blink( BlinkingActive : boolean )Zapnutí a vypnutí blikání. Voláním procedury Blink s parametrem BlinkingActive nastaveným na true začne přístroj blikat (tj. střídavě se překreslovat s použitím barevných sad colors a blink_colors). Blikání je možno zastavit voláním procedury Blink s parametrem BlinkingActive nastaveném na hodnotu false. Frekvence blikání je dána parametrem přístroje blink_rate.
ToggleBlink()Přepnutí vzhledu přístroje do alternativní sady barev, tedy z colors do blink_colors nebo naopak podle okamžitého stavu. Po zastavení blikání se přístroj vždy vrátí do standardní barevné sady bez ohledu na předchozí volání procedury ToggleBlink.
Přístroj může volat standardní událostní procedury:
OnActivate() OnMouseDown( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean ) OnMouseDoubleClick( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean ) OnMouseUp( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean ) OnMouseMove( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean ) OnKeyDown( Character : cardinal ) OnKeyRepeat( Character : cardinal ) OnKeyUp( Character : cardinal ) OnSelect() OnDeselect() OnShow() OnHide() OnNewPosition( RectX, RectY, RectW, RectD : integer ) OnWindowMinimize() OnWindowMaximize() OnWindowRestore( WasMinimized, WasMaximized : boolean ) OnWindowClose()
OnOutput( Output : boolean )Procedura je zavolána po každém vyhodnocení logického výrazu před každým případným zápisem do výstupního datového elementu. V proměnné Output je hodnota, která bude přístrojem zobrazena a která bude případně po dokončení procedury zapsána do výstupního datového elementu. Toto hodnotu je možno v proceduře změnit.