Routine Operations: Difference between revisions
mNo edit summary |
No edit summary |
||
(17 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
This page lists all of the routine operations available in Planimate as of | This page lists all of the routine operations available in Planimate as of 8.54.0. The operations all link to pages with their name but most of these pages will not exist. Where an operation warrants further discussion, these links can be followed and the pages created. | ||
''This page is automatically created. Please do not edit it.'' __NOEDITSECTION__ __TOC__ | ''This page is automatically created. Please do not edit it.'' __NOEDITSECTION__ __TOC__ | ||
== Arithmetic | == Arithmetic == | ||
=== Add | === Add === | ||
Add two values/rows/columns/tables | Add two values/rows/columns/tables | ||
'''[[Add|$R = $1 | '''[[Add|$R = Add($1,$2)]]''' | ||
$R = Result | $R = Result | ||
Line 15: | Line 15: | ||
$2 = Value 2 | $2 = Value 2 | ||
=== Clear | === Clear === | ||
Set the target value to its initialising value | Set the target value to its initialising value | ||
'''[[Clear|$R = CLEAR]]''' | '''[[Clear|$R = CLEAR]]''' | ||
Line 23: | Line 23: | ||
$R = Clear | $R = Clear | ||
=== Dec ( -= ) | === Dec ( -= ) === | ||
Decrement first value/row/column/table by second value | Decrement first value/row/column/table by second value | ||
'''[[Dec|$R -= $1]]''' | '''[[Dec|$R -= $1]]''' | ||
Line 32: | Line 32: | ||
$1 = Decr. by | $1 = Decr. by | ||
=== Div | === Div === | ||
Divide values/rows/columns/tables | Divide values/rows/columns/tables | ||
'''[[Div|$R = $1 | '''[[Div|$R = Div($1,$2)]]''' | ||
$R = Result | $R = Result | ||
Line 42: | Line 42: | ||
$2 = Value 2 | $2 = Value 2 | ||
=== Inc ( += ) | === Inc ( += ) === | ||
Increment first value/row/column/table by second value | Increment first value/row/column/table by second value | ||
'''[[Inc|$R += $1]]''' | '''[[Inc|$R += $1]]''' | ||
Line 51: | Line 51: | ||
$1 = Incr. by | $1 = Incr. by | ||
=== InterpolateValue | === InterpolateValue === | ||
Interpolates a value between value1 and value2 based on ratio (0.0 gives value1, 1.0 gives value2) | Interpolates a value between value1 and value2 based on ratio (0.0 gives value1, 1.0 gives value2) | ||
'''[[InterpolateValue|$R = InterpolateValue($1,$2,$3)]]''' | '''[[InterpolateValue|$R = InterpolateValue($1,$2,$3)]]''' | ||
Line 62: | Line 62: | ||
$3 = Ratio | $3 = Ratio | ||
=== Mul | === Mul === | ||
Multiply values/rows/columns/tables | Multiply values/rows/columns/tables | ||
'''[[Mul|$R = $1 | '''[[Mul|$R = Mul($1,$2)]]''' | ||
$R = Result | $R = Result | ||
Line 72: | Line 72: | ||
$2 = Value 2 | $2 = Value 2 | ||
=== | === RemapValue === | ||
Scale first value/row/column/table by second value | Remaps value through table with row range, To Row = 0 uses row count | ||
'''[[RemapValue|$R = RemapValue($1,$2,$3,$4,$5)]]''' | |||
$R = Result | |||
$1 = Map Table | |||
$2 = Value | |||
$3 = Map Column | |||
$4 = From Row | |||
$5 = To Row | |||
=== Scale ( *= ) === | |||
Scale first value/row/column/table by second value | |||
'''[[Scale|$R *= $1]]''' | '''[[Scale|$R *= $1]]''' | ||
Line 81: | Line 94: | ||
$1 = Scale by | $1 = Scale by | ||
=== Set ( = ) | === Set ( = ) === | ||
Assign a value/row/column/table to another of the same type and size | Assign a value/row/column/table to another of the same type and size | ||
'''[[Set|$R = $1]]''' | '''[[Set|$R = $1]]''' | ||
Line 90: | Line 103: | ||
$1 = Set To | $1 = Set To | ||
=== Sub | === Sub === | ||
Subtract two values/rows/columns/tables | Subtract two values/rows/columns/tables | ||
'''[[Sub|$R = $1 | '''[[Sub|$R = Sub($1,$2)]]''' | ||
$R = Result | $R = Result | ||
Line 100: | Line 113: | ||
$2 = Value 2 | $2 = Value 2 | ||
== Control | == Control == | ||
=== BREAKLOOP | === BREAKLOOP === | ||
Immediately exits an ITERATE loop | Immediately exits an ITERATE loop | ||
'''[[BREAKLOOP|BREAKLOOP]]''' | '''[[BREAKLOOP|BREAKLOOP]]''' | ||
=== CASE | === CASE === | ||
Tests a condition and if true, executes the code following until another CASE or DEFAULT is reached | Tests a condition and if true, executes the code following until another CASE or DEFAULT is reached | ||
'''[[CASE|CASE ($F)]]''' | '''[[CASE|CASE ($F)]]''' | ||
Line 117: | Line 130: | ||
$F = CASE | $F = CASE | ||
=== DEFAULT | === CONTINUE === | ||
Immediately processes the next iteration in a loop/while, skipping the rest of the code | |||
'''[[CONTINUE|CONTINUE]]''' | |||
=== DEFAULT === | |||
Marks code that should be executed if no CASES match in a SELECT block | Marks code that should be executed if no CASES match in a SELECT block | ||
'''[[DEFAULT|DEFAULT]]''' | '''[[DEFAULT|DEFAULT]]''' | ||
=== ELSE | === ELSE === | ||
Enables an alternate block of code to execute if an IF test fails to be true | Enables an alternate block of code to execute if an IF test fails to be true | ||
'''[[ELSE|ELSE]]''' | '''[[ELSE|ELSE]]''' | ||
=== ENDIF | === ENDIF === | ||
Marks the end of an IF block | Marks the end of an IF block | ||
'''[[ENDIF|ENDIF]]''' | '''[[ENDIF|ENDIF]]''' | ||
=== ENDLOOP | === ENDLOOP === | ||
Marks the end of an ITERATE block | Marks the end of an ITERATE block | ||
'''[[ENDLOOP|ENDLOOP]]''' | '''[[ENDLOOP|ENDLOOP]]''' | ||
=== ENDSELECT | === ENDSELECT === | ||
Marks the end of a SELECT block | Marks the end of a SELECT block | ||
'''[[ENDSELECT|ENDSELECT]]''' | '''[[ENDSELECT|ENDSELECT]]''' | ||
=== ENDWHILE | === ENDWHILE === | ||
Marks the end of a WHILE block | Marks the end of a WHILE block | ||
'''[[ENDWHILE|ENDWHILE]]''' | '''[[ENDWHILE|ENDWHILE]]''' | ||
=== IF | === IF === | ||
Executes lines following only if the condition is true | Executes lines following only if the condition is true | ||
'''[[IF|IF ($F)]]''' | '''[[IF|IF ($F)]]''' | ||
Line 167: | Line 187: | ||
$F = IF | $F = IF | ||
=== ITERATE | === ITERATE === | ||
Repeats a block of routine lines, incrementing an attribute over a range | Repeats a block of routine lines, incrementing an attribute over a range | ||
'''[[ITERATE|ITERATE $R | '''[[ITERATE|ITERATE ($R,$1,$2)]]''' | ||
$R = Index Using | $R = Index Using | ||
Line 177: | Line 197: | ||
$2 = Last Value | $2 = Last Value | ||
=== ITERATEROWS | === ITERATEROWS === | ||
Iterate Row Index over all the rows in the table | Iterate Row Index over all the rows in the table | ||
'''[[ITERATEROWS|ITERATEROWS $R | '''[[ITERATEROWS|ITERATEROWS ($R,$1)]]''' | ||
$R = Row Index | $R = Row Index | ||
$1 = Table | $1 = Table | ||
=== RETURN === | |||
Returns from the routine | |||
'''[[RETURN|RETURN]]''' | |||
=== REVERSEITERATE | === REVERSEITERATE === | ||
Iterate the result attribute over the given range in descending order | Iterate the result attribute over the given range in descending order | ||
'''[[REVERSEITERATE|REVERSEITERATE $R | '''[[REVERSEITERATE|REVERSEITERATE ($R,$1,$2)]]''' | ||
$R = Index Using | $R = Index Using | ||
Line 196: | Line 223: | ||
$2 = Last Value | $2 = Last Value | ||
=== SELECT | === SELECT === | ||
Starts a block where CASEs can be used to execute different code for conditions tested | Starts a block where CASEs can be used to execute different code for conditions tested | ||
'''[[SELECT|SELECT]]''' | '''[[SELECT|SELECT]]''' | ||
=== WHILE | === WHILE === | ||
Repeats a block of lines until the condition is false; the condition is tested first | Repeats a block of lines until the condition is false; the condition is tested first | ||
'''[[WHILE|WHILE ($F)]]''' | '''[[WHILE|WHILE ($F)]]''' | ||
Line 211: | Line 238: | ||
$F = WHILE | $F = WHILE | ||
== Display | == Display == | ||
=== Animate | === Animate === | ||
Animate a model object to a new screen position | Animate a model object to a new screen position | ||
'''[[Animate|Animate($1,$2,$3)]]''' | '''[[Animate|Animate($1,$2,$3)]]''' | ||
Line 223: | Line 250: | ||
$3 = Y Pos | $3 = Y Pos | ||
=== ChooseColor | === ChooseColor === | ||
Enables selection of a colour | |||
'''[[ChooseColor|$R = ChooseColor($1)]]''' | '''[[ChooseColor|$R = ChooseColor($1)]]''' | ||
$R = Selected Colour | |||
$1 = Initial Colour | |||
=== ChoosePaletteColor === | |||
Shows the colour palette selector dialog to select a given palette colour | |||
'''[[ChoosePaletteColor|$R = ChoosePaletteColor($1)]]''' | |||
$R = Result | $R = Result | ||
$1 = Selection Color | $1 = Selection Color | ||
=== ColorPaletteEntry | === ColorPaletteEntry === | ||
Returns the RGB color for a given color index in the Planimate color palette | Returns the RGB color for a given color index in the Planimate color palette | ||
'''[[ColorPaletteEntry|$R = ColorPaletteEntry($1)]]''' | '''[[ColorPaletteEntry|$R = ColorPaletteEntry($1)]]''' | ||
$R = Result | $R = Result | ||
$1 = Palette Index | $1 = Palette Index | ||
=== FitPanelToArea | === FitPanelToArea === | ||
Fits the panel to the area of its contents with a margin | Fits the panel to the area of its contents with a margin | ||
'''[[FitPanelToArea|FitPanelToArea($1,$2)]]''' | '''[[FitPanelToArea|FitPanelToArea($1,$2)]]''' | ||
Line 250: | Line 286: | ||
$2 = Margin | $2 = Margin | ||
=== ForceRepaint | === ForceRepaint === | ||
Repaints all windows; use with care, it can cause slowdown | Repaints all windows; use with care, it can cause slowdown | ||
'''[[ForceRepaint|ForceRepaint]]''' | '''[[ForceRepaint|ForceRepaint]]''' | ||
=== ForceRepaintPanel | === ForceRepaintPanel === | ||
Repaints the specified panel | Repaints the specified panel | ||
'''[[ForceRepaintPanel|ForceRepaintPanel($1)]]''' | '''[[ForceRepaintPanel|ForceRepaintPanel($1)]]''' | ||
Line 265: | Line 301: | ||
$1 = Panel | $1 = Panel | ||
=== | === GetPanelProperty === | ||
Read a property of a panel, specified using _panel_properties list | |||
Returns the RGB color for a given color in the Windows system color palette | '''[[GetPanelProperty|$R = GetPanelProperty($1,$2)]]''' | ||
$R = Result | |||
$1 = Panel | |||
$2 = Property Label | |||
=== GetSystemColorRGB === | |||
Returns the RGB color for a given color in the Windows system color palette | |||
'''[[GetSystemColorRGB|$R = GetSystemColorRGB($1)]]''' | '''[[GetSystemColorRGB|$R = GetSystemColorRGB($1)]]''' | ||
Line 274: | Line 320: | ||
$1 = Value | $1 = Value | ||
=== | === GetViewportScrollX === | ||
Get the x scroll of a viewport on a given panel | |||
'''[[ | '''[[GetViewportScrollX|$R = GetViewportScrollX($1,$2)]]''' | ||
$R = | $R = Result | ||
$1 = | $1 = Panel With Viewport | ||
$2 = Panel | $2 = Panel Inside Viewport | ||
=== | === GetViewportScrollY === | ||
Read the width of a graph view for a table on the given panel | Get the y scroll of a viewport on a given panel | ||
'''[[GetViewportScrollY|$R = GetViewportScrollY($1,$2)]]''' | |||
$R = Result | |||
$1 = Panel With Viewport | |||
$2 = Panel Inside Viewport | |||
=== GetViewportZoom === | |||
Get the zoom factor of a viewport on a given panel | |||
'''[[GetViewportZoom|$R = GetViewportZoom($1,$2)]]''' | |||
$R = Result | |||
$1 = Panel With Viewport | |||
$2 = Panel Inside Viewport | |||
=== GraphXOffset === | |||
Read the offset of a graph view for a table on the given panel | |||
'''[[GraphXOffset|$R = GraphXOffset($1,$2)]]''' | |||
$R = Target | |||
$1 = Table | |||
$2 = Panel | |||
=== GraphXWidth === | |||
Read the width of a graph view for a table on the given panel | |||
'''[[GraphXWidth|$R = GraphXWidth($1,$2)]]''' | '''[[GraphXWidth|$R = GraphXWidth($1,$2)]]''' | ||
Line 294: | Line 370: | ||
$2 = Panel | $2 = Panel | ||
=== HidePanel | === HidePanel === | ||
Hides any popup for the given panel | Hides any popup for the given panel | ||
'''[[HidePanel|HidePanel($1)]]''' | '''[[HidePanel|HidePanel($1)]]''' | ||
Line 302: | Line 378: | ||
$1 = Target Panel | $1 = Target Panel | ||
=== HideTableEditor | === HideTableEditor === | ||
Close any open table editor for the given table | Close any open table editor for the given table | ||
'''[[HideTableEditor|HideTableEditor($1)]]''' | '''[[HideTableEditor|HideTableEditor($1)]]''' | ||
Line 310: | Line 386: | ||
$1 = Table | $1 = Table | ||
=== MakeVisible | === MakeVisible === | ||
Makes the specified panel the active panel on the main window | Makes the specified panel the active panel on the main window | ||
'''[[MakeVisible|MakeVisible($1)]]''' | '''[[MakeVisible|MakeVisible($1)]]''' | ||
Line 318: | Line 394: | ||
$1 = Target Subsystem | $1 = Target Subsystem | ||
=== PanelWindowLeft | === PanelWindowLeft === | ||
Returns the left window co-ordinate of a popup panel | Returns the left window co-ordinate of a popup panel | ||
'''[[PanelWindowLeft|$R = PanelWindowLeft($1)]]''' | '''[[PanelWindowLeft|$R = PanelWindowLeft($1)]]''' | ||
Line 327: | Line 403: | ||
$1 = Panel | $1 = Panel | ||
=== PanelWindowTop | === PanelWindowTop === | ||
Returns the top window co-ordinate of a popup panel | Returns the top window co-ordinate of a popup panel | ||
'''[[PanelWindowTop|$R = PanelWindowTop($1)]]''' | '''[[PanelWindowTop|$R = PanelWindowTop($1)]]''' | ||
Line 336: | Line 412: | ||
$1 = Panel | $1 = Panel | ||
=== PrintPanel | === PrintPanel === | ||
Queues the nominated panel for printing; additional panels can be printed by intercepting the _Panel Printed broadcast | Queues the nominated panel for printing; additional panels can be printed by intercepting the _Panel Printed broadcast | ||
'''[[PrintPanel|PrintPanel($1)]]''' | '''[[PrintPanel|PrintPanel($1)]]''' | ||
Line 344: | Line 420: | ||
$1 = Target Subsystem | $1 = Target Subsystem | ||
=== RepaintObjects | === ReFitPopup === | ||
Resize an already open popup to panel's changed size | |||
'''[[ReFitPopup|ReFitPopup($1)]]''' | |||
$1 = Panel | |||
=== RepaintObjects === | |||
Initiates a repaint of dynamic object icons and the animation layer only; faster than a full force repaint and intended for animation. 'Panel' can be used to specify a viewport etc, if zero the current panel is used. If 'SpeedRegulate' is non zero, checks are performed to prevent successive repaints occurring faster than about 60 frames a second. | |||
'''[[RepaintObjects|RepaintObjects]]''' | '''[[RepaintObjects|RepaintObjects($1,$2)]]''' | ||
$1 = Panel | |||
$2 = SpeedRegulate | |||
=== | === RepaintView === | ||
Sets text in the status bar activity area | Repaints contents of a view | ||
'''[[RepaintView|RepaintView($1,$2,$3,$4)]]''' | |||
$1 = Table | |||
$2 = Panel | |||
$3 = View Type | |||
$4 = Index | |||
=== SetActivityString === | |||
Sets text in the status bar activity area | |||
'''[[SetActivityString|SetActivityString($1)]]''' | '''[[SetActivityString|SetActivityString($1)]]''' | ||
Line 359: | Line 456: | ||
$1 = Activity Text | $1 = Activity Text | ||
=== SetColorPaletteEntry | === SetColorPaletteEntry === | ||
Sets the RGB color for a given color in the Planimate color palette | Sets the RGB color for a given color in the Planimate color palette | ||
'''[[SetColorPaletteEntry|SetColorPaletteEntry($1,$2)]]''' | '''[[SetColorPaletteEntry|SetColorPaletteEntry($1,$2)]]''' | ||
$1 = Palette Index | $1 = Palette Index | ||
$2 = RGB Value | $2 = RGB Value | ||
=== SetGraphXOffset | === SetGraphXOffset === | ||
Set the offset of a graph view for a table on the given panel | Set the offset of a graph view for a table on the given panel | ||
'''[[SetGraphXOffset|SetGraphXOffset($1,$2,$3)]]''' | '''[[SetGraphXOffset|SetGraphXOffset($1,$2,$3)]]''' | ||
Line 378: | Line 475: | ||
$3 = Value | $3 = Value | ||
=== SetGraphXWidth | === SetGraphXWidth === | ||
Set the width of a graph view for a table on the given panel | Set the width of a graph view for a table on the given panel | ||
'''[[SetGraphXWidth|SetGraphXWidth($1,$2,$3)]]''' | '''[[SetGraphXWidth|SetGraphXWidth($1,$2,$3)]]''' | ||
Line 388: | Line 485: | ||
$3 = Value | $3 = Value | ||
=== | === SetIconRemote === | ||
Set icon for an item somewhere else in the model. Location can be a portal or object id containing the item. If its 0 the entire model is searched, this is potentially very slow. Icon Name should not include any extention, PL will search DBs for it. | |||
'''[[SetPanelColor|SetPanelColor($1,$2)]]''' | '''[[SetIconRemote|SetIconRemote($1,$2,$3)]]''' | ||
$1 = Item ID | |||
$2 = Location | |||
$3 = Icon Name | |||
=== SetObjectPos === | |||
Sets the position and scaling of a dynamic object in one operation. The position is the centre of the object and the scaling is a percentage which should normally be 100 for no scaling. | |||
'''[[SetObjectPos|SetObjectPos($1,$2,$3,$4,$5)]]''' | |||
$1 = Object | |||
$2 = X Pos | |||
$3 = Y Pos | |||
$4 = X Scale | |||
$5 = Y Scale | |||
=== SetPanelColor === | |||
Sets the background color of a panel | |||
'''[[SetPanelColor|SetPanelColor($1,$2)]]''' | |||
$1 = Panel | $1 = Panel | ||
$2 = Color | $2 = Color | ||
=== | === SetPanelProperty === | ||
Enables the use of transparency for a panel, value 0..254 or 255 to disable transparency | Set a property of a panel, specified using _panel_properties list | ||
'''[[SetPanelProperty|SetPanelProperty($1,$2,$3)]]''' | |||
$1 = Panel | |||
$2 = Property Label | |||
$3 = Value | |||
=== SetPanelTransparency === | |||
Enables the use of transparency for a panel, value 0..254 or 255 to disable transparency | |||
'''[[SetPanelTransparency|SetPanelTransparency($1,$2)]]''' | '''[[SetPanelTransparency|SetPanelTransparency($1,$2)]]''' | ||
Line 406: | Line 535: | ||
$2 = Transparency | $2 = Transparency | ||
=== | === SetPortalIcon === | ||
Sets icon for portal's current state. | |||
'''[[SetPortalIcon|SetPortalIcon($1,$2)]]''' | |||
$1 = Portal ID | |||
$2 = Icon Name | |||
=== SetPortalTip === | |||
Sets the text in the status bar area where item class names are displayed during editing | Sets tip text for Portal to Text | ||
'''[[SetPortalTip|SetPortalTip($1,$2)]]''' | |||
$1 = Portal ID | |||
$2 = Text | |||
=== SetStatusItemAreaString === | |||
Sets the text in the status bar area where item class names are displayed during editing | |||
'''[[SetStatusItemAreaString|SetStatusItemAreaString($1)]]''' | '''[[SetStatusItemAreaString|SetStatusItemAreaString($1)]]''' | ||
Line 414: | Line 561: | ||
$1 = Item Area Text | $1 = Item Area Text | ||
=== SetViewportScroll | === SetViewportScroll === | ||
Set the x and y scroll of a viewport on a given panel | Set the x and y scroll of a viewport on a given panel | ||
'''[[SetViewportScroll|SetViewportScroll($R,$1,$2,$3)]]''' | '''[[SetViewportScroll|SetViewportScroll($R,$1,$2,$3)]]''' | ||
$R = Panel With Viewport | $R = Panel With Viewport | ||
$1 = Panel Inside Viewport | $1 = Panel Inside Viewport | ||
$2 = X Offset | $2 = X Offset | ||
$3 = Y Offset | $3 = Y Offset | ||
=== SetViewportTarget | === SetViewportTarget === | ||
Set the target of a viewport. Current Panel identifies the viewport and can be zero of the containing panel only has 1 viewport. New Panel sets the new panel to display, 0 makes the viewport hidden in user mode. | Set the target of a viewport. Current Panel identifies the viewport and can be zero of the containing panel only has 1 viewport. New Panel sets the new panel to display, 0 makes the viewport hidden in user mode. | ||
'''[[SetViewportTarget|SetViewportTarget($1,$2,$3)]]''' | '''[[SetViewportTarget|SetViewportTarget($1,$2,$3)]]''' | ||
$1 = Panel With Viewport | $1 = Panel With Viewport | ||
$2 = Current Panel Inside Viewport | $2 = Current Panel Inside Viewport | ||
$3 = New Panel Inside Viewport | $3 = New Panel Inside Viewport | ||
=== SetViewportZoom | === SetViewportZoom === | ||
Set the zoom factor of a viewport on a given panel | Set the zoom factor of a viewport on a given panel | ||
'''[[SetViewportZoom|SetViewportZoom($R,$1,$2)]]''' | '''[[SetViewportZoom|SetViewportZoom($R,$1,$2)]]''' | ||
$R = Panel With Viewport | $R = Panel With Viewport | ||
$1 = Panel Inside Viewport | $1 = Panel Inside Viewport | ||
$2 = Zoom Value | $2 = Zoom Value | ||
=== | === SetWindowTitle === | ||
Sets the title of the main window | |||
'''[[ | '''[[SetWindowTitle|SetWindowTitle($1)]]''' | ||
$1 = Target Panel | $1 = Title Text | ||
=== ShowAboutBox === | |||
Shows the Planimate about box | |||
'''[[ShowAboutBox|ShowAboutBox()]]''' | |||
=== ShowPopupPanel === | |||
Opens the given panel in a separate window at the specified window co-ordinates | |||
'''[[ShowPopupPanel|ShowPopupPanel($1,$2,$3)]]''' | |||
$1 = Target Panel | |||
$2 = X Position | $2 = X Position | ||
$3 = Y Position | $3 = Y Position | ||
=== ShowTableEditor | === ShowTableEditor === | ||
Open table editor for the given table | Open table editor for the given table | ||
'''[[ShowTableEditor|ShowTableEditor($1)]]''' | '''[[ShowTableEditor|ShowTableEditor($1)]]''' | ||
Line 463: | Line 625: | ||
$1 = Table | $1 = Table | ||
=== SwapPopupPanel | === SwapPopupPanel === | ||
Swaps which panels are visible in a popup panel without closing/reopening it | Swaps which panels are visible in a popup panel without closing/reopening it | ||
'''[[SwapPopupPanel|SwapPopupPanel($1,$2)]]''' | '''[[SwapPopupPanel|SwapPopupPanel($1,$2)]]''' | ||
Line 472: | Line 634: | ||
$2 = Replace With | $2 = Replace With | ||
== | == File == | ||
=== | === AcquireFileLock === | ||
Returns zero if file lock acquired, otherwise if target is text its text is set to the lock failure reason | |||
'''[[ | '''[[AcquireFileLock|$R = AcquireFileLock($1,$2)]]''' | ||
$R = Result | $R = Result | ||
$1 = File | |||
$2 = New Lock Text | |||
=== | === CopyFile === | ||
Copies file | |||
'''[[ | '''[[CopyFile|$R = CopyFile($1,$2)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = From | ||
$2 = To | |||
=== | === CreateFolder === | ||
Create folder, if create path set then upper levels created as well | |||
'''[[ | '''[[CreateFolder|$R = CreateFolder($1,$2)]]''' | ||
$1 = | $R = Result | ||
$1 = File | |||
$2 = Create Path | |||
=== | === DeleteFile === | ||
Deletes file | |||
'''[[ | '''[[DeleteFile|$R = DeleteFile($1)]]''' | ||
$R = | $R = Result | ||
$1 = | $1 = File | ||
=== | === DeleteFolder === | ||
Deletes empty folder, if subfolders set then empty subfolders also deleted | |||
'''[[ | '''[[DeleteFolder|$R = DeleteFolder($1,$2)]]''' | ||
$R = | $R = Result | ||
$1 = | $1 = File | ||
$2 = Subfolders | |||
=== | === ExtractFileExtention === | ||
Extracts the file extention from a path/file spec. If Result is a label list attribute, and its value is 0 then a new label is added and Result gets assigned to the index, otherwise if its non zero the label indicated by the index is changed. If Result is text formatted, the text is set directly. | |||
'''[[ | '''[[ExtractFileExtention|$R = ExtractFileExtention($1)]]''' | ||
$R = | $R = Result | ||
$1 = | $1 = Path/File | ||
=== | === ExtractFileName === | ||
Extracts the file name from a full path/file spec. If Result is a label list attribute, and its value is 0 then a new label is added and Result gets assigned to the index, otherwise if its non zero the label indicated by the index is changed. If Result is text formatted, the text is set directly. | |||
'''[[ | '''[[ExtractFileName|$R = ExtractFileName($1)]]''' | ||
$R = | $R = Result | ||
$1 = | $1 = Path/File | ||
=== ExtractPathName === | |||
Extracts the file name from a full path/file spec. If Result is a label list attribute, and its value is 0 then a new label is added and Result gets assigned to the index, otherwise if its non zero the label indicated by the index is changed. If Result is text formatted, the text is set directly. | |||
'''[[ | '''[[ExtractPathName|$R = ExtractPathName($1)]]''' | ||
$R = | $R = Result | ||
$1 = Path/File | |||
=== | === FileColumns === | ||
Number of columns in file or -1. Supports TAB or comma delimited data. | |||
'''[[ | '''[[FileColumns|$R = FileColumns($1,$2)]]''' | ||
$1 = | $R = Result | ||
$1 = File | |||
$2 = Comma Delimit | |||
=== | === FileLines === | ||
Number of lines in file or -1 | |||
'''[[ | '''[[FileLines|$R = FileLines($1)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = File | ||
=== | === FilesInFolder === | ||
Reads a list of files in the path/folder and puts them into the target label list. The path can include a wildcard file name like c:\Data\*.txt | |||
'''[[ | '''[[FilesInFolder|$R = FilesInFolder($1)]]''' | ||
$R = | $R = Target List | ||
$1 = Path/Wildcard | |||
=== | === FilesInHierarchy === | ||
Retrieves the files in all folders starting at Path/File, placing the path names into the target label list. | |||
'''[[ | '''[[FilesInHierarchy|$R = FilesInHierarchy($1)]]''' | ||
$R = | $R = Target List | ||
$1 = Path/File | |||
=== | === FileSize === | ||
Returns size of file or -1 if not found | |||
'''[[ | '''[[FileSize|$R = FileSize($1)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = File | ||
=== | === PlaySound === | ||
Play windows sound file. Will extract WAV files from DB if required. | |||
'''[[ | '''[[PlaySound|PlaySound($1,$2)]]''' | ||
$ | $1 = Sound File | ||
$ | $2 = Wait Finish | ||
=== | === ReadFromFile === | ||
Reads the reference from file. Data can be a direct reference or a data object label. Options can be a combination of values from the _fileoptions label list. | |||
'''[[ | '''[[ReadFromFile|$R = ReadFromFile($1,$2,$3,$4,$5,$6,$7)]]''' | ||
$1 = | $R = Result | ||
$1 = File | |||
$2 = Data | |||
$3 = Options | |||
$4 = File Row | |||
$5 = File Column | |||
$6 = Row Limit | |||
$7 = Column Limit | |||
=== | === ReadViewFromFile === | ||
Reads file, following format of table view. The table reference can be direct or a data object. The options can be a combination of values from the _fileoptions label list. | |||
'''[[ | '''[[ReadViewFromFile|$R = ReadViewFromFile($1,$2,$3,$4,$5)]]''' | ||
$1 = | $R = Result | ||
$2 = | $1 = File | ||
$3 = | $2 = Table | ||
$3 = Panel | |||
$4 = View Index | |||
$5 = Options | |||
=== | === ReleaseFileLock === | ||
Returns zero if file lock is released (it must be yours to release) otherwise if target is text its text is set to the lock failure reason | |||
'''[[ | '''[[ReleaseFileLock|$R = ReleaseFileLock($1)]]''' | ||
$1 = | $R = Result | ||
$1 = File | |||
=== | === RenameFile === | ||
Renames file | |||
'''[[ | '''[[RenameFile|$R = RenameFile($1,$2)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = From | ||
$2 = | $2 = To | ||
=== | === RunCommand === | ||
Runs a new process or opens a file via the shell | |||
'''[[ | '''[[RunCommand|$R = RunCommand($1,$2,$3,$4,$5)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = Command | ||
$2 = Use shell | |||
$3 = Minimised | |||
$4 = Wait Complete | |||
$5 = Keep Front | |||
=== | === SaveImage === | ||
Saves the panel image to a file or to the clipboard if the file name is empty or “-”. A memory save creates/updates an icon in the icon cache that paint button states and object icons can use. | |||
'''[[ | '''[[SaveImage|$R = SaveImage($1,$2,$3)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = File | ||
$2 = | $2 = Panel | ||
$3 = | $3 = In-Memory | ||
=== | === WriteToFile === | ||
Writes the reference to file. Data can be a direct reference or a data object label. Options can be a combination of values from the _fileoptions label list. | |||
'''[[ | '''[[WriteToFile|$R = WriteToFile($1,$2,$3)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = File | ||
$2 = | $2 = Data | ||
$3 = Options | |||
=== | === WriteViewToFile === | ||
Writes table view to file. The table reference can be direct or a data object. The options can be a combination of values from the _fileoptions label list. | |||
'''[[ | '''[[WriteViewToFile|$R = WriteViewToFile($1,$2,$3,$4,$5)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = File | ||
$2 = Table | |||
$3 = Panel | |||
$4 = View Index | |||
$5 = Options | |||
== Label == | |||
=== | === AddLabelDialog === | ||
Show a dialog so the user can add a label to the given label list | |||
'''[[ | '''[[AddLabelDialog|AddLabelDialog($R)]]''' | ||
$R = Result | $R = Result | ||
=== | === AddSubLabel === | ||
Makes the new sublabel for the parent label $1 (if it doesn't exist) and returns its index as a sublabel | |||
'''[[ | '''[[AddSubLabel|AddSubLabel($R,$1)]]''' | ||
$R = Result | $R = Result | ||
$1 = Label | $1 = Label | ||
=== | === ClearLabelList === | ||
Removes all labels from a label list | |||
'''[[ | '''[[ClearLabelList|ClearLabelList($1)]]''' | ||
$1 = Clear Label List | |||
$1 = | |||
=== | === CreateLabelList === | ||
Creates a label list with the given name and formats the result attribute to reference it | |||
'''[[ | '''[[CreateLabelList|CreateLabelList($R,$1)]]''' | ||
$R = | $R = Format Result | ||
$1 = | $1 = List Name | ||
=== | === CreateLabelListFromColumn === | ||
Uses the provided column to provide text for creating a new label list | |||
'''[[ | '''[[CreateLabelListFromColumn|CreateLabelListFromColumn($R,$1)]]''' | ||
$R = Target List | $R = Target List | ||
$1 = | $1 = Source Column | ||
=== | === CreatePanelPortalLabel === | ||
Creates a panel label for the subsystem of the given portal object label | |||
'''[[ | '''[[CreatePanelPortalLabel|$R = CreatePanelPortalLabel($1)]]''' | ||
$R = | $R = New Panel Label | ||
$1 = | $1 = Portal Object Label | ||
=== | === CreateSubLabelList === | ||
Creates | Creates an empty sub label list of an existing label list and formats an attribute to reference it | ||
'''[[ | '''[[CreateSubLabelList|CreateSubLabelList($R,$1,$2)]]''' | ||
$R = Result | $R = Format Result | ||
$1 = | $1 = List Name | ||
$2 = | $2 = Parent List | ||
=== | === CreateSubsystemObjectLabel === | ||
Creates | Creates an object label for the portal owning the panel of this routine | ||
'''[[ | '''[[CreateSubsystemObjectLabel|$R = CreateSubsystemObjectLabel()]]''' | ||
$R = | $R = New Object Label | ||
=== | === DeleteLabel === | ||
Deletes the given label from its labellist | |||
'''[[ | '''[[DeleteLabel|DeleteLabel($1)]]''' | ||
$1 = Label | |||
$1 = | |||
=== | === GetLabelListProperty === | ||
Retrieves a property of a label list | |||
'''[[ | '''[[GetLabelListProperty|$R = GetLabelListProperty($1,$2)]]''' | ||
$R = | $R = Result | ||
$1 = | $1 = LabelList | ||
$2 = Property | |||
=== | === LabelCount === | ||
Returns how many labels in the given label list | |||
'''[[ | '''[[LabelCount|$R = LabelCount($1)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = Label Count | ||
=== | === MaxLabelIndex === | ||
Returns the highest allocated label index in the given label list | |||
'''[[ | '''[[MaxLabelIndex|$R = MaxLabelIndex()]]''' | ||
$R = Result | $R = Result | ||
=== | === MinLabelIndex === | ||
Returns the lowest allocated label index in the given label list | |||
'''[[ | '''[[MinLabelIndex|$R = MinLabelIndex()]]''' | ||
$R = | $R = Result | ||
=== | === NextLabelIndex === | ||
The next allocated label index for the list or -1 if none | |||
'''[[ | '''[[NextLabelIndex|$R = NextLabelIndex($1)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = Label Index | ||
=== | === PrevLabelIndex === | ||
The previous allocated label index for the list or -1 if none | |||
'''[[ | '''[[PrevLabelIndex|$R = PrevLabelIndex($1)]]''' | ||
$1 = | $R = Result | ||
$1 = Label Index | |||
=== | === RedirectLabelList === | ||
Globally changes all references to label list 'from' to point to list 'to'. Lists are referenced by name. | |||
'''[[ | '''[[RedirectLabelList|RedirectLabelList($1,$2)]]''' | ||
$ | $1 = From Name | ||
$2 = To Name | |||
=== | === ReIndexLabelList === | ||
Re-indexes all members in a label list so they have ascending and continuous index values | |||
'''[[ | '''[[ReIndexLabelList|ReIndexLabelList($1)]]''' | ||
$1 = Re-index Label List | |||
$1 = | |||
=== | === ReIndexLabels === | ||
Remaps labels in the given list using 2 columns of matching from and to values | |||
'''[[ | '''[[ReIndexLabels|ReIndexLabels($1,$2,$3)]]''' | ||
$1 = | $1 = Re-index List | ||
$2 = From Values (Col) | |||
$3 = To Values (Col) | |||
== | === RemoveSubLabel === | ||
Removes the sublabel as a member of the sublabel list | |||
'''[[RemoveSubLabel|RemoveSubLabel($1)]]''' | |||
'''[[ | |||
$ | $1 = Label | ||
=== | === SetLabelListProperty === | ||
Sets a property of a label list | |||
'''[[ | '''[[SetLabelListProperty|SetLabelListProperty($1,$2,$3)]]''' | ||
$ | $1 = LabelList | ||
$ | $2 = Property | ||
$ | $3 = Value | ||
=== | === TestLabelIndex === | ||
Tests whether an index has been used in a label list | |||
'''[[ | '''[[TestLabelIndex|$R = TestLabelIndex($1,$2)]]''' | ||
$R = Result | $R = Result | ||
$1 = Value | $1 = Index Value | ||
$2 = | $2 = Label List | ||
== Label String == | |||
=== | === AppendToLabel === | ||
Append text to an existing label. Result must be a label list formatted attribute. If its value is 0 then a new label is added and result gets assigned to the index, otherwise the label indicated by the index is changed. | |||
'''[[ | '''[[AppendToLabel|$R = AppendToLabel($1)]]''' | ||
$R = Result | $R = Result | ||
$ | $1 = Source | ||
=== | === CreateLabelAlias === | ||
Creates a label alias from 'Text' and adds it to the 'Target Label' which must be a label from a label list. Returns non zero if there was a problem creating the alias because 'Text' is already assigned to another label index. | |||
'''[[ | '''[[CreateLabelAlias|$R = CreateLabelAlias($1,$2)]]''' | ||
$R = Result | $R = Error Result | ||
$1 = | $1 = Text | ||
$2 = | $2 = Target Label | ||
=== | === CreateMD5Hash === | ||
Uses the 3 text sources to create an unpredictable hash string | |||
'''[[ | '''[[CreateMD5Hash|$R = CreateMD5Hash($1,$2,$3)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = Text | ||
$ | $2 = Salt 1 | ||
$3 = Salt 2 | |||
=== | === CropToCharacters === | ||
Crop a label to a subset of its text | |||
'''[[ | '''[[CropToCharacters|CropToCharacters($R,$1,$2)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = From Char | ||
$2 = | $2 = To Char | ||
=== | === ExtractIntoFormat === | ||
Extracts a substring from a formatted value/label and interprets it in the format of the target. If the target is a label list, it gets added as a label if its not already in that list. | |||
'''[[ | '''[[ExtractIntoFormat|$R = ExtractIntoFormat($1,$2,$3)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = Label | ||
$2 = | $2 = From Char | ||
$3 = To Char | |||
=== | === FileSHA === | ||
Creates 64 character checksum for file using SHA256. If text_file is 1 then the file is expected to be text and CR characters, if present, are ignored. | |||
'''[[ | '''[[FileSHA|$R = FileSHA($1,$2)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = File | ||
$2 = | $2 = TextFile | ||
=== | === FormatIntoLabel === | ||
Create a new label with the formatted text of the source | |||
'''[[ | '''[[FormatIntoLabel|FormatIntoLabel($R,$1)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = Source | ||
== | === FormatIntoLabelIndex === | ||
Creates a label from the text of source and using the provided index | |||
'''[[FormatIntoLabelIndex|$R = FormatIntoLabelIndex($1,$2)]]''' | |||
'''[[ | |||
$1 = | $R = Result | ||
$2 = | $1 = Source | ||
$2 = Index | |||
=== | === FormatNameIntoLabel === | ||
Creates a label from the name of the given object | |||
'''[[ | '''[[FormatNameIntoLabel|$R = FormatNameIntoLabel($1)]]''' | ||
$ | $R = Result | ||
$ | $1 = Source | ||
=== | === FormattedLabelIndex === | ||
Determines if the source text is a label and returns its index if it is | |||
'''[[ | '''[[FormattedLabelIndex|$R = FormattedLabelIndex($1)]]''' | ||
$ | $R = Result | ||
$ | $1 = Source | ||
=== | === FormattedWidth === | ||
Returns how many characters the referenced data has when it is formatted for display | |||
'''[[ | '''[[FormattedWidth|$R = FormattedWidth($1)]]''' | ||
$1 = | $R = Target | ||
$1 = Width Of | |||
=== | === FormatTitleIntoLabel === | ||
Creates a label from the title text of the given object | |||
'''[[ | '''[[FormatTitleIntoLabel|$R = FormatTitleIntoLabel($1)]]''' | ||
$ | $R = Result | ||
$ | $1 = Source | ||
=== | === GetAppDataName === | ||
Get a full Users/username/AppData/Roaming path/file including a subfolder and a filename. If Result is text, it is set on success and set empty on failure, otherwise the path is placed in s.LastAccessedDataFilePath and this returns non zero if the folder was created/verified writeable. | |||
'''[[ | '''[[GetAppDataName|$R = GetAppDataName($1,$2)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = Folder | ||
$2 = | $2 = Filename | ||
=== | === GetCharacter === | ||
Extracts a character from the formatted value provided and returns the ascii code | |||
'''[[ | '''[[GetCharacter|$R = GetCharacter($1,$2)]]''' | ||
$R = | $R = Target | ||
$1 = | $1 = String | ||
$2 = | $2 = Character | ||
== | === GetMyDocumentsName === | ||
Get a full Users/username/Documents path/file including a subfolder and a filename. If Result is text, it is set on success and set empty on failure, otherwise the path is placed in s.LastAccessedDataFilePath and this returns non zero if the folder was created/verified writeable. | |||
'''[[GetMyDocumentsName|$R = GetMyDocumentsName($1,$2)]]''' | |||
'''[[ | |||
$R = Result | $R = Result | ||
$1 = | $1 = Folder | ||
$2 = Filename | |||
=== | === GetProgramName === | ||
Get the folder containing the running Planimate EXE and append a filename. If Result is text, it is set to the path, otherwise the path is placed in s.LastAccessedDataFilePath and this returns non zero. | |||
'''[[ | '''[[GetProgramName|$R = GetProgramName($1)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = Filename | ||
=== | === GetSharedAppDataName === | ||
Get a full ProgramData/AppData/Roaming/file including a subfolder and a filename. If Result is text, it is set on success and set empty on failure, otherwise the path is placed in s.LastAccessedDataFilePath and this returns non zero if the folder was created/verified writeable. | |||
'''[[ | '''[[GetSharedAppDataName|$R = GetSharedAppDataName($1,$2)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = Folder | ||
$2 = | $2 = Filename | ||
=== | === LogMessage === | ||
Writes text to the debug logger window and the planimat.dbg file if either enabled. Text can be a text expression including attributes and labels as well as quoted text, combined with the & character. | |||
'''[[ | '''[[LogMessage|LogMessage($1)]]''' | ||
$ | $1 = Text | ||
=== | === RemapName === | ||
Uses the model ini file remapping to remap text, typically used for filenames. Multiple components can be combined with | separating them. | |||
'''[[ | '''[[RemapName|$R = RemapName($1)]]''' | ||
$R = Result | $R = Result | ||
$ | $1 = Source Text | ||
=== | === RemoveFileExtention === | ||
Crop label to remove trailing dot and text | |||
'''[[ | '''[[RemoveFileExtention|RemoveFileExtention($R)]]''' | ||
$R = Result | $R = Result | ||
=== | === RenameLabel === | ||
Change the text of a label. Result must be a label list formatted attribute. If its value is 0 then a new label is added and result gets assigned to the index, otherwise the label indicated by the index is changed. | |||
'''[[ | '''[[RenameLabel|$R = RenameLabel($1)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = Source | ||
=== | === RenameObject === | ||
Sets the display name of an object. The name may be adjusted if it is not unique on the panel for that kind of object. | |||
'''[[ | '''[[RenameObject|RenameObject($1,$2)]]''' | ||
$ | $1 = Object | ||
$ | $2 = New Name | ||
== | === SetFreeTextTitle === | ||
Sets title of free text editor dialog | |||
'''[[SetFreeTextTitle|SetFreeTextTitle($1)]]''' | |||
$1 = Title Text | |||
== Logical == | |||
=== | === BitAND === | ||
Treat values as integers and bitwise AND them (limited to 14 bits of precision) | |||
'''[[ | '''[[BitAND|$R = BitAND($1,$2)]]''' | ||
$1 = | $R = Result | ||
$2 = | $1 = Value 1 | ||
$2 = Value 2 | |||
=== | === BitOR === | ||
Treat values as integers and bitwise OR them (limited to 14 bits of precision) | |||
'''[[ | '''[[BitOR|$R = BitOR($1,$2)]]''' | ||
$1 = | $R = Result | ||
$1 = Value 1 | |||
$2 = Value 2 | |||
=== | === BitXOR === | ||
Treat values as integers and bitwise XORs them (limited to 14 bits of precision) | |||
'''[[ | '''[[BitXOR|$R = BitXOR($1,$2)]]''' | ||
$1 = | $R = Result | ||
$2 = | $1 = Value 1 | ||
$2 = Value 2 | |||
=== | === EQ ( == ) === | ||
Determines if 2 values are numerically close to each other | |||
'''[[ | '''[[EQ|$R = $1 == $2]]''' | ||
$1 = | $R = Result | ||
$2 = | $1 = Value 1 | ||
$2 = Value 2 | |||
=== | === GE ( >= ) === | ||
Determines if the first value is greater than or equal to the second | |||
'''[[ | '''[[GE|$R = $1 >= $2]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = Value 1 | ||
$2 = | $2 = Value 2 | ||
=== | === GT ( > ) === | ||
Determines if the first value is significantly greater than the second value | |||
'''[[ | '''[[GT|$R = $1 > $2]]''' | ||
$1 = | $R = Result | ||
$2 = | $1 = Value 1 | ||
$2 = Value 2 | |||
=== | === LE ( <= ) === | ||
Determines if the first value is less than or equal to the second | |||
'''[[ | '''[[LE|$R = $1 <= $2]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = Value 1 | ||
$2 = | $2 = Value 2 | ||
=== | === LT ( < ) === | ||
Determines if the first value is significantly less than the second value | |||
'''[[ | '''[[LT|$R = $1 < $2]]''' | ||
$1 = | $R = Result | ||
$2 = | $1 = Value 1 | ||
$2 = Value 2 | |||
=== | === NEQ ( != ) === | ||
Determines if 2 values are not numerically close to each otherclose to each other | |||
'''[[ | '''[[NEQ|$R = $1 != $2]]''' | ||
$1 = | $R = Result | ||
$2 = | $1 = Value 1 | ||
$2 = Value 2 | |||
== Message == | |||
=== | === Broadcast === | ||
Sends a broadcast to the entire model. Options can be 0 or a combination of values from the Broadcast Options label list. | |||
'''[[ | '''[[Broadcast|Broadcast($1,$2)]]''' | ||
$1 = | $1 = Broadcast Index | ||
$2 = | $2 = Broadcast Options | ||
=== | === BroadcastScoped === | ||
Sends a broadcast to a specified dynamic panel and all under it. Options can be 0 or a combination of values from the Broadcast Options label list. | |||
'''[[ | '''[[BroadcastScoped|BroadcastScoped($1,$2,$3)]]''' | ||
$1 = | $1 = Broadcast Index | ||
$2 = | $2 = Broadcast Options | ||
$3 = | $3 = Send To Subsystem | ||
=== | === BroadcastToPanel === | ||
Sends a broadcast to a specified dynamic panel. Options can be 0 or a combination of values from the Broadcast Options label list. | |||
'''[[ | '''[[BroadcastToPanel|BroadcastToPanel($1,$2,$3)]]''' | ||
$1 = | $1 = Broadcast Index | ||
$2 = | $2 = Broadcast Options | ||
$3 = | $3 = Send To Subsystem | ||
=== | === ImmediateMessage === | ||
Send a message whilst the item waits at the change object | |||
'''[[ | '''[[ImmediateMessage|ImmediateMessage($1)]]''' | ||
$1 = | $1 = Message Target | ||
=== ImmediateMessageNamed === | |||
Send a message to a specified portal with a specific name whilst the item waits at the change object | |||
== | '''[[ImmediateMessageNamed|ImmediateMessageNamed($1,$2)]]''' | ||
$1 = Message Target | |||
$2 = Message Name | |||
=== | === ReleaseWaitingItem === | ||
Used to signal a waiting dispatcher on the target panel that a given item should be released | |||
'''[[ | '''[[ReleaseWaitingItem|$R = ReleaseWaitingItem($1,$2)]]''' | ||
$1 = | $R = Result | ||
$1 = Item Index | |||
$2 = Scope Panel | |||
=== ReverseItemDirection === | |||
Searches spatial links for the item and if found, reverses the direction of the item | |||
'''[[ReverseItemDirection|$R = ReverseItemDirection($1,$2)]]''' | |||
'''[[ | |||
$R = Result | |||
$1 = Item Index | |||
$2 = Scope Panel | |||
== Numeric == | |||
=== | === abs === | ||
Magnitude of a value, without the sign | |||
'''[[ | '''[[abs|$R = abs($1)]]''' | ||
$R = Result | |||
$1 = Value 1 | |||
=== | === Convolve === | ||
Performs a convolution between two columns into a preallocated result column. This is useful for combining distributions.” | |||
'''[[ | '''[[Convolve|Convolve($R,$1,$2)]]''' | ||
$1 = | $R = Result | ||
$1 = Column 1 | |||
$2 = Column 2 | |||
=== | === fmod === | ||
Floating point modulus of $1 over base $2 | |||
'''[[ | '''[[fmod|$R = fmod($1,$2)]]''' | ||
$1 = | $R = Result | ||
$2 = | $1 = Value 1 | ||
$2 = Value 2 | |||
=== | === max === | ||
Determines the greater of 2 values | |||
'''[[ | '''[[max|$R = max($1,$2)]]''' | ||
$R = | $R = Result | ||
$1 = Value 1 | |||
$2 = Value 2 | |||
=== | === min === | ||
Determines the lesser of 2 values | |||
'''[[ | '''[[min|$R = min($1,$2)]]''' | ||
$R = Result | |||
$1 = Value 1 | |||
$2 = Value 2 | |||
=== | === mod === | ||
Integer modulus of $1 over base $2 | |||
'''[[ | '''[[mod|$R = mod($1,$2)]]''' | ||
$R = | $R = Result | ||
$1 = | $1 = Value 1 | ||
$2 = Value 2 | |||
=== | === Normalise === | ||
Rescales data in column so they add up to 1 | |||
'''[[ | '''[[Normalise|Normalise($1)]]''' | ||
$1 = | $1 = Column | ||
=== | === random === | ||
Random value between 0 and 1 | |||
'''[[ | '''[[random|$R = random($F)]]''' | ||
$ | $R = Result | ||
$ | $F = Set to | ||
=== | === round === | ||
Integer closest to the value | |||
'''[[ | '''[[round|$R = round($1)]]''' | ||
$R = | $R = Result | ||
$1 = | $1 = Round Value | ||
=== | === RoundToN === | ||
Round value to the specified number of digits of precision | |||
'''[[RoundToN|$R = RoundToN($1,$2)]]''' | |||
$R = Result | |||
= | $1 = Round Value | ||
$2 = Sig. Digits | |||
=== | === trunc === | ||
Integer equal or lower than the value | |||
'''[[ | '''[[trunc|$R = trunc($1)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = Truncate | ||
== Paint == | |||
=== | === BlendColors === | ||
Returns the resulting colour (always opaque) you would get if a black surface was painted with Color1 then Color2. | |||
'''[[ | '''[[BlendColors|$R = BlendColors($1,$2)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = Color1 | ||
$2 = | $2 = Color2 | ||
=== | === CopyPaintObject === | ||
Enables a paint object to be copied | |||
'''[[ | '''[[CopyPaintObject|$R = CopyPaintObject($1,$2)]]''' | ||
$R = | $R = New Paint Label | ||
$1 = | $1 = Original Paint Label | ||
$2 = | $2 = Destination Panel | ||
=== | === CopyPaintProperties === | ||
Copies the graphical properties between paint objects | |||
'''[[ | '''[[CopyPaintProperties|CopyPaintProperties($1,$2)]]''' | ||
$1 = Paint Object To Update | |||
$1 = | $2 = Original Paint Object | ||
$2 = | |||
=== | === CreateTiles === | ||
Creates a tileset from an image. (0,0) is the center of image. Existing tileset file is deleted. Returns 0 on success. | |||
'''[[ | '''[[CreateTiles|$R = CreateTiles($1,$2,$3,$4)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = Image File | ||
$2 = | $2 = Tile Set | ||
$3 = | $3 = MaxZoom | ||
$4 = Margin Colour | |||
=== | === DeleteAllPaintObjects === | ||
Delete all paint objects on the given panel | |||
'''[[ | '''[[DeleteAllPaintObjects|DeleteAllPaintObject($1)]]''' | ||
$1 = Target Panel | |||
$1 = | |||
== | === DeleteInheritedPaintObjects === | ||
Removes all paint objects which inherit from a given panel | |||
'''[[DeleteInheritedPaintObjects|DeleteInheritedPaintObjects($1,$2)]]''' | |||
'''[[ | |||
$ | $1 = Target Pane | ||
$ | $2 = Un Inherit Panel | ||
=== | === DeletePaintObject === | ||
Deletes a paint object | |||
'''[[ | '''[[DeletePaintObject|DeletePaintObject($1,$2)]]''' | ||
$ | $1 = Paint Label | ||
$ | $2 = With Inherited | ||
=== | === GetPaintProperty === | ||
Read a property of a paint object | |||
'''[[ | '''[[GetPaintProperty|$R = GetPaintProperty($1,$2)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = Paint Object Label | ||
$2 = Property Label | |||
=== | === InheritPaintObjects === | ||
Enables a panel to be populated with paint objects from another panel | |||
'''[[ | '''[[InheritPaintObjects|InheritPaintObjects($1,$2)]]''' | ||
$1 = Target Panel | |||
$1 = | $2 = Inherit From Panel | ||
$2 = | |||
=== | === InterpolateColor === | ||
Interpolates an RGB color between color1 and color2 based on ratio (0.0 gives color1, 1.0 gives color2) | |||
'''[[ | '''[[InterpolateColor|$R = InterpolateColor($1,$2,$3)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = Color1 | ||
$2 = Color2 | |||
$3 = Ratio | |||
=== | === LinkPaintObjects === | ||
Associate a paint object to a parent so it tracks movement of the parent. Parent and linked are paint objects. Edge values determine which edge/corner is used (1..9, 1=topleft, 2=top, 3=topright etc). Options: 1 auto-delete linked paint object when parent becomes hidden. | |||
'''[[ | '''[[LinkPaintObjects|LinkPaintObjects($1,$2,$3,$4,$5,$6,$7)]]''' | ||
$ | $1 = Parent | ||
$ | $2 = Linked | ||
$3 = Parent Edge | |||
$4 = Linked Edge | |||
$5 = Offset X | |||
$6 = Offset Y | |||
$7 = Options | |||
=== | === LongLatToXY === | ||
Using the Map paint object, Longitude/Latitude co-ordinates are translated to panel X/Y points. Table must contain columns _Long, _Lat, _X and _Y | |||
'''[[ | '''[[LongLatToXY|LongLatToXY($1,$2)]]''' | ||
$ | $1 = Paint Map Label | ||
$ | $2 = Table | ||
=== | === MakeRangeVisible === | ||
Adjusts the map co-ordinates to make the range of co-ordinates visible regardless of the map view's aspect ratio | |||
'''[[ | '''[[MakeRangeVisible|MakeRangeVisible($1,$2,$3,$4,$5)]]''' | ||
$ | $1 = Paint Map Label | ||
$ | $2 = Long From | ||
$ | $3 = Lat From | ||
$4 = Long To | |||
$5 = Lat To | |||
=== | === PositionPaintObject === | ||
Move a paint object given a parent's position. Parent and Paint are paint objects. Edge values determine which edge/corner is used (1..9, 1=topleft, 2=top, 3=topright etc). Parent=0 uses panel edge. | |||
'''[[ | '''[[PositionPaintObject|PositionPaintObject($1,$2,$3,$4,$5,$6)]]''' | ||
$ | $1 = Parent | ||
$ | $2 = Paint | ||
$3 = Parent Edge | |||
$4 = Paint Edge | |||
$5 = Offset X | |||
$6 = Offset Y | |||
=== | === RepaintPaintObject === | ||
Repaint a single paint object. Useful if the object's contents have changed but it hasn't moved or changed size. Clear colour can be used to erase under the paint object when anti-aliasing causes blending noise to linger. | |||
'''[[ | '''[[RepaintPaintObject|RepaintPaintObject($1,$2)]]''' | ||
$ | $1 = Paint Label | ||
$ | $2 = Clear Color | ||
=== | === ScaleColor === | ||
Scales the R/G/B components of a colour by Scale and adds Offset to each. Scale and Offset are normally 0..255. The alpha is unchanged. | |||
'''[[ | '''[[ScaleColor|$R = ScaleColor($1,$2,$3)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = Color | ||
$2 = | $2 = Scale | ||
$3 = Offset | |||
=== | === SetLongLatXY === | ||
Sets paint map to show the given co-ordinate as close as possible to the panel (x,y) point. | |||
'''[[ | '''[[SetLongLatXY|SetLongLatXY($1,$2,$3,$4,$5)]]''' | ||
$ | $1 = Paint Map Label | ||
$ | $2 = Longitude | ||
$3 = Latitude | |||
$4 = X | |||
$5 = Y | |||
=== | === SetNoteVisible === | ||
Shows or hides an RTF note | |||
'''[[ | '''[[SetNoteVisible|SetNoteVisible($1,$2)]]''' | ||
$ | $1 = Paint Object Label | ||
$ | $2 = Visibility | ||
=== | === SetPaintImage === | ||
Sets the image of a paint object | |||
'''[[ | '''[[SetPaintImage|SetPaintImage($1,$2)]]''' | ||
$ | $1 = Paint Object Label | ||
$ | $2 = Set Image To | ||
=== | === SetPaintProperty === | ||
Set a property of a paint object directly | |||
'''[[ | '''[[SetPaintProperty|SetPaintProperty($1,$2,$3)]]''' | ||
$ | $1 = Paint Object Label | ||
$ | $2 = Property Label | ||
$3 = Property Value | |||
=== | === SetPaintText === | ||
Sets the text of a paint object | |||
'''[[ | '''[[SetPaintText|SetPaintText($1,$2,$3)]]''' | ||
$ | $1 = Paint Object Label | ||
$ | $2 = Set Text/File To | ||
$3 = For All States | |||
== | === SetPaintTip === | ||
Sets the tool tip text of a paint object | |||
'''[[SetPaintTip|SetPaintTip($1,$2,$3)]]''' | |||
'''[[ | |||
$1 = Paint Object Label | |||
$1 = | $2 = Set Tip To | ||
$2 = | $3 = For All States | ||
$3 = | |||
=== | === SetPaintXY === | ||
Moves a paint object so a given edge/corner is at (X,Y). Edge=1..9 (1=topleft, 2=topcenter, 5=center, 7=bottomleft etc.) | |||
'''[[ | '''[[SetPaintXY|SetPaintXY($1,$2,$3,$4)]]''' | ||
$1 = | $1 = Paint Object Label | ||
$2 = | $2 = X Pos | ||
$3 = Y Pos | |||
$4 = Edge | |||
=== | === SetTransparency === | ||
Sets the transparency (alpha) value of a colour | |||
'''[[ | '''[[SetTransparency|$R = SetTransparency($1,$2)]]''' | ||
$1 = | $R = Result | ||
$2 = | $1 = Color | ||
$2 = Transparency | |||
=== | === XYToLongLat === | ||
Using the Map paint object, screen X/Y points are translated to Longitude/Latitude co-ordinates. Table must contain columns _Long, _Lat, _X and _Y | |||
'''[[ | '''[[XYToLongLat|XYToLongLat($1,$2)]]''' | ||
$1 = Paint Map Label | |||
$2 = Table | |||
== | == Pipe == | ||
=== AddPipe === | |||
'''[[ | Creates a pipe between From and To if one doesn't exist and allocates an object label for the new pipe, which is returned. If Copy Pipe is a valid pipe object label then its properties are copied. | ||
'''[[AddPipe|$R = AddPipe($1,$2,$3)]]''' | |||
$1 = From | $R = New Pipe | ||
$2 = To | $1 = From | ||
$3 = Copy | $2 = To | ||
$3 = Copy Pipe | |||
=== | === RemovePipe === | ||
Removes any pipe between portals From and To (non directional). If From is a pipe label then it is used and To is ignored. | |||
'''[[ | '''[[RemovePipe|RemovePipe($1,$2)]]''' | ||
$1 = | $1 = From | ||
$2 = To | |||
== Route == | |||
=== | === AddStaticRoute === | ||
Adds a new static route with given name and ID. The route steps start at the starting_cell, working down for step_count. Fill_steps determines if steps are filled after adding the route. If a route with the ID already exists, it is replaced. If ID is 0, a new ID gets allocated. Returns the ID of the route that gets created/modified (>0) or <0 on failure. Do not replace a static route which is being used by any items. | |||
'''[[ | '''[[AddStaticRoute|$R = AddStaticRoute($1,$2,$3,$4,$5)]]''' | ||
$1 = | $R = Result | ||
$2 = | $1 = Name | ||
$2 = Route ID | |||
$3 = Starting Cell | |||
$4 = Step Count | |||
$5 = Fill Steps | |||
=== | === AddTrack === | ||
Creates a track between From and To if one doesn't exist and an object label is created and returned for the new track section. | |||
'''[[ | '''[[AddTrack|$R = AddTrack($1,$2,$3)]]''' | ||
$1 = To | $R = New Track | ||
$1 = From | |||
$2 = To | |||
$3 = Track Type | |||
=== | === AssignRoute === | ||
Sets | Sets an item's track route from a route table | ||
'''[[ | '''[[AssignRoute|AssignRoute($1)]]''' | ||
$1 = | $1 = Timetable Source | ||
=== | === AssignRouteFrom === | ||
Sets | Sets an item's track route from locations specified by cells working down from start, stopping when either count is reached or a zero cell. Returns 0 if no error. | ||
'''[[ | '''[[AssignRouteFrom|$R = AssignRouteFrom($1,$2)]]''' | ||
$ | $R = Result | ||
$ | $1 = Starting Cell | ||
$ | $2 = Step Count | ||
=== | === CancelLoopEntryDelay === | ||
Cancels a loop entry delay which is initiated for any item that may dwell at a location and is normally cancelled only if the item leaves the location immediately. This enables just a loop exit delay to occur without an associated loop entry delay. | |||
'''[[ | '''[[CancelLoopEntryDelay|CancelLoopEntryDelay()]]''' | ||
=== | === ClearRoute === | ||
Clear an item's routing database | |||
'''[[ | '''[[ClearRoute|ClearRoute()]]''' | ||
=== | === ClearTrailList === | ||
Clears a train's history of sections it has traversed | |||
'''[[ | '''[[ClearTrailList|ClearTrailList()]]''' | ||
=== | === CreateRoute === | ||
Creates a route of all steps between the two locations. Returns non zero and sets s.TrackFillRouteError on error. | |||
'''[[ | '''[[CreateRoute|$R = CreateRoute($1,$2)]]''' | ||
$1 = | $R = Result | ||
$1 = From | |||
$2 = To | |||
=== | === EnableTrackCheckNext === | ||
Used during lookahead, this enables a modeller to signal objects downstream of a lookahead that the current lookahead is for track capacity purposes and wont be taken immediately. It automatically resets when lookahead unwinds behind the routine. | |||
'''[[ | '''[[EnableTrackCheckNext|EnableTrackCheckNext()]]''' | ||
=== | === FillRouteSteps === | ||
Fills in all intermediate portals in an item's track route. Returns non zero on error in which case s.FillRouteError is set to a description | |||
'''[[ | '''[[FillRouteSteps|$R = FillRouteSteps()]]''' | ||
$ | $R = Result | ||
=== | === GenerateTrackTable === | ||
Updates the Track Network Details table for the panel inside portal Location. This can change the rows in the track table. Result is non zero if an error occured. | |||
'''[[ | '''[[GenerateTrackTable|$R = GenerateTrackTable($1)]]''' | ||
$R = Result | |||
$1 = Location | |||
=== | === HoldSectionRoad === | ||
Places the road of a track section into waiting for an item state, preventing any other item using it. If Item ID is >= 0 it is used for the item ID otherwise the current item is used. Item Object is used to locate the item if Item ID is set. | |||
'''[[ | '''[[HoldSectionRoad|HoldSectionRoad($1,$2,$3,$4)]]''' | ||
$ | $1 = SectionID | ||
$ | $2 = Road# | ||
$3 = Item ID | |||
$4 = Item Object | |||
=== | === InsertRouteStep === | ||
Insert a track route step into an item's internal routing database | |||
'''[[ | '''[[InsertRouteStep|InsertRouteStep($1,$2)]]''' | ||
$ | $1 = Route Step | ||
$ | $2 = Route Location | ||
=== | === ListBlockedTrains === | ||
Clears table and adds a row for each blocked train. Columns are filled in this order: Item ID, Blocked Time, Blocked Location | |||
'''[[ | '''[[ListBlockedTrains|ListBlockedTrains($1)]]''' | ||
$1 = | $1 = Table | ||
=== | === ReadRoute === | ||
Reads an item's track route into a table | |||
'''[[ | '''[[ReadRoute|ReadRoute($R)]]''' | ||
$R = | $R = Timetable Target | ||
=== | === RegisterBlockedTrain === | ||
Register the item (train) into the track blocked list | |||
'''[[ | '''[[RegisterBlockedTrain|RegisterBlockedTrain()]]''' | ||
=== | === RemoveStaticRoute === | ||
Removes any static route with the given ID. Do not remove a static route which is being used by any items. | |||
'''[[ | '''[[RemoveStaticRoute|RemoveStaticRoute($1)]]''' | ||
$1 = Route ID | |||
$1 = | |||
=== | === RemoveTrack === | ||
Removes any track between portals From and To. If From is a track label then it is used and To is ignored. | |||
'''[[ | '''[[RemoveTrack|RemoveTrack($1,$2)]]''' | ||
$ | $1 = From | ||
$ | $2 = To | ||
=== | === ResetLoopDelayTime === | ||
Resets the loop entry time for an item, useful for enabling some time to be spent in a track location without a loop exit delay being triggered. This does not affect any loop entry delay under way, it will complete at its scheduled time. | |||
'''[[ | '''[[ResetLoopDelayTime|ResetLoopDelayTime()]]''' | ||
=== | === RoadsInTrackSection === | ||
Returns how many roads a given track section has been configured for | |||
'''[[ | '''[[RoadsInTrackSection|$R = RoadsInTrackSection($1)]]''' | ||
$ | $R = Target | ||
$ | $1 = Section | ||
=== | === SectionRoadAvail === | ||
Returns where a track section road is available for an item/train to use | |||
'''[[ | '''[[SectionRoadAvail|$R = SectionRoadAvail($1,$2)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = SectionID | ||
$2 = | $2 = Road# | ||
=== | === SectionRoadTrain === | ||
Returns | Returns item ID of train in a track section road or -1 if no item | ||
'''[[ | '''[[SectionRoadTrain|$R = SectionRoadTrain($1,$2)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = SectionID | ||
$2 = Road# | |||
=== | === SetPreviousTailData === | ||
Enables taildata to be set for a road/length multiserver that a train has just left. This is useful when taildata information is not known until the front of the train leaves the road/multiserver. WhichData is 1..4 (TailData1..TailData4). | |||
'''[[ | '''[[SetPreviousTailData|SetPreviousTailData($1,$2)]]''' | ||
$1 = | $1 = WhichData | ||
$2 = | $2 = Value | ||
=== | === SetRoadCheckFilter === | ||
This will use road #'s specified by the column starting at a given cell to determine roads to test in lookahead on a track. It stops on a zero cell. | |||
'''[[ | '''[[SetRoadCheckFilter|SetRoadCheckFilter($1)]]''' | ||
$1 = Start Cell | |||
$1 = | |||
=== | === SetRoadColor === | ||
Sets | Sets color of road in track section | ||
'''[[ | '''[[SetRoadColor|SetRoadColor($1,$2,$3)]]''' | ||
$1 = | $1 = SectionID | ||
$2 = | $2 = Road# | ||
$3 = | $3 = Color | ||
=== | === TrackSectionType === | ||
Returns the type of a track section (_section_types label list) | |||
'''[[ | '''[[TrackSectionType|$R = TrackSectionType($1)]]''' | ||
$1 = | $R = Target | ||
$1 = Section | |||
=== | === UnblockTrain === | ||
Attempt unblock of specific train id or all blocked trains if id is 0 | |||
'''[[ | '''[[UnblockTrain|UnblockTrain($1)]]''' | ||
$1 = Item ID | |||
== | === UpdateLoopEntryDelay === | ||
Sets the loop entry delay to a new value. This can be performed when a train enters a location. The delay is measured from when the original loop delay started. If no loop delay is active, the operation does nothing. | |||
'''[[UpdateLoopEntryDelay|UpdateLoopEntryDelay($1)]]''' | |||
$1 = Loop Delay | |||
== Row/Column == | |||
=== | === Average === | ||
Determines the average of values in a row or column | |||
'''[[ | '''[[Average|$R = Average($1,$2,$3)]]''' | ||
$R = | $R = Result | ||
$1 = | $1 = Average of | ||
$2 = From | |||
$3 = To | |||
=== | === MaxIndex === | ||
Determines the index of the highest value in a row or column | |||
'''[[ | '''[[MaxIndex|$R = MaxIndex($1,$2,$3)]]''' | ||
$R = | $R = Result | ||
$1 = Max of | |||
$2 = From | |||
$3 = To | |||
=== | === MinIndex === | ||
Determines the index of the lowest value in a row or column | |||
'''[[ | '''[[MinIndex|$R = MinIndex($1,$2,$3)]]''' | ||
$R = | $R = Result | ||
$1 = Min of | |||
$2 = From | |||
$3 = To | |||
=== | === StdDev === | ||
Determines the Standard Deviation of values in a row or column | |||
'''[[ | '''[[StdDev|$R = StdDev($1,$2,$3)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = StdDev of | ||
$2 = | $2 = From | ||
$3 = | $3 = To | ||
=== | === Sum === | ||
Determines the sum of values in a row or column | |||
'''[[ | '''[[Sum|$R = Sum($1,$2,$3)]]''' | ||
$R = From | $R = Result | ||
$ | $1 = Sum of | ||
$2 = From | |||
$3 = To | |||
=== | === SumSquared === | ||
Determines the sum of squares of values in a row or column | |||
'''[[ | '''[[SumSquared|$R = SumSquared($1,$2,$3)]]''' | ||
$R = | $R = Result | ||
$1 = | $1 = Sum/Sqr of | ||
$2 = From | |||
$3 = To | |||
== Scientific == | |||
=== | === arccos === | ||
Inverse cosine function, returns radians | |||
'''[[ | '''[[arccos|$R = arccos($1)]]''' | ||
$R = | $R = Result | ||
$1 = | $1 = Value | ||
=== | === arcsin === | ||
Inverse sine function, returns radians | |||
'''[[ | '''[[arcsin|$R = arcsin($1)]]''' | ||
$R = | $R = Result | ||
$1 = | $1 = Value | ||
=== | === arctan === | ||
Inverse tan function, returns radians | |||
'''[[ | '''[[arctan|$R = arctan($1)]]''' | ||
$R = | $R = Result | ||
$1 = | $1 = Value | ||
=== | === atan2 === | ||
Determines angle (in radians) given x and y displacement | |||
'''[[ | '''[[atan2|$R = atan2($1,$2)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = Numerator (Y) | ||
$2 = | $2 = Denominator (X) | ||
=== | === cos === | ||
Cosine function, value in radians | |||
'''[[ | '''[[cos|$R = cos($1)]]''' | ||
$R = | $R = Result | ||
$1 = | $1 = Value | ||
=== | === DegToRad === | ||
Converts degrees to radians | |||
'''[[ | '''[[DegToRad|$R = DegToRad($1)]]''' | ||
$R = | $R = Result | ||
$1 = | $1 = Value | ||
=== | === exp === | ||
Calculates $1 to the power of E | |||
'''[[ | '''[[exp|$R = exp($1)]]''' | ||
$1 = | $R = Result | ||
$1 = Value | |||
=== | === hypot === | ||
Hypotenuse of right angled triangle with given sides | |||
'''[[ | '''[[hypot|$R = hypot($1,$2)]]''' | ||
$R = | $R = Result | ||
$1 = | $1 = X Value | ||
$2 = Y Value | |||
=== | === log10 === | ||
Calculates the decimal logarithm of the value | |||
'''[[ | '''[[log10|$R = log10($1)]]''' | ||
$R = | $R = Result | ||
$1 = Value | |||
=== logN === | |||
Calculates the natural logarithm of the value | |||
'''[[logN|$R = logN($1)]]''' | |||
'''[[ | |||
$R = Result | $R = Result | ||
$ | $1 = Value | ||
=== | === pow === | ||
Calculates $1 to the power of $2 | |||
'''[[ | '''[[pow|$R = pow($1,$2)]]''' | ||
$R = | $R = Result | ||
$1 = | $1 = Value | ||
$2 = Power | |||
=== | === RadToDeg === | ||
Converts radians to degrees | |||
'''[[ | '''[[RadToDeg|$R = RadToDeg($1)]]''' | ||
$R = | $R = Result | ||
$1 = | $1 = Value | ||
=== | === sin === | ||
Sine function, value in radians | |||
'''[[ | '''[[sin|$R = sin($1)]]''' | ||
$R = | $R = Result | ||
$1 = | $1 = Value | ||
=== | === sqr === | ||
Value multiplied by itself | |||
'''[[ | '''[[sqr|$R = sqr($1)]]''' | ||
$R = | $R = Result | ||
$1 = | $1 = Value | ||
=== | === sqrt === | ||
Square root of value | |||
'''[[ | '''[[sqrt|$R = sqrt($1)]]''' | ||
$R = | $R = Result | ||
$1 = | $1 = Value | ||
=== | === tan === | ||
Tan function, value in radians | |||
'''[[ | '''[[tan|$R = tan($1)]]''' | ||
$ | $R = Result | ||
$ | $1 = Value | ||
== Spatial Link == | |||
=== | === AddBendPoint === | ||
Adds a bend point to a spatial link between the two objects specified | |||
'''[[ | '''[[AddBendPoint|AddBendPoint($R,$1,$2,$3)]]''' | ||
$R = | $R = From Object | ||
$1 = | $1 = To Object | ||
$2 = X Position | |||
$3 = Y Position | |||
=== | === AddDirectionalLink === | ||
Adds a spatial link between objects which can only be traversed in the forward direction | |||
'''[[ | '''[[AddDirectionalLink|$R = AddDirectionalLink($1,$2)]]''' | ||
$1 = | $R = Link ID | ||
$2 = | $1 = From Object | ||
$2 = To Object | |||
=== | === AddLink === | ||
Add a spatial link between the two objects labels specified | |||
'''[[ | '''[[AddLink|$R = AddLink($1,$2)]]''' | ||
$R = | $R = Link ID | ||
$1 = | $1 = From Object | ||
$2 = To Object | |||
=== | === ClearLinkCache === | ||
Instructs Planimate to update spatial link information after links are created or objects are moved | |||
'''[[ | '''[[ClearLinkCache|ClearLinkCache()]]''' | ||
=== | === CopyLink === | ||
Creates a spatial link between objects, copying an existing link's properties | |||
'''[[ | '''[[CopyLink|$R = CopyLink($1,$2,$3)]]''' | ||
$R = | $R = Link ID | ||
$1 = | $1 = From Object | ||
$2 = | $2 = To Object | ||
$3 = Copy Link | |||
=== | === DeletePanelLinks === | ||
Deletes all spatial links on a given panel | |||
'''[[ | '''[[DeletePanelLinks|DeletePanelLinks($1)]]''' | ||
$1 = Panel | |||
$1 = | |||
=== | === GetBendPoints === | ||
Reads bend points into table Bend Table. Link Type determines the type of link acted on. Bend Table Columns: from, to, x, y. Link Type: from _link_types label list. | |||
'''[[ | '''[[GetBendPoints|GetBendPoints($1,$2,$3)]]''' | ||
$ | $1 = Bend Table | ||
$ | $2 = Panel | ||
$3 = Link Type | |||
=== | === GetNextLinkObject === | ||
Returns the next portal object index that an item will travel to on a spatial link given the item starting at 'from' and target 'to'. Returns 0 if none. | |||
'''[[ | '''[[GetNextLinkObject|$R = GetNextLinkObject($1,$2)]]''' | ||
$R = | $R = Location | ||
$1 = From Portal | |||
$2 = To Portal | |||
=== | === QueryLinkItems === | ||
Sets table to rows describing every item on the link. Required columns are ItemID, TotalTime, Ratio, Direction and Stopped. Ratio corresponds to the position on the link, 0 being the start of the link and 1 being the end. Direction is 0 for forward and 1 for reverse. | |||
'''[[ | '''[[QueryLinkItems|QueryLinkItems($1,$2)]]''' | ||
$1 = | $1 = Table | ||
$2 = | $2 = Link | ||
=== | === RemoveLink === | ||
Removes any spatial links from and to the specified object labels (directional) | |||
'''[[ | '''[[RemoveLink|RemoveLink($1,$2)]]''' | ||
$1 = | $1 = From Object | ||
$2 = | $2 = To Object | ||
=== | === SetBendPoints === | ||
Deletes all bend points and recreates them from the Bend Table. Link Type determines the type of link acted on. Bend Table Columns: from, to, x, y. Link Type: from _link_types label list. | |||
'''[[ | '''[[SetBendPoints|SetBendPoints($1,$2,$3)]]''' | ||
$1 = Bend Table | |||
$1 = Table | |||
$2 = Panel | $2 = Panel | ||
$3 = | $3 = Link Type | ||
=== | === SetItemLinkTarget === | ||
Sets the destination an item will look for once it enters a spatial link. Time sets the travel time to use (or SetItemLinkTime can be used after this). Road sets the road for multi-toad links, 1..n or 0 to leave unchanged. | |||
'''[[ | '''[[SetItemLinkTarget|SetItemLinkTarget($1,$2,$3)]]''' | ||
$1 = | $1 = Target Object | ||
$2 = | $2 = Total Time | ||
$3 = Road | |||
=== | === SetItemLinkTime === | ||
Sets the time an item will take to reach its destination once it enters a spatial link | |||
'''[[ | '''[[SetItemLinkTime|SetItemLinkTime($1)]]''' | ||
$1 = | $1 = To Time | ||
=== | === SetLinkColor === | ||
Sets the | Sets the color of a spatial link between 2 given objects | ||
'''[[ | '''[[SetLinkColor|SetLinkColor($1,$2,$3,$4)]]''' | ||
$1 = | $1 = From Object | ||
$2 = | $2 = To Object | ||
$3 = | $3 = Color | ||
$4 = Road | |||
=== | === SetLinkCost === | ||
Sets the | Sets the link cost of a spatial link (normally computed from the link's distance) | ||
'''[[ | '''[[SetLinkCost|SetLinkCost($1,$2,$3)]]''' | ||
$1 = | $1 = From Object | ||
$2 = | $2 = To Object | ||
$3 = | $3 = Cost | ||
=== | === SetLinkRoads === | ||
Sets the number of roads and road spacing for a spatial link. | |||
'''[[ | '''[[SetLinkRoads|SetLinkRoads($1,$2,$3,$4)]]''' | ||
$ | $1 = From Object | ||
$ | $2 = To Object | ||
$ | $3 = Roads | ||
$4 = Spacing | |||
=== | === SetLinkWidth === | ||
Sets the width of a spatial link between two objects | |||
'''[[ | '''[[SetLinkWidth|SetLinkWidth($1,$2,$3)]]''' | ||
$ | $1 = From Object | ||
$ | $2 = To Object | ||
$ | $3 = Width | ||
=== | === UpdateLinkItems === | ||
Updates the spatial link items according to the settings in the table. Columns are ItemID, TotalTime, Ratio, Direction and Stopped. Ratio corresponds to the position on the link, 0 being the start of the link and 1 being the end. Direction is 0 for forward and 1 for reverse. Stopped enables just that item to be suspended on the link. If ItemID is -1 the row is ignored. If Ratio is -1, the items position is retained. If TotalTime is -1, the current total time for the item is retained. | |||
'''[[ | '''[[UpdateLinkItems|UpdateLinkItems($1,$2)]]''' | ||
$1 = Table | $1 = Table | ||
$2 = | $2 = Link | ||
== | == Special == | ||
=== ---| Only During Move |--- === | |||
'''[[ | Enables the modeller to specifically mark that the following routine lines do not execute during lookahead | ||
'''[[---| Only During Move |---||----- Following Only During Move -----|]]''' | |||
=== | === Beep === | ||
Plays a tone through the sound card, Frequency in Hz, Duration in milliseconds | |||
'''[[ | '''[[Beep|Beep($1,$2)]]''' | ||
$1 = Frequency | |||
$1 = | $2 = Duration | ||
$2 = | |||
== | === BREAKPOINTIF === | ||
If the parameter is true, this interrupts the routine and displays a debugging dialog enabling inspection of the models state | |||
'''[[BREAKPOINTIF|BREAKPOINTIF ($1)]]''' | |||
'''[[ | |||
$1 = Enable Break | |||
$1 = | |||
=== | === BrowseKey === | ||
Returns | Give user chance to browse for another key. Returns non zero if a different key was selected which is acceptable. | ||
'''[[ | '''[[BrowseKey|$R = BrowseKey()]]''' | ||
$R = Result | $R = Result | ||
=== | === CallRoutine === | ||
Calls a subroutine | |||
'''[[ | '''[[CallRoutine|CallRoutine($F)]]''' | ||
$ | $F = Call | ||
=== | === Comment (//) === | ||
A comment line | |||
'''[[ | '''[[Comment|Comment]]''' | ||
=== | === CopyFont === | ||
Copies the font properties between cells and columns | |||
'''[[ | '''[[CopyFont|CopyFont($R,$1)]]''' | ||
$R = Result | $R = Format Result | ||
$1 = | $1 = Format From | ||
=== | === CopyFormat === | ||
Copies the format/unit type/label reference between cells, columns and attributes | |||
'''[[ | '''[[CopyFormat|CopyFormat($R,$1)]]''' | ||
$R = Result | $R = Format Result | ||
$1 = | $1 = Format From | ||
=== | === CopyPortal === | ||
Makes a copy of a portal and places it on Panel. If the name text is not “-” or an empty string, the new portal uses that name. | |||
'''[[ | '''[[CopyPortal|$R = CopyPortal($1,$2,$3,$4,$5)]]''' | ||
$R = | $R = New Portal | ||
$1 = | $1 = Original Portal | ||
$2 = New Panel | |||
$3 = X | |||
$4 = Y | |||
$5 = New Name | |||
=== | === DescribeRoutineData === | ||
Describe the data accessed by a change object routine | |||
'''[[ | '''[[DescribeRoutineData|DescribeRoutineData($1,$2,$3)]]''' | ||
$ | $1 = Routine Panel | ||
$ | $2 = Object Name | ||
$3 = Output Filename | |||
=== | === DragGanttBlock === | ||
Returns the | Initiates dragging a gantt block. Should be invoked as result of gantt block click (set option to process event immediately). Returns non zero if block was moved and corresponding rows in table changed. Table data may need resorting if block moved beyond other block on same row. Drag Type can be as returned from the click broadcast, 1 = left edge, 2 = right edge, 3 = center (move only). | ||
'''[[ | '''[[DragGanttBlock|$R = DragGanttBlock($1,$2,$3,$4,$5,$6,$7,$8)]]''' | ||
$R = Result | $R = Result | ||
$1 = Time | $1 = Table | ||
$2 = Panel | |||
$3 = Drag Type | |||
$4 = Start Row | |||
$5 = End Row | |||
$6 = Min Time | |||
$7 = Max Time | |||
$8 = Increment | |||
=== | === EncodeARGB === | ||
Encodes alpha, red, green and blue components (0..255) into a single 4 byte value used to specify any color/transparency in Planimate. | |||
'''[[ | '''[[EncodeARGB|$R = EncodeARGB($1,$2,$3,$4)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = Alpha Value | ||
$2 = Red Value | |||
$3 = Green Value | |||
$4 = Blue Value | |||
=== | === EncodeRGB === | ||
Encodes red, green and blue components (0..255) into a single 4 byte value used to specify any color in Planimate. The top byte of the value (alpha) is set to 255. | |||
'''[[ | '''[[EncodeRGB|$R = EncodeRGB($1,$2,$3)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = Red Value | ||
$2 = Green Value | |||
$3 = Blue Value | |||
== | === FollowItemRemote === | ||
Searches spatial links for the item and if found, sets the 'followitem property. | |||
'''[[FollowItemRemote|$R = FollowItemRemote($1,$2,$3)]]''' | |||
'''[[ | |||
$R = | $R = Result | ||
$1 = Item Index | |||
$2 = Scope Panel | |||
$3 = Follow State | |||
=== | === FormatForList === | ||
Formats the result object to reference a label list with the given name | |||
'''[[ | '''[[FormatForList|FormatForList($R,$1)]]''' | ||
$R = | $R = Format Result | ||
$1 = List Name | |||
=== | === GetFormat === | ||
Returns the value format of the data | |||
'''[[ | '''[[GetFormat|$R = GetFormat($1)]]''' | ||
$R = Result | $R = Result | ||
$1 = | $1 = Data To Test | ||
=== | === GetFormatListName === | ||
Creates a new label with the name of the label list the target is formatted to. If no list, no change to the target is made | |||
'''[[ | '''[[GetFormatListName|GetFormatListName($R,$1)]]''' | ||
$R = | $R = Result | ||
$1 = | $1 = Data To Test | ||
=== | === InfoPanelRemote === | ||
Searches spatial links for the item and if found, sets the s.ItemShowInfoPanel property. | |||
'''[[ | '''[[InfoPanelRemote|$R = IntoPanelRemote($1,$2,$3)]]''' | ||
$R = | $R = Result | ||
$1 = Item Info | |||
$2 = Scope Panel | |||
$3 = Show State | |||
=== | === ListRoutineCode === | ||
Write a change object routine code to a file | |||
'''[[ | '''[[ListRoutineCode|ListRoutineCode($1,$2,$3)]]''' | ||
$ | $1 = Routine Panel | ||
$ | $2 = Object Name | ||
$3 = Output Filename | |||
=== | === LoadDataSet2 === | ||
Load a version 2 dataset | |||
'''[[ | '''[[LoadDataSet2|$R = LoadDataSet2($1,$2,$3)]]''' | ||
$R = | $R = Result | ||
$1 = Definition Table | |||
$2 = File Name | |||
$3 = Pass Phrase | |||
=== | === LoadModel === | ||
For | Stops current run and loads another model. For PBA, the PBA is reloaded regardless of name. | ||
'''[[ | '''[[LoadModel|LoadModel($1)]]''' | ||
$1 = Model Name | |||
$1 = | |||
=== | === ObjectType === | ||
Returns the type of the object that the object label refers to | |||
'''[[ | '''[[ObjectType|$R = ObjectType($1)]]''' | ||
$R = | $R = Result | ||
$1 = Object | |||
=== | === QueryNetwork === | ||
Sets table to rows describing every link on Panel between portals (track,spatial,pipe). 4 columns are required; From, To, Type and ID. From and To are the object Ids of the portals at the end points. Type is the type of link and is formatted to the “_link_type” label list. ID is the object id of the link. | |||
'''[[ | '''[[QueryNetwork|QueryNetwork($1,$2)]]''' | ||
$ | $1 = Table | ||
$2 = Panel | |||
=== | === RealTimeCallBack === | ||
This will schedule a _Real Time Tick broadcast at a given real interval, in milliseconds. Note that any previous event is cancelled when this is re-invoked. Interval can be between 10 and 5000ms. | |||
'''[[ | '''[[RealTimeCallBack|RealTimeCallBack($1)]]''' | ||
$1 = Interval (ms) | |||
$1 = | |||
=== | === RemovePortal === | ||
Deletes the portal and its contents from the model | |||
'''[[ | '''[[RemovePortal|RemovePortal($1)]]''' | ||
$ | $1 = Portal ID | ||
=== | === SaveDataSet2 === | ||
Save a version 2 dataset | |||
'''[[ | '''[[SaveDataSet2|$R = SaveDataSet2($1,$2,$3)]]''' | ||
$R = | $R = Result | ||
$1 = Definition Table | |||
=== | $2 = File Name | ||
$3 = Pass Phrase | |||
=== SetDirectory === | |||
Sets the working directory for the model. Use only for compiled applications. Returns non zero on failure | |||
'''[[ | '''[[SetDirectory|$R = SetDirectory($1)]]''' | ||
$R = | $R = Result | ||
$1 = | $1 = Path | ||
=== | === SetFormat === | ||
Sets format of $1 to mode $2, with $3 being the label list name if its a label format | |||
'''[[ | '''[[SetFormat|SetFormat($1,$2,$3)]]''' | ||
$ | $1 = Data To Set | ||
$2 = Format | |||
$3 = List Name | |||
=== | === SetLastDatasetFile === | ||
Sets the last dataset filename, optionally visible in the titlebar. A relative filename will have a full path created as would be used in a file operation with the name. | |||
'''[[ | '''[[SetLastDatasetFile|SetLastDatasetFile($1)]]''' | ||
$1 = | $1 = Name | ||
=== | === ShowHelp === | ||
Open a HTML help window. Help File can be empty for default. | |||
'''[[ | '''[[ShowHelp|ShowHelp($1,$2)]]''' | ||
$1 = Help File | |||
$1 = File | $2 = Section | ||
$2 = | |||
=== | === SignFile === | ||
Digitally signs a file. | |||
'''[[ | '''[[SignFile|$R = SignFile($1,$2,$3,$4,$5)]]''' | ||
$R = Result | |||
$1 = File Name | |||
$2 = Cert | |||
$3 = Password | |||
$4 = Subject | |||
$5 = Time Server | |||
=== | === StartScheduledEntries === | ||
Signals that scheduled entries should start (if options deferred them starting when the model was run) | |||
'''[[ | '''[[StartScheduledEntries|StartScheduledEntries]]''' | ||
=== | === WatchListAdd === | ||
Add portal, routine or item attribute to watch list for debugging | |||
'''[[ | '''[[WatchListAdd|WatchListAdd($1)]]''' | ||
$1 = Attribute | |||
$1 = | |||
=== | === WatchListRemove === | ||
Remove portal, routine or item attribute from watch list | |||
'''[[ | '''[[WatchListRemove|WatchListRemove($1)]]''' | ||
$1 = | $1 = Attribute | ||
== | == String == | ||
=== GetNoteRTF === | |||
'''[[ | Retrieves RTF text of note | ||
'''[[GetNoteRTF|$R = GetNoteRTF($1)]]''' | |||
$R = String | |||
$1 = Paint ID | |||
=== GetNoteText === | |||
Retrieves plain text of note | |||
'''[[GetNoteText|$R = GetNoteText($1)]]''' | |||
$R = String | |||
$1 = Paint ID | |||
=== SetNoteRTF === | |||
Sets RTF text of note | |||
'''[[SetNoteRTF|SetNoteRTF($1,$2)]]''' | |||
$1 = Paint ID | |||
$2 = Text | |||
=== SetNoteText === | |||
Sets plain text of note | |||
'''[[SetNoteText|SetNoteText($1,$2)]]''' | |||
$1 = Paint ID | |||
$2 = Text | |||
=== SetText ( $= ) === | |||
Set a free text attribute or table cell to another text attribute, literal text or a the formatted text of a value | |||
'''[[SetText|$R $= $1]]''' | |||
$R = Result | |||
$1 = Set To | |||
== Table == | |||
=== AddTable === | |||
Adds table to panel, returning data object label. If a table with that name already exists, 0 is returned. | |||
'''[[AddTable|$R = AddTable($1,$2)]]''' | |||
$1 = | $R = Result | ||
$1 = Panel | |||
$2 = Name | |||
=== AdvancedSort === | |||
Performs a sort on a table using another table to define the sort criteria | |||
[[ | '''[[AdvancedSort|AdvancedSort($R,$1)]]''' | ||
$R = Target | |||
$1 = Sort Info | |||
=== AllocateTableRowMemory === | |||
Enables memory to be reserved for a table which is expected to grow to a large number of rows | |||
'''[[AllocateTableRowMemory|AllocateTableRowMemory($R,$1)]]''' | |||
$R = Target Table | |||
$1 = Allocate Rows | |||
=== AppendColumn === | |||
Append a column to a table | |||
'''[[AppendColumn|AppendColumn($R,$1)]]''' | |||
$R = Target | |||
$1 = Col Count | |||
=== AppendRow === | |||
Append a row to the table | |||
'''[[AppendRow|AppendRow($R,$1)]]''' | |||
$R = Target | |||
$1 = Row Count | |||
=== BinarySearch === | |||
Perform a binary search over the range First Index to Last Index. Assumes the data compared is sorted ascending and the comparison is for equality. Multiple comparisons can be combined only with AND. Returns 1 + last index or 0 if Zero On Fail is set. | |||
'''[[BinarySearch|$R = BinarySearch($F,$1,$2,$3)]]''' | |||
$R = Result | |||
$1 = First Index | |||
$2 = Last Index | |||
$3 = Zero On Fail | |||
$F = Condition | |||
=== BlockMove === | |||
Block copy a range of cells to another table | |||
'''[[BlockMove|BlockMove($R,$1,Range[$2][$3])]]''' | |||
$R = Result | |||
$1 = Source | |||
$2 = # of Rows | |||
$3 = # of Cols | |||
=== CheckTableSorted === | |||
Determines if a table is sorted by the sort criteria. Return 0 if OK or the first unsorted row number. This can be more efficient than calling Sort which is very slow if the table is already sorted. | |||
'''[[CheckTableSorted|$R = CheckTableSorted($1,$2,$3,$4,$5)]]''' | |||
$R = Result | |||
$1 = Table | |||
$2 = Column 1 | |||
$3 = Column 2 | |||
$4 = Column 3 | |||
$5 = Column 4 | |||
=== CompareTables === | |||
Compares rows in tables, returns row number of first difference. Only numerical values are compared, not Text strings. | |||
'''[[CompareTables|$R = CompareTables($1,$2)]]''' | |||
$R = Result | |||
$1 = Table 1 | |||
$2 = Table 2 | |||
=== CopyToClipboard === | |||
Copy table to clipboard using its clipboard settings and the option modifiers | |||
'''[[CopyToClipboard|CopyToClipboard($R,$1)]]''' | |||
$R = From Table | |||
$1 = Options | |||
=== CountIFMatch === | |||
Counts rows where Match Column matches Match Key | |||
'''[[CountIFMatch|$R = CountIFMatch($1,$2)]]''' | |||
$R = Result | |||
$1 = Match Column | |||
$2 = Match Key | |||
=== CreateSortIndex === | |||
Creates an ordered list of row numbers if the given column was sorted alphabetically | |||
'''[[CreateSortIndex|CreateSortIndex($R,$1)]]''' | |||
$R = Target Column | |||
$1 = Column To Sort | |||
=== DeleteColumn === | |||
Delete a range of columns from a table | |||
'''[[DeleteColumn|DeleteColumn($R,$1,$2)]]''' | |||
$R = Target Table | |||
$1 = First Col | |||
$2 = Col Count | |||
=== DeleteRow === | |||
Delete a number of rows starting at a given row in a table | |||
'''[[DeleteRow|DeleteRow($R,$1,$2)]]''' | |||
$R = Target Table | |||
$1 = First Row | |||
$2 = Row Count | |||
=== EnableColumnEditing === | |||
Controls whether a given table column can be edited | |||
'''[[EnableColumnEditing|EnableColumnEditing($R,$1)]]''' | |||
$R = Target Column | |||
$1 = Edit Control | |||
=== FindColumnLabel === | |||
Searches columns in table $1 for one with a label which matches formatted $2 and returns the index or 0 if none found | |||
'''[[FindColumnLabel|$R = FindColumnLabel($1,$2)]]''' | |||
$R = Result | |||
$1 = Table | |||
$2 = Find String | |||
=== FindColumnTitle === | |||
Searches columns in table $1 for one with a title which matches formatted $2 and returns the index or 0 if none found | |||
'''[[FindColumnTitle|$R = FindColumnTitle($1,$2)]]''' | |||
$R = Result | |||
$1 = Table | |||
$2 = Find String | |||
=== FindDuplicates === | |||
Finds duplicated rows in Table, storing the duplicate row number pairs in the first two columns of table Duplicates. Existing rows in Duplicates are removed. Only values are compared, not text. | |||
'''[[FindDuplicates|FindDuplicates($R,$1)]]''' | |||
$R = Duplicates | |||
$1 = Table | |||
=== GetCellBackgroundColor === | |||
Returns ARGB or index value for a cell's background color. Will be null index (255) if not set for the cell | |||
'''[[GetCellBackgroundColor|$R = GetCellBackgroundColor($1)]]''' | |||
$R = Result | |||
$1 = Table Cell | |||
=== GetCellTextColor === | |||
Returns ARGB or index value for a cell's text color. Will be null index (255) if not set for the cell | |||
'''[[GetCellTextColor|$R = GetCellTextColor($1)]]''' | |||
$R = Result | |||
$1 = Table Cell | |||
=== GetColSecondTitle === | |||
Sets the target to a label of the second title row for the given column | |||
'''[[GetColSecondTitle|GetColumnSecondTitle($R,$1)]]''' | |||
$R = Result | |||
$1 = Column | |||
=== GetColumnProperty === | |||
Read a property of a table column | |||
'''[[GetColumnProperty|$R = GetColumnProperty($1,$2)]]''' | |||
$R = Result | |||
$1 = Table Column | |||
$2 = Property Label | |||
=== ImportFromClipboard === | |||
Performs import of table data/structure from clipboard as available in the table editor | |||
'''[[ImportFromClipboard|$R = ImportFromClipboard($1,$2)]]''' | |||
$R = Result | |||
$1 = Target Table | |||
$2 = Configure | |||
=== InsertColumn === | |||
Insert columns into a table with the option of copying formatting from another column | |||
'''[[InsertColumn|InsertColumn($R,$1,$2,$3)]]''' | |||
$R = Target Table | |||
$1 = Insert Pos. | |||
$2 = Col Count | |||
$3 = Copy Format | |||
=== InsertRow === | |||
Insert a number of rows at a given row in a table | |||
'''[[InsertRow|InsertRow($R,$1,$2)]]''' | |||
$R = Target Table | |||
$1 = Insert Pos. | |||
$2 = Row Count | |||
=== MatchMultipleKeys === | |||
Searches table from the top for the first instance where the given columns have the given values. Returns row number or 0 if no match. Column 3 may be zero for a 2 column search. | |||
'''[[MatchMultipleKeys|$R = MatchMultipleKeys($1,$2,$3,$4,$5,$6,$7,$8)]]''' | |||
$R = Result | |||
$1 = Table | |||
$2 = Start Row | |||
$3 = Column 1 | |||
$4 = Match 1 | |||
$5 = Column 2 | |||
$6 = Match 2 | |||
$7 = Column 3 | |||
$8 = Match 3 | |||
=== MaxIndexIFMatch === | |||
Returns first row with maximum Data Column value for rows where Match Column matches Match Key. Returns 0 if no rows match. | |||
'''[[MaxIndexIFMatch|$R = MaxIndexIFMatch($1,$2,$3)]]''' | |||
$R = Result | |||
$1 = Match Column | |||
$2 = Match Key | |||
$3 = Data Column | |||
=== MinIndexIFMatch === | |||
Returns first row with minimum Data Column value for rows where Match Column matches Match Key. Returns 0 if no rows match. | |||
'''[[MinIndexIFMatch|$R = MinIndexIFMatch($1,$2,$3)]]''' | |||
$R = Result | |||
$1 = Match Column | |||
$2 = Match Key | |||
$3 = Data Column | |||
=== OutOfScopeWrite === | |||
Enable writing to item table reference $1 even if it is not in scope | |||
'''[[OutOfScopeWrite|OutOfScopeWrite($1)]]''' | |||
$1 = Item Table Ref | |||
=== PositionLastRow === | |||
Intended for use after a single row has been appended to an already-sorted table, this will efficiently move that last row to the position to maintain the sort. Table must already be sorted by the sort criteria. | |||
'''[[PositionLastRow|PositionLastRow($R,$1,$2,$3,$4)]]''' | |||
$R = Target | |||
$1 = Column 1 | |||
$2 = Column 2 | |||
$3 = Column 3 | |||
$4 = Column 4 | |||
=== PurgeDuplicateRows === | |||
Removes any identical rows from the given table | |||
'''[[PurgeDuplicateRows|PurgeDuplicateRows($R)]]''' | |||
$R = Target | |||
=== ReverseSearch === | |||
Decrement the result attribute from first to last until the condition is true. If the search fails, returns ast_index – 1 or 0 if 'Zero On Fail' is true. | |||
'''[[ReverseSearch|$R = ReverseSearch($F,$1,$2,$3)]]''' | |||
$R = Result | |||
$1 = First Index | |||
$2 = Last Index | |||
$3 = Zero On Fail | |||
$F = Condition | |||
=== Search === | |||
Increment the result attribute from first to last until the condition is true. If the search fails, returns 1 + last_index or 0 if 'Zero On Fail' is true. | |||
'''[[Search|$R = Search($F,$1,$2,$3)]]''' | |||
$R = Result | |||
$1 = First Index | |||
$2 = Last Index | |||
$3 = Zero On Fail | |||
$F = Condition | |||
=== SetCellBackgroundColor === | |||
Sets the background color for the cell. | |||
'''[[SetCellBackgroundColor|SetCellBackgroundColor($1,$2)]]''' | |||
$1 = Table Cell | |||
$2 = Color Value | |||
=== SetCellFreeText === | |||
Sets the free text (not bound by label text rules) for a table cell | |||
'''[[SetCellFreeText|SetCellFreeText($R,$1)]]''' | |||
$R = Target Cell | |||
$1 = Source Cell | |||
=== SetCellTextColor === | |||
Sets the text color for the cell | |||
'''[[SetCellTextColor|SetCellTextColor($1,$2)]]''' | |||
$1 = Table Cell | |||
$2 = Color Value | |||
=== SetColAlignment === | |||
Enables a column's text alignment to be changed | |||
'''[[SetColAlignment|SetColumnAlignment($R,$1)]]''' | |||
$R = Target Column | |||
$1 = Align Mode | |||
=== SetColSecondTitle === | |||
Sets the text of the second title row for the given column | |||
'''[[SetColSecondTitle|SetColumnSecondTitle($R,$1)]]''' | |||
$R = Target Column | |||
$1 = Title Text | |||
=== SetColTitle === | |||
Set the title text of a table column | |||
'''[[SetColTitle|SetColumnTitle($R,$1)]]''' | |||
$R = Target Column | |||
$1 = Title Text | |||
=== SetColTupleName === | |||
Sets the name used to internally identify a column | |||
'''[[SetColTupleName|SetColumnTupleName($R,$1)]]''' | |||
$R = Target Column | |||
$1 = Tuple Text | |||
=== SetColumnProperty === | |||
Set a property of a table column | |||
'''[[SetColumnProperty|SetColumnProperty($1,$2,$3)]]''' | |||
$1 = Table Column | |||
$2 = Property Label | |||
$3 = Property Value | |||
=== SetColumnTip === | |||
Sets the tool tip of a table column | |||
'''[[SetColumnTip|SetColumnTip($R,$1)]]''' | |||
$R = Column | |||
$1 = Tip Text | |||
=== SetColWidth === | |||
Sets the formatting width of a table column | |||
'''[[SetColWidth|SetColWidth($R,$1)]]''' | |||
$R = Target Column | |||
$1 = Column Width | |||
=== SetTableRowHeight === | |||
Sets the height of table rows | |||
'''[[SetTableRowHeight|SetTableRowHeight($1,$2)]]''' | |||
$1 = Target Table | |||
$2 = Row Height | |||
=== SetTableTitle === | |||
Set the title text of the table from the label | |||
'''[[SetTableTitle|SetTableTitle($R,$1)]]''' | |||
$R = Target Table | |||
$1 = Title Text | |||
=== ShiftCol === | |||
Shift the columns in a table | |||
'''[[ShiftCol|ShiftColumn($R,$1,$2)]]''' | |||
$R = Result | |||
$1 = Source | |||
$2 = Shift <+ -> | |||
=== ShiftRow === | |||
Shift the rows in a table | |||
'''[[ShiftRow|ShiftRow($R,$1,$2)]]''' | |||
$R = Result | |||
$1 = Source | |||
$2 = Shift ^+ -v | |||
=== Sort === | |||
Sort table by up to 4 columns. If the column index is -ve, it reverses the sort order for that column. | |||
'''[[Sort|Sort($R,$1,$2,$3,$4)]]''' | |||
$R = Target | |||
$1 = Column 1 | |||
$2 = Column 2 | |||
$3 = Column 3 | |||
$4 = Column 4 | |||
=== SumIFMatch === | |||
Sums values in Data Column for rows where Match Column matches Match Key | |||
'''[[SumIFMatch|$R = SumIFMatch($1,$2,$3)]]''' | |||
$R = Result | |||
$1 = Match Column | |||
$2 = Match Key | |||
$3 = Data Column | |||
=== TableReferenceSet === | |||
Returns non zero if the reference resolves to a table | |||
'''[[TableReferenceSet|$R = TableReferenceSet($1)]]''' | |||
$R = Result | |||
$1 = Item Table Ref | |||
=== TableSortDialog === | |||
Enables the user to set up and perform a sort using the table sort dialog | |||
'''[[TableSortDialog|TableSortDialog($R)]]''' | |||
$R = Target | |||
=== UpdateColumnRefs === | |||
Re-initialises column labels for references to a table | |||
'''[[UpdateColumnRefs|UpdateColumnRefs($1)]]''' | |||
$1 = Table | |||
== Table View == | |||
=== ClearFilter === | |||
Clear filter settings for a table view | |||
'''[[ClearFilter|ClearFilter($1,$2)]]''' | |||
$1 = Table | |||
$2 = Panel | |||
=== CopyAllFromView === | |||
Copies the entire contents of a table view. Any current selection is ignored and left intact. | |||
'''[[CopyAllFromView|CopyAllFromView($1,$2,$3)]]''' | |||
$1 = Table | |||
$2 = Panel | |||
$3 = Col Labels | |||
=== CopyFromView === | |||
Copies the current cell or selection from a specified table view just as if CTRL-C was pressed | |||
'''[[CopyFromView|CopyFromView($1,$2)]]''' | |||
$1 = Table | |||
$2 = Panel | |||
=== DeleteView === | |||
Deletes view during run. Data is the table, attribute the view is for. Panel is where the view is located. | |||
'''[[DeleteView|DeleteView($1,$2,$3,$4)]]''' | |||
$1 = Data | |||
$2 = Panel | |||
$3 = View Type | |||
$4 = Index | |||
=== GetColumnFilter === | |||
Gets any active column filter for a table view | |||
'''[[GetColumnFilter|$R = GetColumnFilter($1,$2)]]''' | |||
$R = Text/Label | |||
$1 = Column | |||
$2 = Panel | |||
=== GetFilteredRows === | |||
Retrieves the filter mapping of view rows to actual rows into the list table | |||
'''[[GetFilteredRows|GetFilteredRows($1,$2,$3)]]''' | |||
$1 = Filter List | |||
$2 = Table | |||
$3 = Panel | |||
=== GetTableView === | |||
Read columns of a table view into another table | |||
'''[[GetTableView|GetTableView($1,$2,$3)]]''' | |||
$1 = View Table | |||
$2 = View Panel | |||
$3 = Config Table | |||
=== GetViewProperty === | |||
Retrieves a property of a view of a table on a given panel. Index specifies which view and is useful when multiple exist. | |||
'''[[GetViewProperty|$R = GetViewProperty($1,$2,$3,$4,$5)]]''' | |||
$R = Result | |||
$1 = Table | |||
$2 = Panel | |||
$3 = Property | |||
$4 = View Type | |||
$5 = Index | |||
=== NearestPoint === | |||
Returns the row of the closest point on a Log Driven Display. If Overlay is non zero, only that overlay is checked. Max Distance sets the largest distance that will be considered in the matching. With no match, the function returns 0. | |||
'''[[NearestPoint|$R = NearestPoint($1,$2,$3,$4,$5,$6)]]''' | |||
$R = Result | |||
$1 = Table | |||
$2 = Panel | |||
$3 = X | |||
$4 = Y | |||
$5 = Overlay | |||
$6 = Max Distance | |||
=== PasteIntoView === | |||
Pastes the system clipboard into a table view starting at the specified Top Left cell. Returns zero on success | |||
'''[[PasteIntoView|$R = PasteIntoView($1,$2,$3,$4,$5,$6,$7)]]''' | |||
$R = Error Result | |||
$1 = Table | |||
$2 = Panel | |||
$3 = TL Row | |||
$4 = TL Col | |||
$5 = Options | |||
$6 = Rows Read | |||
$7 = Cols Read | |||
=== ReFilterTableView === | |||
Reapply any active filters to the current data in the table | |||
'''[[ReFilterTableView|ReFilterTableView($1,$2)]]''' | |||
$1 = Table | |||
$2 = Panel | |||
=== SetCellColor === | |||
Set text and background colours for cells, supporting doing entire columns, rows or tables as well. In all cases the per cell colour is set. | |||
'''[[SetCellColor|SetCellColor($1,$2,$3)]]''' | |||
$1 = Cell | |||
$2 = TextColor | |||
$3 = BackColor | |||
=== SetColumnFilter === | |||
Sets a column filter text for a table view. The filter needs to be reapplied once all the columns have been set. | |||
'''[[SetColumnFilter|SetColumnFilter($R,$1,$2)]]''' | |||
$R = Column | |||
$1 = Text | |||
$2 = Panel | |||
=== SetTableView === | |||
Set columns that a table view will display | |||
'''[[SetTableView|SetTableView($1,$2,$3)]]''' | |||
$1 = View Table | |||
$2 = View Panel | |||
$3 = Config Table | |||
=== SetTableViewColScroll === | |||
Sets the column scroll of a view for a table on a given panel | |||
'''[[SetTableViewColScroll|SetTableViewColScroll($1,$2,$3)]]''' | |||
$1 = Table | |||
$2 = Panel | |||
$3 = Value | |||
=== SetTableViewRowScroll === | |||
Sets the row scroll of a view for a table on a given panel | |||
'''[[SetTableViewRowScroll|SetTableViewRowScroll($1,$2,$3)]]''' | |||
$1 = Table | |||
$2 = Panel | |||
$3 = Value | |||
=== SetViewFilterRows === | |||
Sets the rows that a table view on a panel will display. Filter List is a column of row numbers. | |||
'''[[SetViewFilterRows|SetViewFilterRows(($1,$2,$3)]]''' | |||
$1 = Filter List | |||
$2 = Table | |||
$3 = Panel | |||
=== SetViewProperty === | |||
Sets a property of a view of a table on a given panel. Index specifies which view and is useful when multiple exist. | |||
'''[[SetViewProperty|SetViewProperty($1,$2,$3,$4,$5,$6)]]''' | |||
$1 = Table | |||
$2 = Panel | |||
$3 = Property | |||
$4 = Value | |||
$5 = View Type | |||
$6 = Index | |||
=== TableViewColScroll === | |||
Reads the column scroll of a view for a table on a given panel | |||
'''[[TableViewColScroll|$R = TableViewColScroll($1,$2)]]''' | |||
$R = Target | |||
$1 = Table | |||
$2 = Panel | |||
=== TableViewRows === | |||
Reads the number of rows in a table view. If a filter is set, this may differ from the number of rows in the table | |||
'''[[TableViewRows|$R = TableViewRows($1,$2)]]''' | |||
$R = Target | |||
$1 = Table | |||
$2 = Panel | |||
=== TableViewRowScroll === | |||
Reads the row scroll of a view for a table on a given panel | |||
'''[[TableViewRowScroll|$R = TableViewRowScroll($1,$2)]]''' | |||
$R = Target | |||
$1 = Table | |||
$2 = Panel | |||
=== TableViewVisibleCols === | |||
Reads the number of visible columns in a table view | |||
'''[[TableViewVisibleCols|$R = TableViewVisibleCols($1,$2)]]''' | |||
$R = Target | |||
$1 = Table | |||
$2 = Panel | |||
=== TableViewVisibleRows === | |||
Reads the number of visible rows in a table view | |||
'''[[TableViewVisibleRows|$R = TableViewVisibleRows($1,$2)]]''' | |||
$R = Target | |||
$1 = Table | |||
$2 = Panel | |||
== Time == | |||
=== AdvanceToTimeDialog === | |||
Enables user to use the advance to time dialog. If Absolute is set, it defaults to an absolute time advance otherwise it defaults to a relative interval. Time is interpreted accordingly depending on Absolute, as an interval or as an absolute time. For an Absolute advance, if its zero, the clock value is the default instead of the model start time. | |||
'''[[AdvanceToTimeDialog|AdvanceToTimeDialog($1,$2)]]''' | |||
$1 = Absolute | |||
$2 = Time | |||
=== DayOfMonth === | |||
Returns the day of the month, starting at 1 | |||
'''[[DayOfMonth|$R = DayOfMonth($1)]]''' | |||
$R = Result | |||
$1 = Time | |||
=== DayOfWeek === | |||
Returns the day of the week, starting at 1 for Sunday | |||
'''[[DayOfWeek|$R = DayOfWeek($1)]]''' | |||
$R = Result | |||
$1 = Time | |||
=== DaysInDateMonth === | |||
Returns how many days in the month of the absolute time | |||
'''[[DaysInDateMonth|$R = DaysInDateMonth($1)]]''' | |||
$R = Result | |||
$1 = Time | |||
=== FormDate === | |||
Computes the absolute time representing midnight on the given date | |||
'''[[FormDate|$R = FormDate($1,$2,$3)]]''' | |||
$R = Result | |||
$1 = Date | |||
$2 = Month | |||
$3 = Year | |||
=== GetDate === | |||
Extracts the date from a date/time | |||
'''[[GetDate|$R = GetDate($1)]]''' | |||
$R = Result | |||
$1 = Date/Time | |||
=== HourOfDay === | |||
Returns the hour into the current day of the time, starting at 0 | |||
'''[[HourOfDay|$R = HourOfDay($1)]]''' | |||
$R = Result | |||
$1 = Time | |||
=== HourOfDay+1 === | |||
Returns the hour into the current day of the time, starting at 1 instead of 0 | |||
'''[[HourOfDay+1|$R = HourOfDay_1($1)]]''' | |||
$R = Result | |||
$1 = Time | |||
=== IncrementByMonths === | |||
Increments the date by one or more months, attempting to keep the same day of month | |||
'''[[IncrementByMonths|IncrementByMonths($R,$1)]]''' | |||
$R = Result | |||
$1 = # of months | |||
=== MonthOfYear === | |||
Returns the month of the year, starting at 1 for January | |||
'''[[MonthOfYear|$R = MonthOfYear($1)]]''' | |||
$R = Result | |||
$1 = Time | |||
=== TimeOfDay === | |||
Returns the number of seconds into the current day of the time | |||
'''[[TimeOfDay|$R = TimeOfDay($1)]]''' | |||
$R = Result | |||
$1 = Time | |||
=== WeekOfYear === | |||
Returns the week of the year, starting at 1 | |||
'''[[WeekOfYear|$R = WeekOfYear($1)]]''' | |||
$R = Result | |||
$1 = Time | |||
=== YearOfDate === | |||
Returns the year of the given calendar time | |||
'''[[YearOfDate|$R = YearOfDate($1)]]''' | |||
$R = Result | |||
$1 = Time | |||
== Tuple == | |||
=== DecodeMultiLabelToTuple === | |||
Extracts the fields of a multi-label to item attributes with names matching the label lists in the multi-label | |||
'''[[DecodeMultiLabelToTuple|DecodeMultiLabelToItem($R)]]''' | |||
$R = Target | |||
=== EncodeItemToMultiLabel === | |||
Combines item attributes to form a multi-label, for item attributes with names matching the label lists in the multi-label | |||
'''[[EncodeItemToMultiLabel|EncodeItemToMultiLabel($R)]]''' | |||
$R = Target | |||
=== MatchedCopyRow === | |||
Copy rows between tables where the column names match | |||
'''[[MatchedCopyRow|MatchedCopyRow($R,$1)]]''' | |||
$R = Result | |||
$1 = Set To | |||
=== TupleAppendFromCarried === | |||
Append a row to the table and for it, set table columns from a carried item's attributes with the same name | |||
'''[[TupleAppendFromCarried|TupleAppendFromCarried($R,$1)]]''' | |||
$R = Table | |||
$1 = Carried Index | |||
=== TupleAppendFromItem === | |||
Append a row into the table and for it, set table columns from item attributes with the same name | |||
'''[[TupleAppendFromItem|TupleAppendFromItem($R)]]''' | |||
$R = Table | |||
=== TupleCarriedToRow === | |||
For the specified row, set table columns from a carried item's attributes with the same name | |||
'''[[TupleCarriedToRow|TupleCarriedToRow($R,$1)]]''' | |||
$R = Row | |||
$1 = Carried Index | |||
=== TupleDecrementToRow === | |||
For the specified row, decrement cells with the values of item attributes with matching names | |||
'''[[TupleDecrementToRow|TupleDecrementFromRow($R)]]''' | |||
$R = Row | |||
=== TupleExtractToCarried === | |||
For the specified row, set a carried item's attributes from table columns with the same name then delete the row | |||
'''[[TupleExtractToCarried|TupleExtractToCarried($R,$1)]]''' | |||
$R = Row | |||
$1 = Carried Index | |||
=== TupleExtractToItem === | |||
For the specified row, set item attributes from table columns with the same name then delete the row | |||
'''[[TupleExtractToItem|TupleExtractToItem($R)]]''' | |||
$R = Row | |||
=== TupleIncrementToRow === | |||
For the specified row, increment cells with the values of item attributes with matching names | |||
'''[[TupleIncrementToRow|TupleIncrementToRow($R)]]''' | |||
$R = Row | |||
=== TupleInsertFromCarried === | |||
Insert a row into the table and for it, set table columns from a carried item's attributes with the same name | |||
'''[[TupleInsertFromCarried|TupleInsertFromCarried($R,$1)]]''' | |||
$R = Row | |||
$1 = Carried Index | |||
=== TupleInsertFromItem === | |||
Insert a row into the table and for it, set table columns from item attributes with the same name | |||
'''[[TupleInsertFromItem|TupleInsertFromItem($R)]]''' | |||
$R = Row | |||
=== TupleItemToRow === | |||
For the specified row, set table columns from item attributes with the same name | |||
'''[[TupleItemToRow|TupleItemToRow($R)]]''' | |||
$R = Row | |||
=== TupleRowToCarried === | |||
For the specified row, set a carried item's attributes from table columns with the same name | |||
'''[[TupleRowToCarried|TupleRowToCarried($R,$1)]]''' | |||
$R = Row | |||
$1 = Carried Index | |||
=== TupleRowToItem === | |||
For the specified row, set item attributes from table columns with the same name | |||
'''[[TupleRowToItem|TupleRowToItem($R)]]''' | |||
$R = Row | |||
== UI == | |||
=== AddListToMenu === | |||
Appends a new menu to the modeller custom menu bar | |||
'''[[AddListToMenu|AddListToMenu($1,$2)]]''' | |||
$1 = Menu Name | |||
$2 = Item List | |||
=== BringToFront === | |||
If a panel is open in a popup window, bring that popup to the front in the window z-order. | |||
'''[[BringToFront|BringToFront($1)]]''' | |||
$1 = Panel | |||
=== BrowseFile === | |||
Browse for a file. Returns non zero if one chosen. FileName sets an initial file, Options can combine:1 to enable a save-style dialog (default is load) and 2 to enable stay in directory (default is to return to working directory). Use s.LastAccessedDataFile and s.LastAccessedDataFilePath to access the file and full path spec of the file selected. | |||
'''[[BrowseFile|$R = BrowseFile($1,$2)]]''' | |||
$R = File Chosen | |||
$1 = FileName | |||
$2 = Options | |||
=== ClearCustomMenubar === | |||
Removes all menu items from the modeller custom menu bar | |||
'''[[ClearCustomMenubar|ClearCustomMenubar]]''' | |||
=== Dialog === | |||
Show a dialog box for the user to interact with | |||
'''[[Dialog|$R = Dialog($F)]]''' | |||
$R = Result | |||
$F = Dialog | |||
=== DragIcon === | |||
Displays an icon and enables user to position it. X and Y are the starting position (center) in panel co-ordinates. If a move is performed, new co-ordinates are written to these values. Icon selects an image which defines the bounding box. Returns non zero if the move was not cancelled. Supports being invoked with mouse down or up. Keys also supported. | |||
'''[[DragIcon|$R = DragIcon($1,$2,$3,$4)]]''' | |||
$R = result | |||
$1 = X Value | |||
$2 = Y Value | |||
$3 = Panel | |||
$4 = Icon Name | |||
=== HandlePopupMenu === | |||
Interprets columns in table as depth/name/index and generates a popup menu. Returns index of selected item or 0 if cancelled | |||
'''[[HandlePopupMenu|$R = HandlePopupMenu($1)]]''' | |||
$R = Result | |||
$1 = Table | |||
=== InitiateFieldEdit === | |||
Starts editing attribute/cell views on a panel, as if the user clicked on the first one | |||
'''[[InitiateFieldEdit|InitiateFieldEdit($1)]]''' | |||
$1 = Target Panel | |||
=== MessageBox === | |||
Displays a standard message box with an OK button | |||
'''[[MessageBox|MessageBox($1,$2)]]''' | |||
$1 = Text | |||
$2 = Title | |||
=== MessageBoxConfirm === | |||
Displays a standard message box with OK (1) / Cancel (0) Buttons | |||
'''[[MessageBoxConfirm|$R = MessageBoxConfirm($1,$2)]]''' | |||
$R = Result | |||
$1 = Text | |||
$2 = Title | |||
=== MessageBoxYN === | |||
Displays a standard message box with Yes (1) / No (0) Buttons | |||
'''[[MessageBoxYN|$R = MessageBoxYN($1,$2)]]''' | |||
$R = Result | |||
$1 = Text | |||
$2 = Title | |||
=== MessageBoxYNC === | |||
Displays a standard message box with Yes (1) / No (0) / Cancel (-1) buttons | |||
'''[[MessageBoxYNC|$R = MessageBoxYNC($1,$2)]]''' | |||
$R = Result | |||
$1 = Text | |||
$2 = Title | |||
=== SetMenuBar === | |||
Interprets columns in table as depth/name/index and builds a custom menu bar | |||
'''[[SetMenuBar|SetMenuBar($1)]]''' | |||
$1 = Table |
Revision as of 12:08, 18 April 2017
This page lists all of the routine operations available in Planimate as of 8.54.0. The operations all link to pages with their name but most of these pages will not exist. Where an operation warrants further discussion, these links can be followed and the pages created.
This page is automatically created. Please do not edit it.
Arithmetic
Add
Add two values/rows/columns/tables
$R = Add($1,$2) $R = Result $1 = Value 1 $2 = Value 2
Clear
Set the target value to its initialising value
$R = CLEAR $R = Clear
Dec ( -= )
Decrement first value/row/column/table by second value
$R -= $1 $R = Result $1 = Decr. by
Div
Divide values/rows/columns/tables
$R = Div($1,$2) $R = Result $1 = Value 1 $2 = Value 2
Inc ( += )
Increment first value/row/column/table by second value
$R += $1 $R = Result $1 = Incr. by
InterpolateValue
Interpolates a value between value1 and value2 based on ratio (0.0 gives value1, 1.0 gives value2)
$R = InterpolateValue($1,$2,$3) $R = Result $1 = Value1 $2 = Value2 $3 = Ratio
Mul
Multiply values/rows/columns/tables
$R = Mul($1,$2) $R = Result $1 = Value 1 $2 = Value 2
RemapValue
Remaps value through table with row range, To Row = 0 uses row count
$R = RemapValue($1,$2,$3,$4,$5) $R = Result $1 = Map Table $2 = Value $3 = Map Column $4 = From Row $5 = To Row
Scale ( *= )
Scale first value/row/column/table by second value
$R *= $1 $R = Result $1 = Scale by
Set ( = )
Assign a value/row/column/table to another of the same type and size
$R = $1 $R = Result $1 = Set To
Sub
Subtract two values/rows/columns/tables
$R = Sub($1,$2) $R = Result $1 = Value 1 $2 = Value 2
Control
BREAKLOOP
Immediately exits an ITERATE loop
BREAKLOOP
CASE
Tests a condition and if true, executes the code following until another CASE or DEFAULT is reached
CASE ($F) $F = CASE
CONTINUE
Immediately processes the next iteration in a loop/while, skipping the rest of the code
CONTINUE
DEFAULT
Marks code that should be executed if no CASES match in a SELECT block
DEFAULT
ELSE
Enables an alternate block of code to execute if an IF test fails to be true
ELSE
ENDIF
Marks the end of an IF block
ENDIF
ENDLOOP
Marks the end of an ITERATE block
ENDLOOP
ENDSELECT
Marks the end of a SELECT block
ENDSELECT
ENDWHILE
Marks the end of a WHILE block
ENDWHILE
IF
Executes lines following only if the condition is true
IF ($F) $F = IF
ITERATE
Repeats a block of routine lines, incrementing an attribute over a range
ITERATE ($R,$1,$2) $R = Index Using $1 = First Value $2 = Last Value
ITERATEROWS
Iterate Row Index over all the rows in the table
ITERATEROWS ($R,$1) $R = Row Index $1 = Table
RETURN
Returns from the routine
RETURN
REVERSEITERATE
Iterate the result attribute over the given range in descending order
REVERSEITERATE ($R,$1,$2) $R = Index Using $1 = First Value $2 = Last Value
SELECT
Starts a block where CASEs can be used to execute different code for conditions tested
SELECT
WHILE
Repeats a block of lines until the condition is false; the condition is tested first
WHILE ($F) $F = WHILE
Display
Animate
Animate a model object to a new screen position
Animate($1,$2,$3) $1 = Object $2 = X Pos $3 = Y Pos
ChooseColor
Enables selection of a colour
$R = ChooseColor($1) $R = Selected Colour $1 = Initial Colour
ChoosePaletteColor
Shows the colour palette selector dialog to select a given palette colour
$R = ChoosePaletteColor($1) $R = Result $1 = Selection Color
ColorPaletteEntry
Returns the RGB color for a given color index in the Planimate color palette
$R = ColorPaletteEntry($1) $R = Result $1 = Palette Index
FitPanelToArea
Fits the panel to the area of its contents with a margin
FitPanelToArea($1,$2) $1 = Target Panel $2 = Margin
ForceRepaint
Repaints all windows; use with care, it can cause slowdown
ForceRepaint
ForceRepaintPanel
Repaints the specified panel
ForceRepaintPanel($1) $1 = Panel
GetPanelProperty
Read a property of a panel, specified using _panel_properties list
$R = GetPanelProperty($1,$2) $R = Result $1 = Panel $2 = Property Label
GetSystemColorRGB
Returns the RGB color for a given color in the Windows system color palette
$R = GetSystemColorRGB($1) $R = Result $1 = Value
GetViewportScrollX
Get the x scroll of a viewport on a given panel
$R = GetViewportScrollX($1,$2) $R = Result $1 = Panel With Viewport $2 = Panel Inside Viewport
GetViewportScrollY
Get the y scroll of a viewport on a given panel
$R = GetViewportScrollY($1,$2) $R = Result $1 = Panel With Viewport $2 = Panel Inside Viewport
GetViewportZoom
Get the zoom factor of a viewport on a given panel
$R = GetViewportZoom($1,$2) $R = Result $1 = Panel With Viewport $2 = Panel Inside Viewport
GraphXOffset
Read the offset of a graph view for a table on the given panel
$R = GraphXOffset($1,$2) $R = Target $1 = Table $2 = Panel
GraphXWidth
Read the width of a graph view for a table on the given panel
$R = GraphXWidth($1,$2) $R = Target $1 = Table $2 = Panel
HidePanel
Hides any popup for the given panel
HidePanel($1) $1 = Target Panel
HideTableEditor
Close any open table editor for the given table
HideTableEditor($1) $1 = Table
MakeVisible
Makes the specified panel the active panel on the main window
MakeVisible($1) $1 = Target Subsystem
PanelWindowLeft
Returns the left window co-ordinate of a popup panel
$R = PanelWindowLeft($1) $R = Result $1 = Panel
PanelWindowTop
Returns the top window co-ordinate of a popup panel
$R = PanelWindowTop($1) $R = Result $1 = Panel
PrintPanel
Queues the nominated panel for printing; additional panels can be printed by intercepting the _Panel Printed broadcast
PrintPanel($1) $1 = Target Subsystem
ReFitPopup
Resize an already open popup to panel's changed size
ReFitPopup($1) $1 = Panel
RepaintObjects
Initiates a repaint of dynamic object icons and the animation layer only; faster than a full force repaint and intended for animation. 'Panel' can be used to specify a viewport etc, if zero the current panel is used. If 'SpeedRegulate' is non zero, checks are performed to prevent successive repaints occurring faster than about 60 frames a second.
RepaintObjects($1,$2) $1 = Panel $2 = SpeedRegulate
RepaintView
Repaints contents of a view
RepaintView($1,$2,$3,$4) $1 = Table $2 = Panel $3 = View Type $4 = Index
SetActivityString
Sets text in the status bar activity area
SetActivityString($1) $1 = Activity Text
SetColorPaletteEntry
Sets the RGB color for a given color in the Planimate color palette
SetColorPaletteEntry($1,$2) $1 = Palette Index $2 = RGB Value
SetGraphXOffset
Set the offset of a graph view for a table on the given panel
SetGraphXOffset($1,$2,$3) $1 = Table $2 = Panel $3 = Value
SetGraphXWidth
Set the width of a graph view for a table on the given panel
SetGraphXWidth($1,$2,$3) $1 = Table $2 = Panel $3 = Value
SetIconRemote
Set icon for an item somewhere else in the model. Location can be a portal or object id containing the item. If its 0 the entire model is searched, this is potentially very slow. Icon Name should not include any extention, PL will search DBs for it.
SetIconRemote($1,$2,$3) $1 = Item ID $2 = Location $3 = Icon Name
SetObjectPos
Sets the position and scaling of a dynamic object in one operation. The position is the centre of the object and the scaling is a percentage which should normally be 100 for no scaling.
SetObjectPos($1,$2,$3,$4,$5) $1 = Object $2 = X Pos $3 = Y Pos $4 = X Scale $5 = Y Scale
SetPanelColor
Sets the background color of a panel
SetPanelColor($1,$2) $1 = Panel $2 = Color
SetPanelProperty
Set a property of a panel, specified using _panel_properties list
SetPanelProperty($1,$2,$3) $1 = Panel $2 = Property Label $3 = Value
SetPanelTransparency
Enables the use of transparency for a panel, value 0..254 or 255 to disable transparency
SetPanelTransparency($1,$2) $1 = Panel $2 = Transparency
SetPortalIcon
Sets icon for portal's current state.
SetPortalIcon($1,$2) $1 = Portal ID $2 = Icon Name
SetPortalTip
Sets tip text for Portal to Text
SetPortalTip($1,$2) $1 = Portal ID $2 = Text
SetStatusItemAreaString
Sets the text in the status bar area where item class names are displayed during editing
SetStatusItemAreaString($1) $1 = Item Area Text
SetViewportScroll
Set the x and y scroll of a viewport on a given panel
SetViewportScroll($R,$1,$2,$3) $R = Panel With Viewport $1 = Panel Inside Viewport $2 = X Offset $3 = Y Offset
SetViewportTarget
Set the target of a viewport. Current Panel identifies the viewport and can be zero of the containing panel only has 1 viewport. New Panel sets the new panel to display, 0 makes the viewport hidden in user mode.
SetViewportTarget($1,$2,$3) $1 = Panel With Viewport $2 = Current Panel Inside Viewport $3 = New Panel Inside Viewport
SetViewportZoom
Set the zoom factor of a viewport on a given panel
SetViewportZoom($R,$1,$2) $R = Panel With Viewport $1 = Panel Inside Viewport $2 = Zoom Value
SetWindowTitle
Sets the title of the main window
SetWindowTitle($1) $1 = Title Text
ShowAboutBox
Shows the Planimate about box
ShowAboutBox()
ShowPopupPanel
Opens the given panel in a separate window at the specified window co-ordinates
ShowPopupPanel($1,$2,$3) $1 = Target Panel $2 = X Position $3 = Y Position
ShowTableEditor
Open table editor for the given table
ShowTableEditor($1) $1 = Table
SwapPopupPanel
Swaps which panels are visible in a popup panel without closing/reopening it
SwapPopupPanel($1,$2) $1 = Target Panel $2 = Replace With
File
AcquireFileLock
Returns zero if file lock acquired, otherwise if target is text its text is set to the lock failure reason
$R = AcquireFileLock($1,$2) $R = Result $1 = File $2 = New Lock Text
CopyFile
Copies file
$R = CopyFile($1,$2) $R = Result $1 = From $2 = To
CreateFolder
Create folder, if create path set then upper levels created as well
$R = CreateFolder($1,$2) $R = Result $1 = File $2 = Create Path
DeleteFile
Deletes file
$R = DeleteFile($1) $R = Result $1 = File
DeleteFolder
Deletes empty folder, if subfolders set then empty subfolders also deleted
$R = DeleteFolder($1,$2) $R = Result $1 = File $2 = Subfolders
ExtractFileExtention
Extracts the file extention from a path/file spec. If Result is a label list attribute, and its value is 0 then a new label is added and Result gets assigned to the index, otherwise if its non zero the label indicated by the index is changed. If Result is text formatted, the text is set directly.
$R = ExtractFileExtention($1) $R = Result $1 = Path/File
ExtractFileName
Extracts the file name from a full path/file spec. If Result is a label list attribute, and its value is 0 then a new label is added and Result gets assigned to the index, otherwise if its non zero the label indicated by the index is changed. If Result is text formatted, the text is set directly.
$R = ExtractFileName($1) $R = Result $1 = Path/File
ExtractPathName
Extracts the file name from a full path/file spec. If Result is a label list attribute, and its value is 0 then a new label is added and Result gets assigned to the index, otherwise if its non zero the label indicated by the index is changed. If Result is text formatted, the text is set directly.
$R = ExtractPathName($1) $R = Result $1 = Path/File
FileColumns
Number of columns in file or -1. Supports TAB or comma delimited data.
$R = FileColumns($1,$2) $R = Result $1 = File $2 = Comma Delimit
FileLines
Number of lines in file or -1
$R = FileLines($1) $R = Result $1 = File
FilesInFolder
Reads a list of files in the path/folder and puts them into the target label list. The path can include a wildcard file name like c:\Data\*.txt
$R = FilesInFolder($1) $R = Target List $1 = Path/Wildcard
FilesInHierarchy
Retrieves the files in all folders starting at Path/File, placing the path names into the target label list.
$R = FilesInHierarchy($1) $R = Target List $1 = Path/File
FileSize
Returns size of file or -1 if not found
$R = FileSize($1) $R = Result $1 = File
PlaySound
Play windows sound file. Will extract WAV files from DB if required.
PlaySound($1,$2) $1 = Sound File $2 = Wait Finish
ReadFromFile
Reads the reference from file. Data can be a direct reference or a data object label. Options can be a combination of values from the _fileoptions label list.
$R = ReadFromFile($1,$2,$3,$4,$5,$6,$7) $R = Result $1 = File $2 = Data $3 = Options $4 = File Row $5 = File Column $6 = Row Limit $7 = Column Limit
ReadViewFromFile
Reads file, following format of table view. The table reference can be direct or a data object. The options can be a combination of values from the _fileoptions label list.
$R = ReadViewFromFile($1,$2,$3,$4,$5) $R = Result $1 = File $2 = Table $3 = Panel $4 = View Index $5 = Options
ReleaseFileLock
Returns zero if file lock is released (it must be yours to release) otherwise if target is text its text is set to the lock failure reason
$R = ReleaseFileLock($1) $R = Result $1 = File
RenameFile
Renames file
$R = RenameFile($1,$2) $R = Result $1 = From $2 = To
RunCommand
Runs a new process or opens a file via the shell
$R = RunCommand($1,$2,$3,$4,$5) $R = Result $1 = Command $2 = Use shell $3 = Minimised $4 = Wait Complete $5 = Keep Front
SaveImage
Saves the panel image to a file or to the clipboard if the file name is empty or “-”. A memory save creates/updates an icon in the icon cache that paint button states and object icons can use.
$R = SaveImage($1,$2,$3) $R = Result $1 = File $2 = Panel $3 = In-Memory
WriteToFile
Writes the reference to file. Data can be a direct reference or a data object label. Options can be a combination of values from the _fileoptions label list.
$R = WriteToFile($1,$2,$3) $R = Result $1 = File $2 = Data $3 = Options
WriteViewToFile
Writes table view to file. The table reference can be direct or a data object. The options can be a combination of values from the _fileoptions label list.
$R = WriteViewToFile($1,$2,$3,$4,$5) $R = Result $1 = File $2 = Table $3 = Panel $4 = View Index $5 = Options
Label
AddLabelDialog
Show a dialog so the user can add a label to the given label list
AddLabelDialog($R) $R = Result
AddSubLabel
Makes the new sublabel for the parent label $1 (if it doesn't exist) and returns its index as a sublabel
AddSubLabel($R,$1) $R = Result $1 = Label
ClearLabelList
Removes all labels from a label list
ClearLabelList($1) $1 = Clear Label List
CreateLabelList
Creates a label list with the given name and formats the result attribute to reference it
CreateLabelList($R,$1) $R = Format Result $1 = List Name
CreateLabelListFromColumn
Uses the provided column to provide text for creating a new label list
CreateLabelListFromColumn($R,$1) $R = Target List $1 = Source Column
CreatePanelPortalLabel
Creates a panel label for the subsystem of the given portal object label
$R = CreatePanelPortalLabel($1) $R = New Panel Label $1 = Portal Object Label
CreateSubLabelList
Creates an empty sub label list of an existing label list and formats an attribute to reference it
CreateSubLabelList($R,$1,$2) $R = Format Result $1 = List Name $2 = Parent List
CreateSubsystemObjectLabel
Creates an object label for the portal owning the panel of this routine
$R = CreateSubsystemObjectLabel() $R = New Object Label
DeleteLabel
Deletes the given label from its labellist
DeleteLabel($1) $1 = Label
GetLabelListProperty
Retrieves a property of a label list
$R = GetLabelListProperty($1,$2) $R = Result $1 = LabelList $2 = Property
LabelCount
Returns how many labels in the given label list
$R = LabelCount($1) $R = Result $1 = Label Count
MaxLabelIndex
Returns the highest allocated label index in the given label list
$R = MaxLabelIndex() $R = Result
MinLabelIndex
Returns the lowest allocated label index in the given label list
$R = MinLabelIndex() $R = Result
NextLabelIndex
The next allocated label index for the list or -1 if none
$R = NextLabelIndex($1) $R = Result $1 = Label Index
PrevLabelIndex
The previous allocated label index for the list or -1 if none
$R = PrevLabelIndex($1) $R = Result $1 = Label Index
RedirectLabelList
Globally changes all references to label list 'from' to point to list 'to'. Lists are referenced by name.
RedirectLabelList($1,$2) $1 = From Name $2 = To Name
ReIndexLabelList
Re-indexes all members in a label list so they have ascending and continuous index values
ReIndexLabelList($1) $1 = Re-index Label List
ReIndexLabels
Remaps labels in the given list using 2 columns of matching from and to values
ReIndexLabels($1,$2,$3) $1 = Re-index List $2 = From Values (Col) $3 = To Values (Col)
RemoveSubLabel
Removes the sublabel as a member of the sublabel list
RemoveSubLabel($1) $1 = Label
SetLabelListProperty
Sets a property of a label list
SetLabelListProperty($1,$2,$3) $1 = LabelList $2 = Property $3 = Value
TestLabelIndex
Tests whether an index has been used in a label list
$R = TestLabelIndex($1,$2) $R = Result $1 = Index Value $2 = Label List
Label String
AppendToLabel
Append text to an existing label. Result must be a label list formatted attribute. If its value is 0 then a new label is added and result gets assigned to the index, otherwise the label indicated by the index is changed.
$R = AppendToLabel($1) $R = Result $1 = Source
CreateLabelAlias
Creates a label alias from 'Text' and adds it to the 'Target Label' which must be a label from a label list. Returns non zero if there was a problem creating the alias because 'Text' is already assigned to another label index.
$R = CreateLabelAlias($1,$2) $R = Error Result $1 = Text $2 = Target Label
CreateMD5Hash
Uses the 3 text sources to create an unpredictable hash string
$R = CreateMD5Hash($1,$2,$3) $R = Result $1 = Text $2 = Salt 1 $3 = Salt 2
CropToCharacters
Crop a label to a subset of its text
CropToCharacters($R,$1,$2) $R = Result $1 = From Char $2 = To Char
ExtractIntoFormat
Extracts a substring from a formatted value/label and interprets it in the format of the target. If the target is a label list, it gets added as a label if its not already in that list.
$R = ExtractIntoFormat($1,$2,$3) $R = Result $1 = Label $2 = From Char $3 = To Char
FileSHA
Creates 64 character checksum for file using SHA256. If text_file is 1 then the file is expected to be text and CR characters, if present, are ignored.
$R = FileSHA($1,$2) $R = Result $1 = File $2 = TextFile
FormatIntoLabel
Create a new label with the formatted text of the source
FormatIntoLabel($R,$1) $R = Result $1 = Source
FormatIntoLabelIndex
Creates a label from the text of source and using the provided index
$R = FormatIntoLabelIndex($1,$2) $R = Result $1 = Source $2 = Index
FormatNameIntoLabel
Creates a label from the name of the given object
$R = FormatNameIntoLabel($1) $R = Result $1 = Source
FormattedLabelIndex
Determines if the source text is a label and returns its index if it is
$R = FormattedLabelIndex($1) $R = Result $1 = Source
FormattedWidth
Returns how many characters the referenced data has when it is formatted for display
$R = FormattedWidth($1) $R = Target $1 = Width Of
FormatTitleIntoLabel
Creates a label from the title text of the given object
$R = FormatTitleIntoLabel($1) $R = Result $1 = Source
GetAppDataName
Get a full Users/username/AppData/Roaming path/file including a subfolder and a filename. If Result is text, it is set on success and set empty on failure, otherwise the path is placed in s.LastAccessedDataFilePath and this returns non zero if the folder was created/verified writeable.
$R = GetAppDataName($1,$2) $R = Result $1 = Folder $2 = Filename
GetCharacter
Extracts a character from the formatted value provided and returns the ascii code
$R = GetCharacter($1,$2) $R = Target $1 = String $2 = Character
GetMyDocumentsName
Get a full Users/username/Documents path/file including a subfolder and a filename. If Result is text, it is set on success and set empty on failure, otherwise the path is placed in s.LastAccessedDataFilePath and this returns non zero if the folder was created/verified writeable.
$R = GetMyDocumentsName($1,$2) $R = Result $1 = Folder $2 = Filename
GetProgramName
Get the folder containing the running Planimate EXE and append a filename. If Result is text, it is set to the path, otherwise the path is placed in s.LastAccessedDataFilePath and this returns non zero.
$R = GetProgramName($1) $R = Result $1 = Filename
Get a full ProgramData/AppData/Roaming/file including a subfolder and a filename. If Result is text, it is set on success and set empty on failure, otherwise the path is placed in s.LastAccessedDataFilePath and this returns non zero if the folder was created/verified writeable.
$R = GetSharedAppDataName($1,$2) $R = Result $1 = Folder $2 = Filename
LogMessage
Writes text to the debug logger window and the planimat.dbg file if either enabled. Text can be a text expression including attributes and labels as well as quoted text, combined with the & character.
LogMessage($1) $1 = Text
RemapName
Uses the model ini file remapping to remap text, typically used for filenames. Multiple components can be combined with | separating them.
$R = RemapName($1) $R = Result $1 = Source Text
RemoveFileExtention
Crop label to remove trailing dot and text
RemoveFileExtention($R) $R = Result
RenameLabel
Change the text of a label. Result must be a label list formatted attribute. If its value is 0 then a new label is added and result gets assigned to the index, otherwise the label indicated by the index is changed.
$R = RenameLabel($1) $R = Result $1 = Source
RenameObject
Sets the display name of an object. The name may be adjusted if it is not unique on the panel for that kind of object.
RenameObject($1,$2) $1 = Object $2 = New Name
SetFreeTextTitle
Sets title of free text editor dialog
SetFreeTextTitle($1) $1 = Title Text
Logical
BitAND
Treat values as integers and bitwise AND them (limited to 14 bits of precision)
$R = BitAND($1,$2) $R = Result $1 = Value 1 $2 = Value 2
BitOR
Treat values as integers and bitwise OR them (limited to 14 bits of precision)
$R = BitOR($1,$2) $R = Result $1 = Value 1 $2 = Value 2
BitXOR
Treat values as integers and bitwise XORs them (limited to 14 bits of precision)
$R = BitXOR($1,$2) $R = Result $1 = Value 1 $2 = Value 2
EQ ( == )
Determines if 2 values are numerically close to each other
$R = $1 == $2 $R = Result $1 = Value 1 $2 = Value 2
GE ( >= )
Determines if the first value is greater than or equal to the second
$R = $1 >= $2 $R = Result $1 = Value 1 $2 = Value 2
GT ( > )
Determines if the first value is significantly greater than the second value
$R = $1 > $2 $R = Result $1 = Value 1 $2 = Value 2
LE ( <= )
Determines if the first value is less than or equal to the second
$R = $1 <= $2 $R = Result $1 = Value 1 $2 = Value 2
LT ( < )
Determines if the first value is significantly less than the second value
$R = $1 < $2 $R = Result $1 = Value 1 $2 = Value 2
NEQ ( != )
Determines if 2 values are not numerically close to each otherclose to each other
$R = $1 != $2 $R = Result $1 = Value 1 $2 = Value 2
Message
Broadcast
Sends a broadcast to the entire model. Options can be 0 or a combination of values from the Broadcast Options label list.
Broadcast($1,$2) $1 = Broadcast Index $2 = Broadcast Options
BroadcastScoped
Sends a broadcast to a specified dynamic panel and all under it. Options can be 0 or a combination of values from the Broadcast Options label list.
BroadcastScoped($1,$2,$3) $1 = Broadcast Index $2 = Broadcast Options $3 = Send To Subsystem
BroadcastToPanel
Sends a broadcast to a specified dynamic panel. Options can be 0 or a combination of values from the Broadcast Options label list.
BroadcastToPanel($1,$2,$3) $1 = Broadcast Index $2 = Broadcast Options $3 = Send To Subsystem
ImmediateMessage
Send a message whilst the item waits at the change object
ImmediateMessage($1) $1 = Message Target
ImmediateMessageNamed
Send a message to a specified portal with a specific name whilst the item waits at the change object
ImmediateMessageNamed($1,$2) $1 = Message Target $2 = Message Name
ReleaseWaitingItem
Used to signal a waiting dispatcher on the target panel that a given item should be released
$R = ReleaseWaitingItem($1,$2) $R = Result $1 = Item Index $2 = Scope Panel
ReverseItemDirection
Searches spatial links for the item and if found, reverses the direction of the item
$R = ReverseItemDirection($1,$2) $R = Result $1 = Item Index $2 = Scope Panel
Numeric
abs
Magnitude of a value, without the sign
$R = abs($1) $R = Result $1 = Value 1
Convolve
Performs a convolution between two columns into a preallocated result column. This is useful for combining distributions.”
Convolve($R,$1,$2) $R = Result $1 = Column 1 $2 = Column 2
fmod
Floating point modulus of $1 over base $2
$R = fmod($1,$2) $R = Result $1 = Value 1 $2 = Value 2
max
Determines the greater of 2 values
$R = max($1,$2) $R = Result $1 = Value 1 $2 = Value 2
min
Determines the lesser of 2 values
$R = min($1,$2) $R = Result $1 = Value 1 $2 = Value 2
mod
Integer modulus of $1 over base $2
$R = mod($1,$2) $R = Result $1 = Value 1 $2 = Value 2
Normalise
Rescales data in column so they add up to 1
Normalise($1) $1 = Column
random
Random value between 0 and 1
$R = random($F) $R = Result $F = Set to
round
Integer closest to the value
$R = round($1) $R = Result $1 = Round Value
RoundToN
Round value to the specified number of digits of precision
$R = RoundToN($1,$2) $R = Result $1 = Round Value $2 = Sig. Digits
trunc
Integer equal or lower than the value
$R = trunc($1) $R = Result $1 = Truncate
Paint
BlendColors
Returns the resulting colour (always opaque) you would get if a black surface was painted with Color1 then Color2.
$R = BlendColors($1,$2) $R = Result $1 = Color1 $2 = Color2
CopyPaintObject
Enables a paint object to be copied
$R = CopyPaintObject($1,$2) $R = New Paint Label $1 = Original Paint Label $2 = Destination Panel
CopyPaintProperties
Copies the graphical properties between paint objects
CopyPaintProperties($1,$2) $1 = Paint Object To Update $2 = Original Paint Object
CreateTiles
Creates a tileset from an image. (0,0) is the center of image. Existing tileset file is deleted. Returns 0 on success.
$R = CreateTiles($1,$2,$3,$4) $R = Result $1 = Image File $2 = Tile Set $3 = MaxZoom $4 = Margin Colour
DeleteAllPaintObjects
Delete all paint objects on the given panel
DeleteAllPaintObject($1) $1 = Target Panel
DeleteInheritedPaintObjects
Removes all paint objects which inherit from a given panel
DeleteInheritedPaintObjects($1,$2) $1 = Target Pane $2 = Un Inherit Panel
DeletePaintObject
Deletes a paint object
DeletePaintObject($1,$2) $1 = Paint Label $2 = With Inherited
GetPaintProperty
Read a property of a paint object
$R = GetPaintProperty($1,$2) $R = Result $1 = Paint Object Label $2 = Property Label
InheritPaintObjects
Enables a panel to be populated with paint objects from another panel
InheritPaintObjects($1,$2) $1 = Target Panel $2 = Inherit From Panel
InterpolateColor
Interpolates an RGB color between color1 and color2 based on ratio (0.0 gives color1, 1.0 gives color2)
$R = InterpolateColor($1,$2,$3) $R = Result $1 = Color1 $2 = Color2 $3 = Ratio
LinkPaintObjects
Associate a paint object to a parent so it tracks movement of the parent. Parent and linked are paint objects. Edge values determine which edge/corner is used (1..9, 1=topleft, 2=top, 3=topright etc). Options: 1 auto-delete linked paint object when parent becomes hidden.
LinkPaintObjects($1,$2,$3,$4,$5,$6,$7) $1 = Parent $2 = Linked $3 = Parent Edge $4 = Linked Edge $5 = Offset X $6 = Offset Y $7 = Options
LongLatToXY
Using the Map paint object, Longitude/Latitude co-ordinates are translated to panel X/Y points. Table must contain columns _Long, _Lat, _X and _Y
LongLatToXY($1,$2) $1 = Paint Map Label $2 = Table
MakeRangeVisible
Adjusts the map co-ordinates to make the range of co-ordinates visible regardless of the map view's aspect ratio
MakeRangeVisible($1,$2,$3,$4,$5) $1 = Paint Map Label $2 = Long From $3 = Lat From $4 = Long To $5 = Lat To
PositionPaintObject
Move a paint object given a parent's position. Parent and Paint are paint objects. Edge values determine which edge/corner is used (1..9, 1=topleft, 2=top, 3=topright etc). Parent=0 uses panel edge.
PositionPaintObject($1,$2,$3,$4,$5,$6) $1 = Parent $2 = Paint $3 = Parent Edge $4 = Paint Edge $5 = Offset X $6 = Offset Y
RepaintPaintObject
Repaint a single paint object. Useful if the object's contents have changed but it hasn't moved or changed size. Clear colour can be used to erase under the paint object when anti-aliasing causes blending noise to linger.
RepaintPaintObject($1,$2) $1 = Paint Label $2 = Clear Color
ScaleColor
Scales the R/G/B components of a colour by Scale and adds Offset to each. Scale and Offset are normally 0..255. The alpha is unchanged.
$R = ScaleColor($1,$2,$3) $R = Result $1 = Color $2 = Scale $3 = Offset
SetLongLatXY
Sets paint map to show the given co-ordinate as close as possible to the panel (x,y) point.
SetLongLatXY($1,$2,$3,$4,$5) $1 = Paint Map Label $2 = Longitude $3 = Latitude $4 = X $5 = Y
SetNoteVisible
Shows or hides an RTF note
SetNoteVisible($1,$2) $1 = Paint Object Label $2 = Visibility
SetPaintImage
Sets the image of a paint object
SetPaintImage($1,$2) $1 = Paint Object Label $2 = Set Image To
SetPaintProperty
Set a property of a paint object directly
SetPaintProperty($1,$2,$3) $1 = Paint Object Label $2 = Property Label $3 = Property Value
SetPaintText
Sets the text of a paint object
SetPaintText($1,$2,$3) $1 = Paint Object Label $2 = Set Text/File To $3 = For All States
SetPaintTip
Sets the tool tip text of a paint object
SetPaintTip($1,$2,$3) $1 = Paint Object Label $2 = Set Tip To $3 = For All States
SetPaintXY
Moves a paint object so a given edge/corner is at (X,Y). Edge=1..9 (1=topleft, 2=topcenter, 5=center, 7=bottomleft etc.)
SetPaintXY($1,$2,$3,$4) $1 = Paint Object Label $2 = X Pos $3 = Y Pos $4 = Edge
SetTransparency
Sets the transparency (alpha) value of a colour
$R = SetTransparency($1,$2) $R = Result $1 = Color $2 = Transparency
XYToLongLat
Using the Map paint object, screen X/Y points are translated to Longitude/Latitude co-ordinates. Table must contain columns _Long, _Lat, _X and _Y
XYToLongLat($1,$2) $1 = Paint Map Label $2 = Table
Pipe
AddPipe
Creates a pipe between From and To if one doesn't exist and allocates an object label for the new pipe, which is returned. If Copy Pipe is a valid pipe object label then its properties are copied.
$R = AddPipe($1,$2,$3) $R = New Pipe $1 = From $2 = To $3 = Copy Pipe
RemovePipe
Removes any pipe between portals From and To (non directional). If From is a pipe label then it is used and To is ignored.
RemovePipe($1,$2) $1 = From $2 = To
Route
AddStaticRoute
Adds a new static route with given name and ID. The route steps start at the starting_cell, working down for step_count. Fill_steps determines if steps are filled after adding the route. If a route with the ID already exists, it is replaced. If ID is 0, a new ID gets allocated. Returns the ID of the route that gets created/modified (>0) or <0 on failure. Do not replace a static route which is being used by any items.
$R = AddStaticRoute($1,$2,$3,$4,$5) $R = Result $1 = Name $2 = Route ID $3 = Starting Cell $4 = Step Count $5 = Fill Steps
AddTrack
Creates a track between From and To if one doesn't exist and an object label is created and returned for the new track section.
$R = AddTrack($1,$2,$3) $R = New Track $1 = From $2 = To $3 = Track Type
AssignRoute
Sets an item's track route from a route table
AssignRoute($1) $1 = Timetable Source
AssignRouteFrom
Sets an item's track route from locations specified by cells working down from start, stopping when either count is reached or a zero cell. Returns 0 if no error.
$R = AssignRouteFrom($1,$2) $R = Result $1 = Starting Cell $2 = Step Count
CancelLoopEntryDelay
Cancels a loop entry delay which is initiated for any item that may dwell at a location and is normally cancelled only if the item leaves the location immediately. This enables just a loop exit delay to occur without an associated loop entry delay.
CancelLoopEntryDelay()
ClearRoute
Clear an item's routing database
ClearRoute()
ClearTrailList
Clears a train's history of sections it has traversed
ClearTrailList()
CreateRoute
Creates a route of all steps between the two locations. Returns non zero and sets s.TrackFillRouteError on error.
$R = CreateRoute($1,$2) $R = Result $1 = From $2 = To
EnableTrackCheckNext
Used during lookahead, this enables a modeller to signal objects downstream of a lookahead that the current lookahead is for track capacity purposes and wont be taken immediately. It automatically resets when lookahead unwinds behind the routine.
EnableTrackCheckNext()
FillRouteSteps
Fills in all intermediate portals in an item's track route. Returns non zero on error in which case s.FillRouteError is set to a description
$R = FillRouteSteps() $R = Result
GenerateTrackTable
Updates the Track Network Details table for the panel inside portal Location. This can change the rows in the track table. Result is non zero if an error occured.
$R = GenerateTrackTable($1) $R = Result $1 = Location
HoldSectionRoad
Places the road of a track section into waiting for an item state, preventing any other item using it. If Item ID is >= 0 it is used for the item ID otherwise the current item is used. Item Object is used to locate the item if Item ID is set.
HoldSectionRoad($1,$2,$3,$4) $1 = SectionID $2 = Road# $3 = Item ID $4 = Item Object
InsertRouteStep
Insert a track route step into an item's internal routing database
InsertRouteStep($1,$2) $1 = Route Step $2 = Route Location
ListBlockedTrains
Clears table and adds a row for each blocked train. Columns are filled in this order: Item ID, Blocked Time, Blocked Location
ListBlockedTrains($1) $1 = Table
ReadRoute
Reads an item's track route into a table
ReadRoute($R) $R = Timetable Target
RegisterBlockedTrain
Register the item (train) into the track blocked list
RegisterBlockedTrain()
RemoveStaticRoute
Removes any static route with the given ID. Do not remove a static route which is being used by any items.
RemoveStaticRoute($1) $1 = Route ID
RemoveTrack
Removes any track between portals From and To. If From is a track label then it is used and To is ignored.
RemoveTrack($1,$2) $1 = From $2 = To
ResetLoopDelayTime
Resets the loop entry time for an item, useful for enabling some time to be spent in a track location without a loop exit delay being triggered. This does not affect any loop entry delay under way, it will complete at its scheduled time.
ResetLoopDelayTime()
RoadsInTrackSection
Returns how many roads a given track section has been configured for
$R = RoadsInTrackSection($1) $R = Target $1 = Section
SectionRoadAvail
Returns where a track section road is available for an item/train to use
$R = SectionRoadAvail($1,$2) $R = Result $1 = SectionID $2 = Road#
SectionRoadTrain
Returns item ID of train in a track section road or -1 if no item
$R = SectionRoadTrain($1,$2) $R = Result $1 = SectionID $2 = Road#
SetPreviousTailData
Enables taildata to be set for a road/length multiserver that a train has just left. This is useful when taildata information is not known until the front of the train leaves the road/multiserver. WhichData is 1..4 (TailData1..TailData4).
SetPreviousTailData($1,$2) $1 = WhichData $2 = Value
SetRoadCheckFilter
This will use road #'s specified by the column starting at a given cell to determine roads to test in lookahead on a track. It stops on a zero cell.
SetRoadCheckFilter($1) $1 = Start Cell
SetRoadColor
Sets color of road in track section
SetRoadColor($1,$2,$3) $1 = SectionID $2 = Road# $3 = Color
TrackSectionType
Returns the type of a track section (_section_types label list)
$R = TrackSectionType($1) $R = Target $1 = Section
UnblockTrain
Attempt unblock of specific train id or all blocked trains if id is 0
UnblockTrain($1) $1 = Item ID
UpdateLoopEntryDelay
Sets the loop entry delay to a new value. This can be performed when a train enters a location. The delay is measured from when the original loop delay started. If no loop delay is active, the operation does nothing.
UpdateLoopEntryDelay($1) $1 = Loop Delay
Row/Column
Average
Determines the average of values in a row or column
$R = Average($1,$2,$3) $R = Result $1 = Average of $2 = From $3 = To
MaxIndex
Determines the index of the highest value in a row or column
$R = MaxIndex($1,$2,$3) $R = Result $1 = Max of $2 = From $3 = To
MinIndex
Determines the index of the lowest value in a row or column
$R = MinIndex($1,$2,$3) $R = Result $1 = Min of $2 = From $3 = To
StdDev
Determines the Standard Deviation of values in a row or column
$R = StdDev($1,$2,$3) $R = Result $1 = StdDev of $2 = From $3 = To
Sum
Determines the sum of values in a row or column
$R = Sum($1,$2,$3) $R = Result $1 = Sum of $2 = From $3 = To
SumSquared
Determines the sum of squares of values in a row or column
$R = SumSquared($1,$2,$3) $R = Result $1 = Sum/Sqr of $2 = From $3 = To
Scientific
arccos
Inverse cosine function, returns radians
$R = arccos($1) $R = Result $1 = Value
arcsin
Inverse sine function, returns radians
$R = arcsin($1) $R = Result $1 = Value
arctan
Inverse tan function, returns radians
$R = arctan($1) $R = Result $1 = Value
atan2
Determines angle (in radians) given x and y displacement
$R = atan2($1,$2) $R = Result $1 = Numerator (Y) $2 = Denominator (X)
cos
Cosine function, value in radians
$R = cos($1) $R = Result $1 = Value
DegToRad
Converts degrees to radians
$R = DegToRad($1) $R = Result $1 = Value
exp
Calculates $1 to the power of E
$R = exp($1) $R = Result $1 = Value
hypot
Hypotenuse of right angled triangle with given sides
$R = hypot($1,$2) $R = Result $1 = X Value $2 = Y Value
log10
Calculates the decimal logarithm of the value
$R = log10($1) $R = Result $1 = Value
logN
Calculates the natural logarithm of the value
$R = logN($1) $R = Result $1 = Value
pow
Calculates $1 to the power of $2
$R = pow($1,$2) $R = Result $1 = Value $2 = Power
RadToDeg
Converts radians to degrees
$R = RadToDeg($1) $R = Result $1 = Value
sin
Sine function, value in radians
$R = sin($1) $R = Result $1 = Value
sqr
Value multiplied by itself
$R = sqr($1) $R = Result $1 = Value
sqrt
Square root of value
$R = sqrt($1) $R = Result $1 = Value
tan
Tan function, value in radians
$R = tan($1) $R = Result $1 = Value
Spatial Link
AddBendPoint
Adds a bend point to a spatial link between the two objects specified
AddBendPoint($R,$1,$2,$3) $R = From Object $1 = To Object $2 = X Position $3 = Y Position
AddDirectionalLink
Adds a spatial link between objects which can only be traversed in the forward direction
$R = AddDirectionalLink($1,$2) $R = Link ID $1 = From Object $2 = To Object
AddLink
Add a spatial link between the two objects labels specified
$R = AddLink($1,$2) $R = Link ID $1 = From Object $2 = To Object
ClearLinkCache
Instructs Planimate to update spatial link information after links are created or objects are moved
ClearLinkCache()
CopyLink
Creates a spatial link between objects, copying an existing link's properties
$R = CopyLink($1,$2,$3) $R = Link ID $1 = From Object $2 = To Object $3 = Copy Link
DeletePanelLinks
Deletes all spatial links on a given panel
DeletePanelLinks($1) $1 = Panel
GetBendPoints
Reads bend points into table Bend Table. Link Type determines the type of link acted on. Bend Table Columns: from, to, x, y. Link Type: from _link_types label list.
GetBendPoints($1,$2,$3) $1 = Bend Table $2 = Panel $3 = Link Type
GetNextLinkObject
Returns the next portal object index that an item will travel to on a spatial link given the item starting at 'from' and target 'to'. Returns 0 if none.
$R = GetNextLinkObject($1,$2) $R = Location $1 = From Portal $2 = To Portal
QueryLinkItems
Sets table to rows describing every item on the link. Required columns are ItemID, TotalTime, Ratio, Direction and Stopped. Ratio corresponds to the position on the link, 0 being the start of the link and 1 being the end. Direction is 0 for forward and 1 for reverse.
QueryLinkItems($1,$2) $1 = Table $2 = Link
RemoveLink
Removes any spatial links from and to the specified object labels (directional)
RemoveLink($1,$2) $1 = From Object $2 = To Object
SetBendPoints
Deletes all bend points and recreates them from the Bend Table. Link Type determines the type of link acted on. Bend Table Columns: from, to, x, y. Link Type: from _link_types label list.
SetBendPoints($1,$2,$3) $1 = Bend Table $2 = Panel $3 = Link Type
SetItemLinkTarget
Sets the destination an item will look for once it enters a spatial link. Time sets the travel time to use (or SetItemLinkTime can be used after this). Road sets the road for multi-toad links, 1..n or 0 to leave unchanged.
SetItemLinkTarget($1,$2,$3) $1 = Target Object $2 = Total Time $3 = Road
SetItemLinkTime
Sets the time an item will take to reach its destination once it enters a spatial link
SetItemLinkTime($1) $1 = To Time
SetLinkColor
Sets the color of a spatial link between 2 given objects
SetLinkColor($1,$2,$3,$4) $1 = From Object $2 = To Object $3 = Color $4 = Road
SetLinkCost
Sets the link cost of a spatial link (normally computed from the link's distance)
SetLinkCost($1,$2,$3) $1 = From Object $2 = To Object $3 = Cost
SetLinkRoads
Sets the number of roads and road spacing for a spatial link.
SetLinkRoads($1,$2,$3,$4) $1 = From Object $2 = To Object $3 = Roads $4 = Spacing
SetLinkWidth
Sets the width of a spatial link between two objects
SetLinkWidth($1,$2,$3) $1 = From Object $2 = To Object $3 = Width
UpdateLinkItems
Updates the spatial link items according to the settings in the table. Columns are ItemID, TotalTime, Ratio, Direction and Stopped. Ratio corresponds to the position on the link, 0 being the start of the link and 1 being the end. Direction is 0 for forward and 1 for reverse. Stopped enables just that item to be suspended on the link. If ItemID is -1 the row is ignored. If Ratio is -1, the items position is retained. If TotalTime is -1, the current total time for the item is retained.
UpdateLinkItems($1,$2) $1 = Table $2 = Link
Special
---| Only During Move |---
Enables the modeller to specifically mark that the following routine lines do not execute during lookahead
Only During Move |---||----- Following Only During Move -----|
Beep
Plays a tone through the sound card, Frequency in Hz, Duration in milliseconds
Beep($1,$2) $1 = Frequency $2 = Duration
BREAKPOINTIF
If the parameter is true, this interrupts the routine and displays a debugging dialog enabling inspection of the models state
BREAKPOINTIF ($1) $1 = Enable Break
BrowseKey
Give user chance to browse for another key. Returns non zero if a different key was selected which is acceptable.
$R = BrowseKey() $R = Result
CallRoutine
Calls a subroutine
CallRoutine($F) $F = Call
Comment (//)
A comment line
Comment
CopyFont
Copies the font properties between cells and columns
CopyFont($R,$1) $R = Format Result $1 = Format From
CopyFormat
Copies the format/unit type/label reference between cells, columns and attributes
CopyFormat($R,$1) $R = Format Result $1 = Format From
CopyPortal
Makes a copy of a portal and places it on Panel. If the name text is not “-” or an empty string, the new portal uses that name.
$R = CopyPortal($1,$2,$3,$4,$5) $R = New Portal $1 = Original Portal $2 = New Panel $3 = X $4 = Y $5 = New Name
DescribeRoutineData
Describe the data accessed by a change object routine
DescribeRoutineData($1,$2,$3) $1 = Routine Panel $2 = Object Name $3 = Output Filename
DragGanttBlock
Initiates dragging a gantt block. Should be invoked as result of gantt block click (set option to process event immediately). Returns non zero if block was moved and corresponding rows in table changed. Table data may need resorting if block moved beyond other block on same row. Drag Type can be as returned from the click broadcast, 1 = left edge, 2 = right edge, 3 = center (move only).
$R = DragGanttBlock($1,$2,$3,$4,$5,$6,$7,$8) $R = Result $1 = Table $2 = Panel $3 = Drag Type $4 = Start Row $5 = End Row $6 = Min Time $7 = Max Time $8 = Increment
EncodeARGB
Encodes alpha, red, green and blue components (0..255) into a single 4 byte value used to specify any color/transparency in Planimate.
$R = EncodeARGB($1,$2,$3,$4) $R = Result $1 = Alpha Value $2 = Red Value $3 = Green Value $4 = Blue Value
EncodeRGB
Encodes red, green and blue components (0..255) into a single 4 byte value used to specify any color in Planimate. The top byte of the value (alpha) is set to 255.
$R = EncodeRGB($1,$2,$3) $R = Result $1 = Red Value $2 = Green Value $3 = Blue Value
FollowItemRemote
Searches spatial links for the item and if found, sets the 'followitem property.
$R = FollowItemRemote($1,$2,$3) $R = Result $1 = Item Index $2 = Scope Panel $3 = Follow State
FormatForList
Formats the result object to reference a label list with the given name
FormatForList($R,$1) $R = Format Result $1 = List Name
GetFormat
Returns the value format of the data
$R = GetFormat($1) $R = Result $1 = Data To Test
GetFormatListName
Creates a new label with the name of the label list the target is formatted to. If no list, no change to the target is made
GetFormatListName($R,$1) $R = Result $1 = Data To Test
InfoPanelRemote
Searches spatial links for the item and if found, sets the s.ItemShowInfoPanel property.
$R = IntoPanelRemote($1,$2,$3) $R = Result $1 = Item Info $2 = Scope Panel $3 = Show State
ListRoutineCode
Write a change object routine code to a file
ListRoutineCode($1,$2,$3) $1 = Routine Panel $2 = Object Name $3 = Output Filename
LoadDataSet2
Load a version 2 dataset
$R = LoadDataSet2($1,$2,$3) $R = Result $1 = Definition Table $2 = File Name $3 = Pass Phrase
LoadModel
Stops current run and loads another model. For PBA, the PBA is reloaded regardless of name.
LoadModel($1) $1 = Model Name
ObjectType
Returns the type of the object that the object label refers to
$R = ObjectType($1) $R = Result $1 = Object
QueryNetwork
Sets table to rows describing every link on Panel between portals (track,spatial,pipe). 4 columns are required; From, To, Type and ID. From and To are the object Ids of the portals at the end points. Type is the type of link and is formatted to the “_link_type” label list. ID is the object id of the link.
QueryNetwork($1,$2) $1 = Table $2 = Panel
RealTimeCallBack
This will schedule a _Real Time Tick broadcast at a given real interval, in milliseconds. Note that any previous event is cancelled when this is re-invoked. Interval can be between 10 and 5000ms.
RealTimeCallBack($1) $1 = Interval (ms)
RemovePortal
Deletes the portal and its contents from the model
RemovePortal($1) $1 = Portal ID
SaveDataSet2
Save a version 2 dataset
$R = SaveDataSet2($1,$2,$3) $R = Result $1 = Definition Table $2 = File Name $3 = Pass Phrase
SetDirectory
Sets the working directory for the model. Use only for compiled applications. Returns non zero on failure
$R = SetDirectory($1) $R = Result $1 = Path
SetFormat
Sets format of $1 to mode $2, with $3 being the label list name if its a label format
SetFormat($1,$2,$3) $1 = Data To Set $2 = Format $3 = List Name
SetLastDatasetFile
Sets the last dataset filename, optionally visible in the titlebar. A relative filename will have a full path created as would be used in a file operation with the name.
SetLastDatasetFile($1) $1 = Name
ShowHelp
Open a HTML help window. Help File can be empty for default.
ShowHelp($1,$2) $1 = Help File $2 = Section
SignFile
Digitally signs a file.
$R = SignFile($1,$2,$3,$4,$5) $R = Result $1 = File Name $2 = Cert $3 = Password $4 = Subject $5 = Time Server
StartScheduledEntries
Signals that scheduled entries should start (if options deferred them starting when the model was run)
StartScheduledEntries
WatchListAdd
Add portal, routine or item attribute to watch list for debugging
WatchListAdd($1) $1 = Attribute
WatchListRemove
Remove portal, routine or item attribute from watch list
WatchListRemove($1) $1 = Attribute
String
GetNoteRTF
Retrieves RTF text of note
$R = GetNoteRTF($1) $R = String $1 = Paint ID
GetNoteText
Retrieves plain text of note
$R = GetNoteText($1) $R = String $1 = Paint ID
SetNoteRTF
Sets RTF text of note
SetNoteRTF($1,$2) $1 = Paint ID $2 = Text
SetNoteText
Sets plain text of note
SetNoteText($1,$2) $1 = Paint ID $2 = Text
SetText ( $= )
Set a free text attribute or table cell to another text attribute, literal text or a the formatted text of a value
$R $= $1 $R = Result $1 = Set To
Table
AddTable
Adds table to panel, returning data object label. If a table with that name already exists, 0 is returned.
$R = AddTable($1,$2) $R = Result $1 = Panel $2 = Name
AdvancedSort
Performs a sort on a table using another table to define the sort criteria
AdvancedSort($R,$1) $R = Target $1 = Sort Info
AllocateTableRowMemory
Enables memory to be reserved for a table which is expected to grow to a large number of rows
AllocateTableRowMemory($R,$1) $R = Target Table $1 = Allocate Rows
AppendColumn
Append a column to a table
AppendColumn($R,$1) $R = Target $1 = Col Count
AppendRow
Append a row to the table
AppendRow($R,$1) $R = Target $1 = Row Count
BinarySearch
Perform a binary search over the range First Index to Last Index. Assumes the data compared is sorted ascending and the comparison is for equality. Multiple comparisons can be combined only with AND. Returns 1 + last index or 0 if Zero On Fail is set.
$R = BinarySearch($F,$1,$2,$3) $R = Result $1 = First Index $2 = Last Index $3 = Zero On Fail $F = Condition
BlockMove
Block copy a range of cells to another table
BlockMove($R,$1,Range[$2][$3]) $R = Result $1 = Source $2 = # of Rows $3 = # of Cols
CheckTableSorted
Determines if a table is sorted by the sort criteria. Return 0 if OK or the first unsorted row number. This can be more efficient than calling Sort which is very slow if the table is already sorted.
$R = CheckTableSorted($1,$2,$3,$4,$5) $R = Result $1 = Table $2 = Column 1 $3 = Column 2 $4 = Column 3 $5 = Column 4
CompareTables
Compares rows in tables, returns row number of first difference. Only numerical values are compared, not Text strings.
$R = CompareTables($1,$2) $R = Result $1 = Table 1 $2 = Table 2
CopyToClipboard
Copy table to clipboard using its clipboard settings and the option modifiers
CopyToClipboard($R,$1) $R = From Table $1 = Options
CountIFMatch
Counts rows where Match Column matches Match Key
$R = CountIFMatch($1,$2) $R = Result $1 = Match Column $2 = Match Key
CreateSortIndex
Creates an ordered list of row numbers if the given column was sorted alphabetically
CreateSortIndex($R,$1) $R = Target Column $1 = Column To Sort
DeleteColumn
Delete a range of columns from a table
DeleteColumn($R,$1,$2) $R = Target Table $1 = First Col $2 = Col Count
DeleteRow
Delete a number of rows starting at a given row in a table
DeleteRow($R,$1,$2) $R = Target Table $1 = First Row $2 = Row Count
EnableColumnEditing
Controls whether a given table column can be edited
EnableColumnEditing($R,$1) $R = Target Column $1 = Edit Control
FindColumnLabel
Searches columns in table $1 for one with a label which matches formatted $2 and returns the index or 0 if none found
$R = FindColumnLabel($1,$2) $R = Result $1 = Table $2 = Find String
FindColumnTitle
Searches columns in table $1 for one with a title which matches formatted $2 and returns the index or 0 if none found
$R = FindColumnTitle($1,$2) $R = Result $1 = Table $2 = Find String
FindDuplicates
Finds duplicated rows in Table, storing the duplicate row number pairs in the first two columns of table Duplicates. Existing rows in Duplicates are removed. Only values are compared, not text.
FindDuplicates($R,$1) $R = Duplicates $1 = Table
GetCellBackgroundColor
Returns ARGB or index value for a cell's background color. Will be null index (255) if not set for the cell
$R = GetCellBackgroundColor($1) $R = Result $1 = Table Cell
GetCellTextColor
Returns ARGB or index value for a cell's text color. Will be null index (255) if not set for the cell
$R = GetCellTextColor($1) $R = Result $1 = Table Cell
GetColSecondTitle
Sets the target to a label of the second title row for the given column
GetColumnSecondTitle($R,$1) $R = Result $1 = Column
GetColumnProperty
Read a property of a table column
$R = GetColumnProperty($1,$2) $R = Result $1 = Table Column $2 = Property Label
ImportFromClipboard
Performs import of table data/structure from clipboard as available in the table editor
$R = ImportFromClipboard($1,$2) $R = Result $1 = Target Table $2 = Configure
InsertColumn
Insert columns into a table with the option of copying formatting from another column
InsertColumn($R,$1,$2,$3) $R = Target Table $1 = Insert Pos. $2 = Col Count $3 = Copy Format
InsertRow
Insert a number of rows at a given row in a table
InsertRow($R,$1,$2) $R = Target Table $1 = Insert Pos. $2 = Row Count
MatchMultipleKeys
Searches table from the top for the first instance where the given columns have the given values. Returns row number or 0 if no match. Column 3 may be zero for a 2 column search.
$R = MatchMultipleKeys($1,$2,$3,$4,$5,$6,$7,$8) $R = Result $1 = Table $2 = Start Row $3 = Column 1 $4 = Match 1 $5 = Column 2 $6 = Match 2 $7 = Column 3 $8 = Match 3
MaxIndexIFMatch
Returns first row with maximum Data Column value for rows where Match Column matches Match Key. Returns 0 if no rows match.
$R = MaxIndexIFMatch($1,$2,$3) $R = Result $1 = Match Column $2 = Match Key $3 = Data Column
MinIndexIFMatch
Returns first row with minimum Data Column value for rows where Match Column matches Match Key. Returns 0 if no rows match.
$R = MinIndexIFMatch($1,$2,$3) $R = Result $1 = Match Column $2 = Match Key $3 = Data Column
OutOfScopeWrite
Enable writing to item table reference $1 even if it is not in scope
OutOfScopeWrite($1) $1 = Item Table Ref
PositionLastRow
Intended for use after a single row has been appended to an already-sorted table, this will efficiently move that last row to the position to maintain the sort. Table must already be sorted by the sort criteria.
PositionLastRow($R,$1,$2,$3,$4) $R = Target $1 = Column 1 $2 = Column 2 $3 = Column 3 $4 = Column 4
PurgeDuplicateRows
Removes any identical rows from the given table
PurgeDuplicateRows($R) $R = Target
ReverseSearch
Decrement the result attribute from first to last until the condition is true. If the search fails, returns ast_index – 1 or 0 if 'Zero On Fail' is true.
$R = ReverseSearch($F,$1,$2,$3) $R = Result $1 = First Index $2 = Last Index $3 = Zero On Fail $F = Condition
Search
Increment the result attribute from first to last until the condition is true. If the search fails, returns 1 + last_index or 0 if 'Zero On Fail' is true.
$R = Search($F,$1,$2,$3) $R = Result $1 = First Index $2 = Last Index $3 = Zero On Fail $F = Condition
SetCellBackgroundColor
Sets the background color for the cell.
SetCellBackgroundColor($1,$2) $1 = Table Cell $2 = Color Value
SetCellFreeText
Sets the free text (not bound by label text rules) for a table cell
SetCellFreeText($R,$1) $R = Target Cell $1 = Source Cell
SetCellTextColor
Sets the text color for the cell
SetCellTextColor($1,$2) $1 = Table Cell $2 = Color Value
SetColAlignment
Enables a column's text alignment to be changed
SetColumnAlignment($R,$1) $R = Target Column $1 = Align Mode
SetColSecondTitle
Sets the text of the second title row for the given column
SetColumnSecondTitle($R,$1) $R = Target Column $1 = Title Text
SetColTitle
Set the title text of a table column
SetColumnTitle($R,$1) $R = Target Column $1 = Title Text
SetColTupleName
Sets the name used to internally identify a column
SetColumnTupleName($R,$1) $R = Target Column $1 = Tuple Text
SetColumnProperty
Set a property of a table column
SetColumnProperty($1,$2,$3) $1 = Table Column $2 = Property Label $3 = Property Value
SetColumnTip
Sets the tool tip of a table column
SetColumnTip($R,$1) $R = Column $1 = Tip Text
SetColWidth
Sets the formatting width of a table column
SetColWidth($R,$1) $R = Target Column $1 = Column Width
SetTableRowHeight
Sets the height of table rows
SetTableRowHeight($1,$2) $1 = Target Table $2 = Row Height
SetTableTitle
Set the title text of the table from the label
SetTableTitle($R,$1) $R = Target Table $1 = Title Text
ShiftCol
Shift the columns in a table
ShiftColumn($R,$1,$2) $R = Result $1 = Source $2 = Shift <+ ->
ShiftRow
Shift the rows in a table
ShiftRow($R,$1,$2) $R = Result $1 = Source $2 = Shift ^+ -v
Sort
Sort table by up to 4 columns. If the column index is -ve, it reverses the sort order for that column.
Sort($R,$1,$2,$3,$4) $R = Target $1 = Column 1 $2 = Column 2 $3 = Column 3 $4 = Column 4
SumIFMatch
Sums values in Data Column for rows where Match Column matches Match Key
$R = SumIFMatch($1,$2,$3) $R = Result $1 = Match Column $2 = Match Key $3 = Data Column
TableReferenceSet
Returns non zero if the reference resolves to a table
$R = TableReferenceSet($1) $R = Result $1 = Item Table Ref
TableSortDialog
Enables the user to set up and perform a sort using the table sort dialog
TableSortDialog($R) $R = Target
UpdateColumnRefs
Re-initialises column labels for references to a table
UpdateColumnRefs($1) $1 = Table
Table View
ClearFilter
Clear filter settings for a table view
ClearFilter($1,$2) $1 = Table $2 = Panel
CopyAllFromView
Copies the entire contents of a table view. Any current selection is ignored and left intact.
CopyAllFromView($1,$2,$3) $1 = Table $2 = Panel $3 = Col Labels
CopyFromView
Copies the current cell or selection from a specified table view just as if CTRL-C was pressed
CopyFromView($1,$2) $1 = Table $2 = Panel
DeleteView
Deletes view during run. Data is the table, attribute the view is for. Panel is where the view is located.
DeleteView($1,$2,$3,$4) $1 = Data $2 = Panel $3 = View Type $4 = Index
GetColumnFilter
Gets any active column filter for a table view
$R = GetColumnFilter($1,$2) $R = Text/Label $1 = Column $2 = Panel
GetFilteredRows
Retrieves the filter mapping of view rows to actual rows into the list table
GetFilteredRows($1,$2,$3) $1 = Filter List $2 = Table $3 = Panel
GetTableView
Read columns of a table view into another table
GetTableView($1,$2,$3) $1 = View Table $2 = View Panel $3 = Config Table
GetViewProperty
Retrieves a property of a view of a table on a given panel. Index specifies which view and is useful when multiple exist.
$R = GetViewProperty($1,$2,$3,$4,$5) $R = Result $1 = Table $2 = Panel $3 = Property $4 = View Type $5 = Index
NearestPoint
Returns the row of the closest point on a Log Driven Display. If Overlay is non zero, only that overlay is checked. Max Distance sets the largest distance that will be considered in the matching. With no match, the function returns 0.
$R = NearestPoint($1,$2,$3,$4,$5,$6) $R = Result $1 = Table $2 = Panel $3 = X $4 = Y $5 = Overlay $6 = Max Distance
PasteIntoView
Pastes the system clipboard into a table view starting at the specified Top Left cell. Returns zero on success
$R = PasteIntoView($1,$2,$3,$4,$5,$6,$7) $R = Error Result $1 = Table $2 = Panel $3 = TL Row $4 = TL Col $5 = Options $6 = Rows Read $7 = Cols Read
ReFilterTableView
Reapply any active filters to the current data in the table
ReFilterTableView($1,$2) $1 = Table $2 = Panel
SetCellColor
Set text and background colours for cells, supporting doing entire columns, rows or tables as well. In all cases the per cell colour is set.
SetCellColor($1,$2,$3) $1 = Cell $2 = TextColor $3 = BackColor
SetColumnFilter
Sets a column filter text for a table view. The filter needs to be reapplied once all the columns have been set.
SetColumnFilter($R,$1,$2) $R = Column $1 = Text $2 = Panel
SetTableView
Set columns that a table view will display
SetTableView($1,$2,$3) $1 = View Table $2 = View Panel $3 = Config Table
SetTableViewColScroll
Sets the column scroll of a view for a table on a given panel
SetTableViewColScroll($1,$2,$3) $1 = Table $2 = Panel $3 = Value
SetTableViewRowScroll
Sets the row scroll of a view for a table on a given panel
SetTableViewRowScroll($1,$2,$3) $1 = Table $2 = Panel $3 = Value
SetViewFilterRows
Sets the rows that a table view on a panel will display. Filter List is a column of row numbers.
SetViewFilterRows(($1,$2,$3) $1 = Filter List $2 = Table $3 = Panel
SetViewProperty
Sets a property of a view of a table on a given panel. Index specifies which view and is useful when multiple exist.
SetViewProperty($1,$2,$3,$4,$5,$6) $1 = Table $2 = Panel $3 = Property $4 = Value $5 = View Type $6 = Index
TableViewColScroll
Reads the column scroll of a view for a table on a given panel
$R = TableViewColScroll($1,$2) $R = Target $1 = Table $2 = Panel
TableViewRows
Reads the number of rows in a table view. If a filter is set, this may differ from the number of rows in the table
$R = TableViewRows($1,$2) $R = Target $1 = Table $2 = Panel
TableViewRowScroll
Reads the row scroll of a view for a table on a given panel
$R = TableViewRowScroll($1,$2) $R = Target $1 = Table $2 = Panel
TableViewVisibleCols
Reads the number of visible columns in a table view
$R = TableViewVisibleCols($1,$2) $R = Target $1 = Table $2 = Panel
TableViewVisibleRows
Reads the number of visible rows in a table view
$R = TableViewVisibleRows($1,$2) $R = Target $1 = Table $2 = Panel
Time
AdvanceToTimeDialog
Enables user to use the advance to time dialog. If Absolute is set, it defaults to an absolute time advance otherwise it defaults to a relative interval. Time is interpreted accordingly depending on Absolute, as an interval or as an absolute time. For an Absolute advance, if its zero, the clock value is the default instead of the model start time.
AdvanceToTimeDialog($1,$2) $1 = Absolute $2 = Time
DayOfMonth
Returns the day of the month, starting at 1
$R = DayOfMonth($1) $R = Result $1 = Time
DayOfWeek
Returns the day of the week, starting at 1 for Sunday
$R = DayOfWeek($1) $R = Result $1 = Time
DaysInDateMonth
Returns how many days in the month of the absolute time
$R = DaysInDateMonth($1) $R = Result $1 = Time
FormDate
Computes the absolute time representing midnight on the given date
$R = FormDate($1,$2,$3) $R = Result $1 = Date $2 = Month $3 = Year
GetDate
Extracts the date from a date/time
$R = GetDate($1) $R = Result $1 = Date/Time
HourOfDay
Returns the hour into the current day of the time, starting at 0
$R = HourOfDay($1) $R = Result $1 = Time
HourOfDay+1
Returns the hour into the current day of the time, starting at 1 instead of 0
$R = HourOfDay_1($1) $R = Result $1 = Time
IncrementByMonths
Increments the date by one or more months, attempting to keep the same day of month
IncrementByMonths($R,$1) $R = Result $1 = # of months
MonthOfYear
Returns the month of the year, starting at 1 for January
$R = MonthOfYear($1) $R = Result $1 = Time
TimeOfDay
Returns the number of seconds into the current day of the time
$R = TimeOfDay($1) $R = Result $1 = Time
WeekOfYear
Returns the week of the year, starting at 1
$R = WeekOfYear($1) $R = Result $1 = Time
YearOfDate
Returns the year of the given calendar time
$R = YearOfDate($1) $R = Result $1 = Time
Tuple
DecodeMultiLabelToTuple
Extracts the fields of a multi-label to item attributes with names matching the label lists in the multi-label
DecodeMultiLabelToItem($R) $R = Target
EncodeItemToMultiLabel
Combines item attributes to form a multi-label, for item attributes with names matching the label lists in the multi-label
EncodeItemToMultiLabel($R) $R = Target
MatchedCopyRow
Copy rows between tables where the column names match
MatchedCopyRow($R,$1) $R = Result $1 = Set To
TupleAppendFromCarried
Append a row to the table and for it, set table columns from a carried item's attributes with the same name
TupleAppendFromCarried($R,$1) $R = Table $1 = Carried Index
TupleAppendFromItem
Append a row into the table and for it, set table columns from item attributes with the same name
TupleAppendFromItem($R) $R = Table
TupleCarriedToRow
For the specified row, set table columns from a carried item's attributes with the same name
TupleCarriedToRow($R,$1) $R = Row $1 = Carried Index
TupleDecrementToRow
For the specified row, decrement cells with the values of item attributes with matching names
TupleDecrementFromRow($R) $R = Row
TupleExtractToCarried
For the specified row, set a carried item's attributes from table columns with the same name then delete the row
TupleExtractToCarried($R,$1) $R = Row $1 = Carried Index
TupleExtractToItem
For the specified row, set item attributes from table columns with the same name then delete the row
TupleExtractToItem($R) $R = Row
TupleIncrementToRow
For the specified row, increment cells with the values of item attributes with matching names
TupleIncrementToRow($R) $R = Row
TupleInsertFromCarried
Insert a row into the table and for it, set table columns from a carried item's attributes with the same name
TupleInsertFromCarried($R,$1) $R = Row $1 = Carried Index
TupleInsertFromItem
Insert a row into the table and for it, set table columns from item attributes with the same name
TupleInsertFromItem($R) $R = Row
TupleItemToRow
For the specified row, set table columns from item attributes with the same name
TupleItemToRow($R) $R = Row
TupleRowToCarried
For the specified row, set a carried item's attributes from table columns with the same name
TupleRowToCarried($R,$1) $R = Row $1 = Carried Index
TupleRowToItem
For the specified row, set item attributes from table columns with the same name
TupleRowToItem($R) $R = Row
UI
AddListToMenu
Appends a new menu to the modeller custom menu bar
AddListToMenu($1,$2) $1 = Menu Name $2 = Item List
BringToFront
If a panel is open in a popup window, bring that popup to the front in the window z-order.
BringToFront($1) $1 = Panel
BrowseFile
Browse for a file. Returns non zero if one chosen. FileName sets an initial file, Options can combine:1 to enable a save-style dialog (default is load) and 2 to enable stay in directory (default is to return to working directory). Use s.LastAccessedDataFile and s.LastAccessedDataFilePath to access the file and full path spec of the file selected.
$R = BrowseFile($1,$2) $R = File Chosen $1 = FileName $2 = Options
ClearCustomMenubar
Removes all menu items from the modeller custom menu bar
ClearCustomMenubar
Dialog
Show a dialog box for the user to interact with
$R = Dialog($F) $R = Result $F = Dialog
DragIcon
Displays an icon and enables user to position it. X and Y are the starting position (center) in panel co-ordinates. If a move is performed, new co-ordinates are written to these values. Icon selects an image which defines the bounding box. Returns non zero if the move was not cancelled. Supports being invoked with mouse down or up. Keys also supported.
$R = DragIcon($1,$2,$3,$4) $R = result $1 = X Value $2 = Y Value $3 = Panel $4 = Icon Name
HandlePopupMenu
Interprets columns in table as depth/name/index and generates a popup menu. Returns index of selected item or 0 if cancelled
$R = HandlePopupMenu($1) $R = Result $1 = Table
InitiateFieldEdit
Starts editing attribute/cell views on a panel, as if the user clicked on the first one
InitiateFieldEdit($1) $1 = Target Panel
MessageBox
Displays a standard message box with an OK button
MessageBox($1,$2) $1 = Text $2 = Title
MessageBoxConfirm
Displays a standard message box with OK (1) / Cancel (0) Buttons
$R = MessageBoxConfirm($1,$2) $R = Result $1 = Text $2 = Title
MessageBoxYN
Displays a standard message box with Yes (1) / No (0) Buttons
$R = MessageBoxYN($1,$2) $R = Result $1 = Text $2 = Title
MessageBoxYNC
Displays a standard message box with Yes (1) / No (0) / Cancel (-1) buttons
$R = MessageBoxYNC($1,$2) $R = Result $1 = Text $2 = Title
SetMenuBar
Interprets columns in table as depth/name/index and builds a custom menu bar
SetMenuBar($1) $1 = Table