ReleaseNotes:Feature Review December 2018
This summary covers Planimate enhancements in 2018, over versions 9.17.0 to 9.41.1.
Animation Over An Area
Portals can now animate as independent agents over a dynamically changeable region. The PolyPathFinder() operation and the new "AP" (Animating Portal) module make it straightforward to command a set of portals to animate over time and over a zoomable/pannable tiled map if desired. The AP module takes care of finding the most straightfoward path through the supplied polygon region with time or velocity based operation and arrival notifications and full pre-emption supported.
A number of new platform capabilities introduced in 9.21.0 support region based animation.
Tiled Maps Enhancements
- Maps now can use a schematic co-ordinate system - range (0..1) instead of longitude/latitude enabling tiled maps to be used for schematic layouts.
- You can update co-ordinates when positioning a selected group of objects.
- Touch gesture support has been added (updated the map reference module).
- The dotNet interface PLCLR supports more data types.
- Better logging support for messages generated by DLLs.
- The menubar View menu has an option to show loaded dotNET DLLs and their versions, useful for diagnostics.
- Capability was added to optionally run called c# methods in their own thread (9.38.0) so PL remains responsive.
- Tables can be created and deleted from the dotnet interface.
- Editing is now flicker free and much faster on complex panels.
- More routine editor colours configurable in the Platform INI settings.
- Portal Grouping in the side bar collects Portals named with the same prefix separated by "-" or "_" (9.17.0). Useful on panels with many locations.
- The text editor used when showing info/reports can be configured.
- UI changes make left click select only and right click to display context menus.
- Double click handling reworked so the UI is more responsibe.
- The model structure report can now be scoped.
- The routine editor supports text based find/replace as well as object based.
- More panel level control of object name, border and tool tips visibility when benefits huge panels.
- You can copy item attribute definitions from another item class.
- You can change the item class of item paths on a panel, preserving interactions for them.
- Note the new grammar for carried item attribute reference eg:
r.result = i.Carried(1,i.location)
UI & Display
- Log driven views will also search the scope of the view for their configuration table, in addition to the scope of the data table.
- Multiple graph views can have their Y axes synchronised as well as the X axis, creating more overlay capabilities.
- Table column filters will match numbers typed without commas on columns formatted with commas.
- Clock Views can be selected into the Animation Layer which speeds up fast-forwarding with animation visible (9.32.0).
- New "Before Delete" broadcast option for table cell clicks.
- Dials are now a view in their own right supporting anchoring and positioning on a map.
- Scrolling Chart Recorder Dials benefit from being selexted into the Animation Layer resulting in faster updates when many are used on a panel.
- Portals have an Auto-Flip option (like items) for when they are animated.
- Table columns have the option for "-" to be the clear/default value in date formatted columns instead of the run start date (value 0). Refer to 9.39.0 notes.
- Portals support clicking/dragging during simulation without pausing (option "Clickable During Simulation").
- When throwing an item at a portal, a catch Dispatcher can now be named either _!catch or _catch, keeping the name visible.
- GenerateUnique() creates a filtered list of each unique element of another column.
- CopyTable() makes a full copy of a table and works with item table references as well.
- AdvancedSort() supports optionally sorting text based instead of raw number.
- GanttPopup() enables a model to trigger a click on a gantt graph block.
- BrowseFolder() enables a model to get a folder path selection from the user.
- Developers can show pending events from the pause context menu without having to pause the model.
- EarthDistance() determines the ground distance between two long/lat co-ordinates.
- FolderExits() tests whether a given path exists as a folder.
- s.ExitWithCode will end a run and return the code to the calling process, avoiding the need for a stop exit.
- s.ItemIsMessage enables testing if an item is actually a message item.
Pre-emptable Modeller Controlled Delay
A combination of model objects enables an efficient interruptable/rescheduleble delay with immediate message compatible commanding, meaning certainty of completion of the command within the message. (9.22.0).
- Internal ODBC support has been removed as a dotNET DLL now implements ODBC connectivity.
- Removed support for the "Model INI" file (run configuration) as file, path and string capabilities within Planimate render it obsolete.
- Removed the in-built multiple run capability given typical models manage runs/data themselves using the platform's capabilities.
- Note that sort operations use raw high precision values which can create issues if mixing calculated data with edited data, refer to 9.33.1 notes.
- The calendar time epoch for new models is now 1-Jan-2018 which, keeping with previous epochs, is a Monday.
- If you are animating many PNG images and don't need alpha blending, prefix the name with the Icon Overlay command "[B:1]" which converts the image to a faster GDI bitmap.