ReleaseNotes:Planimate 5.04 Release Notes

From Planimate Knowledge Base
Jump to: navigation, search


NEW 2 new track rules have been added which are proving to increase train throughput with train fleeting type situations.
A new Engine Option "Enable June2006 Track Enhancements" enables these new rules so existing models can be tested with and without this option.

CHANGE 1:Change to track rules
IF a train is doing a loop exit delay as a train behind it doing a lookahead, its considered viable capacity for the train behind to start moving towards the loop.
CHANGE 2:Change to track rules
IF a train is looking ahead at a loop with only one capacity slot left, that loop now responds "yes" to the train if it is followed by a non-single track with at least one train heading in the same direction as the original train. Otherwise, it recurses the test on the next object along the track, like before.
FIX Routine operation to set paint text no longer changes the bounding box of the paint object; this required the paint object to be visible.


NEW The data importer now supports comma delimited data with commas inside quoted strings
NEW Comments can be associated with lines in a multiple condition list (including the "default" line). This will assist modellers in documenting their intent for the conditions and under what circumstances they expect the default case to be taken.
NEW Space key or double clicking on a line in the multiple condition dialog is now a shortcut to eiting that condition.
NEW The "Accept Incomplete Tables" file read option will now also accept tables with less columns than the expected number of table columns. This enables data with variable trailing columns to be read
CHANGE Stand-alone application EXE's have their window auto-sized to fit the initial panel's work area as much as possible. This is useful for creating "utility" applets with small windows.
CHANGE Reworked the startup code so the clock is not visible unless its needed when a planimate application EXE is loading
SPEED The "Matched Copy Row" routine operation has been sped up using a table-to-table tupling cache. This will speed up the transfer of matching columns between two tables with different column arrangements.
Careful handling has been included to reset the cache should either the source or destination tables have their column structure changed during the run.
SPEED Have reworked the way routine lines are executed to gain more speed.

  • overheads of the routine-line profiling debugging option have been reduced when that option is not turned on (the usual case)
  • code has been re-arranged so the CPU can better predict which branch to take in tests for errors (which normally would not occur).

SPEED Have reworked the way routine "SET" is processed. Made the special case tests (setting a label list, setting an item table) process faster and put the set attribute=attribute case in a place so it will process with much less overheads.
This will speed up all models that use routines.
FIX When the background is clicked and dragged to select a group of objects, no grid snapping occurs for the selection box. This enables the edges of the panel to be reached.
FIX Rework of startup code so standalone applications running in /BATCH mode are supported. This enables batched execution of Planimate based applications without a GUI being presented to the user.


NEW The routine editor supports multiple line selections for cut and delete.
The range between the first and last selected rows is used, even if not all rows within it are selected.
NEW Routine editor shortcut keys:
CTRL-C -> copy selected row range CTRL-X -> cut selected row range CTRL-V -> paste rows INSERT -> insert rows 'F' -> Jump to block end 'D' -> Jump to block start 'E' -> edit current line SPACE -> edit current line DEL -> delete rows (confirms first) - deletes between first and last selected rows, even if some rows not selected
=== Editor's please note ===
A selected range spans from the first to the last selected rows. Deleting a range will delete ALL rows in that range, even if they are not selected.
NEW The mouse cursor indicates "busy" when datasets are being saved and loaded
NEW A new option on a Label List "Treat Numeric Values As Indicies" enables importing of label data where some entries are raw index values and the modeller wants them to be treated as such.
SPEED Attribute Referenes now store control information in 32 bit values rather than 8 bit values, to increase access speed.
SPEED Portal and Routine attributes values are now faster for reads, as fast as constant and label values.
(attributes used for table row/column references get no speed benefit)
SPEED Routine Attributes are now potentially MUCH FASTER than portal or item attributes for writes. This is because PL now takes advantage of the fact that they do not have views or unblock dependencies.
Routines with long, speed critical iterative loops should use routine attributes then write the results back to item or portal attributes once they are done.
The speed advantage is lost if rounding or range checking is enabled for the routine attribute; PL then has to do the full processing.
SPEED Sped up writing to table cells by inlining a key part of the table code
FIX Interactive inspection of switch conditions was not showing label reference values, this is now corrected.
FIX Initial positioning of the sidebar on some displays was incorrect. Changed the way it gets calculated.
FIX The "Log Viewer" menu item will now execute the correct EXE; previous releases would execute "PLanimate.EXE" if it existed, causing an error message to appear. This was fixed by quoting the entire file spec passed to the Windows shell.
FIX A routine editor opened during a run now shows the comments in the correct column when the run is stopped.
FIX Routine operation Matched Row Copy propagates updates to the cells which have been updated. This is now done cell by cell rather than for the entire row. Also fixes the screen update issue.


NEW A new option in settings->End User "Enable Reading Decimal Commas"
This enables Planimate to read numbers/money where a comma is used as a decimal point, as is the case in European databases. Numbers with normal decimal points will still be read OK.
This only affects reading numbers, they will still be displayed with a decimal point once in Planimate.
It is intended to be used with the number separator enhancement in 5.03n which must be set to a non-comma character.
This change involved rework of the S_TIMEFM module which does all the number and money conversions and the auto-format detection in PL.
Its been tested but be on the lookout for any issues with data entry and/or import.
FIX Debugging with the routine editor open during a run was broken in 5.04b and is now fixed. The new code has the benefit that routine "taken" information is available even if the routine editor was not open at the time the model was run - very useful for "after the fact" checking.
I believe it will also execute faster on modern procesors as I'm avoiding an branch test which would cause a hiccup in the flow of instructions through the processor's pipeline. This is important when one considers that this code is performed for every line of every routine in the model.


NEW Value format x.xxxxxx% for those times when a percentage really needs to be precise.
CHANGE The y-scale on graphs no longer loses its format for values when the yrange is < 0.01.
Doing this was useful when the existing formats did not have precision displays < 0.01 but is no longer appropriate.
NEW IFs, WHILES and Conditions in routines can now be viewed while the model is paused, like the switch.
CHANGE Routine "Taken" information is now always available for all routines, even if a routine editor was not open for the routine (its better to just do the count than to test whether to do it first)


BUGFIX Fixed data copy to the clipboard which 5.04 broke
CHANGE No longer truncate numbers < 0.0001 upon imput or import from clipboard


This release has no new features, however significant rework of the iFlow toolkit has occured.

  • Due to cleaned up windows message processing, the UI will be a bit faster
  • More error checking has been added for window message processing
  • New standard functions for processing number<->string conversions
  • Underlying toolkit (largely) supports Unicode (but PL doesnt yet).

SPEEDUP Have inlined table index processing code. This seems to make table-intensive routine code about 10% faster.

idkbase note 319