The following is a list of features and fixes that have been included in the latest FlexSim releases.
FlexSim 16.0.1
- Fixed a performance bug with stats_staytime() that was causing models to run slowly.
- Fixed a bug with Excel export not working for certain columns.
- Fixed some memory leaks in drawcylinder(), drawcolumn(), drawdisk(), and drawsphere().
- Fixed an issue with dll nodes sometimes not binding properly.
- Fixed bugs with excelcreatesheet() and excelsaveas().
- Fixed a bug with old-structure stateprofiles not resetting properly.
- Fixed a bug with group objects sometimes being added to charts twice.
- Fixed a bug with 3D stats not displaying correctly on some objects.
- Fixed dashboard buttons not saving their text color.
- Fixed a bug where the hover text for combined stats on Stat charts said average for total values.
Conveyor
- Fixed a bug with decision points' current content stats.
- Fixed a bug where items were sometimes not routed to the correct location.
- Fixed a bug where exit transfers sometimes sent items to the wrong port when multiple items were released.
Process Flow
- Fixed some statistics bugs in the Zone.
- Fixed some crashing issues when "Assign To" is given invalid data.
- Fixed a bug with Batch Label Aggregation to keep strings/arrays/etc. with the Last Value and First Value options.
- Fixed issues with the Run Animation not allowing you to pass in an array of objects.
- Fixed an issue with using the wrong instance when pushing/pulling from a List in another Process Flow.
- Improved 3D mouse performance in the ProcessFlow view.
AGV
- Made the addMember method a dll function so Process Flow can connect travelers to any control point using the Create Object activity.
- You can now correctly get an AGV's current control point when it finishes OnPreArrival.
- Fixed an issue with AGV start speeds incorrectly being set to 0 in certain circumstances.
FlexSim 16.0.0 (March 14, 2016)
- Added options to Global Preferences to define which libraries are visible in the Drag-Drop Library and what order they appear in.
- Restored the Media Files window (Main Menu > View > Media Files).
- Added the ability to assign unique random streams to objects in the model using the command getstream().
- Added a Network Navigator Properties window. (Right-click a NetworkNode to access.)
- Added a Track Number Field Totals option to the List for stats collection.
- Added a 'Values Only' data distinction option to the Excel Importer. This data distinction reads number data and string data from excel cells without regard to the cell's formatting (i.e. dates and times are imported as Excel time values).
- Implemented the excelrangeread() command to import a range of cells using the 'Values Only' data distinction.
- Added the command convert() for converting model/Excel dates and times.
- You can now use keyboard shortcuts for debugging. Next Line -> F10, Step Into -> F11, Continue -> F5, Stop Simulation Clock -> Shift+F5
- Updated object statistics to use Tracked Variables for collecting Content, Input, Output, and Staytime statistics. NOTE: These new statistics are only available for new objects. See the Object Statistics backwards compatbility note below for more information.
- Made the sql IN clause work if you compare it against a value that is an array.
- Added trackedvariable() and inittrackedvariable() commands. This allows tracked variables to be created on objects as labels, etc.
- Tracked Variables can now be accessed using the commands get(), set(), inc(), setnodenum(), getnodenum(), getlabel(), setlabel().
- Tracked Variables now have a Type which can be Level, Cumulative, Time Series, or Categorical (see inittrackedvariable() documentation).
- Tracked Variables can now store profiles (similar to state profiles, the profile stores data on the amount of time the tracked variable was at each given value).
- Improved OpenGL compatibility with older graphics cards and Nvidia Optimus cards.
- Fixed an issue with copy and paste in the 3D view not maintaining the z position of the copied object.
- Fixed the Load From File button in the Edit Selected Objects window to call the firecreateevent on loaded objects.
- Fixed an issue with the dashboard Send To Back not always working.
- Fixed an issue with the Experimenter Default Reset Scenario combobox.
- Fixed dashboard snapping.
- Fixed issues with pasting a node onto another node of a different data type.
- Fixed an issue with FlexSim sometimes crashing when a dashboard widget was deleted.
- Fixed a memory leak in the query() command.
Backwards Compatibility Note: the following changes may slightly change the way updated models behave.
- Updated the Combiner so that items can properly exit through port 0 (such as using a Process Flow Load activity).
- Fixed a bug in the Separator state management that was causing it to be idle when it should be blocked.
- Changed the max bones per mesh for bone-animated shapes from 60 to 42.
- Object Statistics: We have changed the default statistics structure for objects in the library. This will not change the structure of existing models, but will now be different for new objects that are created. Specifically, we have made the standard object statistics--namely input, output, content, staytime, and state--use tracked variables instead of the many different object attributes they used previously. This enables us to add new capabilities, such as a content-vs-time graph that exactly reflects the object content changes instead of an interval-based time graph (use the Tracked Variable vs Time chart or the pin button in the Quick Properties Statistics panel), and the ability for Process Flow Wait For Event activites to listen to object content, input, output changes, etc.
Current FlexSim features will work for both the old and new statistics structures. If you have model or module code that is accessing statistical data directly (such as using commands like get(stats_contentavg(object)) or get(rank(state_profile(object), STATE_IDLE))), this code will continue to work on objects that have the older structure, but it will not work for new objects added to the model. If you want this access to work with objects having the new structure, you should use the getstat() command to get the desired data. The getstat() command will work on both the old structure and the new structure. Below is a list of examples of old statistical access commands vs new getstat() based access.
OLD: get(stats_contentavg(object))
NEW: getstat(object, "Content", STAT_AVERAGE)
(Note here that the getstat() command will return the weighted average that includes the time that the object has been at its current content, whereas with the old method, you had to add that on manually).
OLD: get(stats_staytimemax(object))
NEW: getstat(object, "Staytime", STAT_MAX)
OLD: get(rank(state_profile(object), STATE_IDLE))
NEW: getstat(object, "State", STAT_TIME_AT_VALUE, 0, STATE_IDLE)
(Note here that the getstat() command will actually give you the total time in the idle state. This includes the time in its current state if the object is currently idle. With the old method you always had to manually add that in, i.e. get(rank(...)) + (getstatenum(object) == STATE_IDLE ? time() - get(state_since(object)) : 0);
OLD: getstatenum(object)
NEW: getstatenum(object)
The getstatenum() command works on both structures, so you don't need to change it. Alternatively, you can use getstat(object, "State", STAT_CURRENT, 0) (0 is the state profile)
OLD: getinput(object)
NEW: getinput(object)
The getinput() and getoutput() commands work on both structures, so you don't need to change them. Alternatively, you can use getstat(object, "Input", STAT_CURRENT)
Conveyor
- Added Pull and Send To functionality to conveyors. This is done by connecting multiple objects to a single entry/exit transfer.
- Added reset position functionality to conveyors.
- Added additional events to conveyor objects that can be used in connection with the Wait for Event and Event-Triggered Source activites in Process Flow.
- You can now explicitly remove connections from an entry/exit transfer without it being deleted (using the right-click menu). This is useful when sending flowitems to a list where connections are not required.
- Straight and curved conveyors now have an optional Virtual Length.
- Added Priority and Preempt fields to the Exit Transfer.
- Added a Station object. The Station works much like a Decision Point but also allows you to specify a processing time and optionally call operators.
- Added States to conveyor objects.
- Added a CONV_INFO_GET_ACTIVE_ITEM option to the conveyorinfo() command to get a decision point or photo eye's covering item.
- Fixed decision points and photo eyes not saving to user libraries when adding a conveyor.
- Fixed conveyor widths not updating when changing conveyor types.
- Fixed issues not being able to snap decision points to the beginning or end of conveyors.
- Fixed the conveyor type so new conveyors use the default conveyor type rather than Custom.
- Fixed the name numbering of decision points and photo eyes.
- Fixed the Release Area pick option in decision points.
- Various other bug fixes and improvements to conveyors.
Process Flow
- Added a label filter option for tokens in Quick Properties.
- Process Flow View now supports a 3D mouse.
- Updated activity snapping to allow activities to be snapped to the top of other activities.
- Updated the Release Resource activity to allow a reference to a Resource Shared Asset to be passed into the Resources to Release property.
- Blocks of activities and display objects can now be saved in User Libraries.
- Added aligning functionality to the Process Flow view.
- Added snap-to-grid functionality to the Process Flow view.
- Speed improvements to drawing.
- Assign To properties on the Create Object, Push To List, Pull From List and Create Task Sequence can now either overwrite the assigned label's data or insert the data at the front (creating an array).
- When tying the Resource shared asset to a Group, Dispatcher or Array, the Count property now allows you to utilize any number of those objects. This allows you or the experimenter to easily change the number of available resources without objects being added/removed from the model.
- Added a 'Do not remove entries from List' option to the Pull From List activity allowing you to utilize the Request and Require fields without removing entries.
- Tracked Variables can now be added as labels on objects. This allows you to track the history of its values as well as tie it to a Wait for Event activity as a value change listener.
- Fixed issues with the Finish/Sink activity not properly deallocating shared assets if they still had children in the model.
- Additional bug fixes and overall improvements.
- Fixed exceptions sometimes being thrown when dragging connectors around.
- Fixed the Priority field in the Create Task Sequence activity.
- Fixed some issues with listening to the OnStateChange of objects.
- Fixed an issue that caused large numbers of TE/FR instances to take a long time to reset.
- Fixed an issue with the Resource when using a Local type with each instance having a unique resource reference.
Backwards Compatibility Note: the following changes may slightly change the way updated models behave.
- The Assign Labels activity used to allow you to pass in a treenodearray or a Group so that it assigned labels to multiple objects at once. Now the Assign Labels only accepts one treenode at a time. Passing in a treenodearray will cause only the first entry in the array to have labels assigned to it. To update any old model utilizing this functionality, loop through each object in the array using the Object from Label Array pick option.
AGV
- Updates to AGV travel tasks and preempting.
- Some minor bug fixes.
Backwards Compatibility Note: the following changes may slightly change the way updated models behave.
- AGVs will now read the end speed of the travel task and use it to determine when to finish the task. This means that if you have an existing model where you defined a non-zero end speed of a travel task, older versions would have ignored this, but now the end speed will be simulated properly. Please see the user manual topic on AGV Types for more information on how the end speed is simulated.
- We changed the AGV preemption mechanism so that:
- When you preempt an AGV, if you do not immediately give it a new travel task, it will decelerate to stop after the preemption occurs. In previous versions the preemption mechanism stopped the AGV immediately.
- If you preempt an AGV and then immediately give it a new travel task, it will start the new task at the speed it was at before it was preempted. In older versions, a preemption would cause the AGV to immediately stop and then start from speed 0.
FlexSim 7.7.4 (January 28, 2016)
- Fixed an exception in the VideoRecorder.
- Fixed a bug with list back orders table sometimes not drawing.
- Fixed a bug with the BasicConveyor recycling itemtype nodes.
- Fixed a bug with coordinated task sequences.
- Fixed a bug with compiling using Visual Studio 2015.
- Fixed a bug with the Ticker component list table.
- Fixed an issue with getvarnum() returning treenodes when it shouldn't.
- Fixed an exception when debugging uninitialized treenode variables.
- Fixed a scaling issue with changing the operator's shape with different model units.
- Fixed a bug with some vrml textures not displaying correctly.
- Fixed bugs with certain configurations of drawcylinder(), drawcolumn(), drawcube(), and drawsphere().
Conveyor
- Fixed exceptions that were thrown when an item straddling multiple conveyors exits through an exit transfer and it is still taking the speed of the upstream (sending) conveyor.
Process Flow
- Fixed the Resource Queue Strategy.
- Fixed a bug where FlexSim would crash when opening some models.
- Fixed issues with using the Create Object activity to TaskExecuter Flowitems on Network Nodes that were inside of Visual Tools.
FlexSim 7.7.2 (January 8, 2016)
- Fixed Elevators, Cranes, and ASRS objects not resizing correctly for different model units.
- Fixed an issue with the List Entries debugging tool not allowing you to sample objects.
- Fixed the default header for the OnStateChange trigger.
- Fixed an issue with displaying variants in the local/watch variables windows of the debugger.
- Fixed a bug with drawtomodelscale() and drawtoobjectscale() commands.
- Improved the performance of XML loading and saving.
- Fixed the gettablestr() command when a Global Table is set to use a bundle.
- Fixed a bug with using global lists in the query() command.
- Fixed bugs that caused child experimenter processes to die unexpectedly.
- Fixed a bug where code windows would sometimes not show the text when multiple windows were open together.
- Fixed a bug with multisorttable() not working correctly with descending column sorts.
- Improvements to quick properties for faster updates and better scroll management.
- Added an Update Locations picklist to Enter/Exit triggers.
Backwards Compatibility Note: the following changes may slightly change the way updated models behave.
- Fixed drawtext()'s rotation parameters so that they match FlexSim object rotations.
AGV
- Fixed issues with agvaddlistener and cpaddlistener not interpreting object references correctly.
Conveyor
- Fixed a smooth transfer interpolation bug when an item is straddling three conveyors.
- Fixed an issue where an item merging onto a conveyor doesn't merge properly if it is blocked by an item that is diverting from the conveyor.
- Made various fixes for undo functionality.
- Fixed an issue with speed drivers not properly calculating accumulation block points in specific scenarios.
Process Flow
- Fixed an issue with trace histories not displaying in FR/TE Process Flows.
- Fixed an issue with viewing List back orders for instanced Process Flows.
- Fixed the Wait for Event and Event Triggered Source to properly pass in the eventRank.
- Fixed an issue with containers sometimes not moving activities inside of them.
- Fixed an issue with entries on a List not properly being removed when a token was released manually from the Push to List activity.
- Fixed issues with using Process Flow Variables in the Experimenter.
- Fixed issues with saving Process Flow dashboards and using Process Flow dashboards as PFMs in the Experimenter.
- Fixed an issue with connectors not being renamed properly.
- Tokens are now destroyed when sitting in Sink/Finish activities once all of their shared assets are deallocated.
- Improvements to the Universal Edit fields (you can now select a portion of text in the field and use the sampler or select a label from the drop down).
- Improved zooming in the Process Flow view.
- Improvements to quick properties for faster updates and better scroll management.
- You can now manually release a token from a Run Sub Flow activity using the releasetoken() command.
- Updated the Custom Task Sequence activity to use an edit field for the task type to allow for user-defined custom tasks.
- Update the Delay Task Activity to display the delay time on the token.
- Updated the Process Flow dll to allow user-defined modules to extend Process Flow with custom activities.
- Added OnEntering, OnExiting, OnManualRelease, OnAssetAllocated, and OnAssetDeallocated events to the token.
- Added additional Array picklists for the Assign Labels activity.
FlexSim 7.7 (November 23, 2015)
- Added a Process Flow module for handling complex logic using flowcharting.
- FlexScript now has a var type which can be any of the current variable types (number, string, treenode, intarray, doublearray, stringarray, treenodearray).
- Bone Animations - Animator can now import 3D models with bone animation data and set those to FlexSim animations.
- Added Global List objects to the Toolbox (see User Manual > Modeling Tools > Global List).
- Global Tables can now store their data in a bundle rather than in nodes.
- Arrays (int, double, string and treenode) can be stored on nodes such as labels.
- Arrays are now viewable/editable as tables.
- Labels can also store pointers to other objects using the setlabel() command.
- Deprecated parnode(), parval() and parstr() and replaced with param().
- Added an arraysize() command.
- Added support for Oculus Rift.
- Added support for using Xbox 360 Controllers.
- Added a global preference for displaying the 3D view's frames per second.
- Added a Truck TaskExecuter Flowitem.
- Added a Custom Gantt Chart dashboard.
- Dashboards now have the ability to scroll.
- Added a precision property to dashboard stat widgets.
- Added a spinner object to the dashboard model input objects.
- Updated dashboard charts to rebuild their data if pointing to a group and the number of group members changes during the model run.
- Dashboard charts can now be copied and pasted.
- Removed the AVI Maker and replaced it with the new Video Recorder.
- Added an "Available at Simulation Start" option to TaskExecuters that causes the OnResourceAvailable trigger to fire at time 0.
- Changed many Quick Properties panels to apply to all selected objects.
- Improved the Rotated Selected and Flip Selected so you can click in the 3D view and select a rotation axis.
- Added a Model Layout option to the Experimenter Variables.
- Improved the Experimenter web viewer export so view can be customized.
- Task Sequences now have the ability to store their own labels.
- Improvements to FlexSim's display for non-standard DPI settings.
- Added a panel to Quick Properties that allows for saving high resolution images of the 3D view (this can also be done through the viewtofile() command).
- Updated TrackedVariables to be a simpledatatype object instead of a node with a bundle.
- Typing shift+enter in a table cell creates a new line rather than moving to the next cell.
- Changed the UI for flowitem packing methods so it makes more sense.
- Added a flowitem packing method - Layer Stacking By Item Size
- Added On State Change triggers to the BasicTE and BasicFR trigger pages.
- Got rid of the usage of FRLOAD and FRUNLOAD. USe LOAD and UNLOAD instead.
- Updated the updatelocations command so that if you pass an item in as the object parameter, it calls updatelocations on the parent object of the item.
- A lot of general improvements to drawing performance.
- Improvements to how model data is saved to remove differences in the xml files.
- Added a page to the User Manual about model repeatability (FlexSim Concepts > Model Repeatability).
- Deprecated the getmodelunitnum() and getmodelunitstr() command and replaced it with getmodelunit().
- Deprecated Global Task Sequences. User Process Flow instead.
- Improved User Manual search results to display the most relevant results first.
- Improvements to the License Activation window.
- The middle mouse button can now be used to pan in the 3D view and scrolling with the mouse wheel now zooms relative to the mouse location.
- Added statisticaltime() command.
- Added rangemin and rangemax attributes to an Edit field to define a range of valid values that can be entered (options have also been added to the Dashboard).
- Added all FlexScript commands as sql scalar functions.
- Adding support for the HAVING clause in the query command.
- Added the == operator to the sql parser.
- Added an option to the Excel Importer to allow you to import cells formatted with Dates/Times as numbers when using the Automatic Data Distinction setting.
- Changed Copy to also put the path to the highlighted object onto the clipboard and removed Copy Path to Clipboard from the tree's right-click menu.
- Improvements to the Excel Importer's Automatic Data Distinction option. It now correctly determines if a cell has a number in it but is stored as text. In this case, instead of importing a numeric value of 0, it will import the text as a string.
- Fixed Time Plots in the dashboard so they clear their data after the warmup time is complete.
- Fixed a bug with the visual tool inner connections not surviving copy/paste correctly in certain cases.
- Fixed the visual tool so it can have multiple internal connections go through each other.
- Fixed the Elevator so the delivery platform properly lines up with wherever the item is being dropped off at.
- Fix for Task Executers so the endspeed works for offset travel.
- Fixed fly paths to run in real seconds when not running with the simulation time.
Backwards Compatibility Note: the following changes may slightly change the way updated models behave.
- Fixed resource item state variables are now stored with a custom data structure instead of being stored directly in the tree. This means that if you previously accessed an item's fixed resource state directly through the tree instead of using the commands getitemstate(), getitemsendto(), getitemvar(), etc. your model will need to be updated to use those commands.
- Previously, drawfont() would only change the font for one call of drawtext(). Now, calling drawfont() will change the font and leave it that way until it is changed again.
- Fixed the 50-flowitem receive limit on the combiner, processor, and rack. This will break old models if your model is dependent on this bug.
- Null Variants no longer equate with 0 (NULL). We have added the "nullvar" keyword that equates with null Variants. This could affect models that use getlabel() on a label that does not exist. For more information, see getlabel()'s documentation.
- The following commands now take/return Variants instead of doubles:
- nodefunction()
- sendmessage()
- function_s()
- function_n()
- userfunction_s()
- userfunction_n()
- nodefunctionlisten()
- delayednodefunction()
- addbundleentry()
- applicationcommand()
nodefunction(x, tonum(current)); // BAD CODE
nodefunction(x, current); // GOOD CODE
The problem here is that if you cast it into a number, and on the other side someone wants a node, the Variant thinks it's a number so it won't give back a valid node.
Additionally, all flexscript and c++ code nodes now return a Variant instead of a double. This also has implications.
return tonum(centerobject(current, 1)); // BAD CODE
return centerobject(current, 1); // GOOD CODE
Here again, if you put something into a number, and then on the other side it wants a node, the variant realizes it's holding a number and won't give back a valid node.
We have implemented an update script that will search the model for this type of code and will update the code to not use tonum(). The update script logs any changes made, putting the log in the node MODEL:/Tools/CodeUpdateLog.
The update script will make the following changes:
- return tonum(...);
changes to:
return (...); - For each of the above mentioned commands, the update will search the model for calls to this command, and will update the parameters as follows:
nodefunction(theNode, tonum(...), tonum(...));
changes to:
nodefunction(theNode, (...), (...));
double myVal = tonum(...);
return myVal;
or,
double myVal = tonum(...);
nodefunction(theNode, myVal);
In saying this, please realize that leaving number casts in these areas may continue to work properly, particularly if you the user control both sides of the pass-off, i.e. you have implemented both the caller side and the callee side. For example:
Caller side:
nodefunction(theNode, tonum(theObj));
Callee side:
treenode myVal = parnode(1);
This example should actually work properly. We have deprecated parnode(), parstr(), and parval() and replaced them with a single param() command that returns a type-safe Variant. However, the deprecated commands will essentially try their best to take whatever was passed in and put it into whatever you want. So parnode() will see a number, and try to get it into a treenode. This is the same for returns:
Callee side:
return tonum(myObj);
Caller side:
treenode myObj = tonode(nodefunction(theNode, ...));
Again, this should work, because tonode() and tonum() will essentially try to take whatever is there and put it into a number/node.
Where this will break is where one side is using the type-safe method while the other is not.
Caller side:
nodefunction(theNode, tonum(theObj));
Callee side:
treenode myVal = param(1); // WILL NOT WORK BECAUSE param(1) IS A NUMBER NOT A NODE
On FlexSim's side we have moved all (or most) of our code over to using the type-safe method. Thus any calls that interact between FlexSim code and your code should use the type-safe method. We hope that the proactive update script will resolve this for 99.99% of cases.
Conveyor
- Fixed a bug with exceptions throwing when an item is picked by an operator while straddling two conveyors.
- Fixed bug that was caused when you have skewed rollers and the item size is less than half the width of the conveyor and you go through a merging side transfer.
- Fixed a bug with side transfers when the item is already moving to an inline transfer.
- Fixes to rotate selected and flip selected for Conveyors.
- Bug fixes on drawing conveyors.
- Fixed entry/exit transfer connecting with network nodes.
- Added listenable events for Conveyors, Photo Eyes, and Decision Points, allowing Process Flow to listen for conveyor events.
- Fixed an issue with transfers being deleted when you click on a visual tool
- Fixed photo eye draw with offset angle.
- Added list push/pull pick options for Decision Points and Photo Eyes.
Process Flow
- Released a new Process Flow module. See Why Use Process Flow for more information.
FlexSim 7.5.4 (April 24, 2015)
- Fixed an issue with installing flowitems from user libraries.
- Fixed an issue with the undo history in the Global Variables window.
- Added a Delete Path option to the context menu of Network Node paths.
- Fixed the Match Whole Word option in the Tree Search panel.
- Fixed an issue with task sequences to allow for creating more than 65,535 tasks.
- Fixed an issue with visual tools as containers storing correct stats when a warmup time is used.
Backwards Compatibility Note: the following changes may slightly change the way updated models behave.
- Fixed a bug with "Do not travel offset and block space on networks" where task executers started at their endspeed even after a load/unload or after an extended period of time.
- Fixed a bug with TEs jumping to their max speed when leaving a network to do offset travel.
Conveyor
- Fixed a bug that was causing exceptions when you copy/paste conveyors from one FlexSim instance to another.
- Fixed a bug with sending to the correct exit transfer when there are multiple transfers at the end of a conveyor.
- Fixed an issue where a conveyor transfer's inline speed rule was not being followed when transferring from a previously blocked non-accumulating conveyor.
- Fixed a bug causing exceptions when you reset the model in certain power and free models.
- Fixed a bug where accumulation stop events weren't being created at the right times (bad calculation of gap close point).
- Fixed issues with calculating the accumulation split time.
- Fixes for acceleration/deceleration, accumulation stops and speed changes.
- Fixed bugs with connecting from an object inside a visual tool to a conveyor.
- Fixed bugs with the kinematics and finish time not working on side transfers.
- Fixed a bug that created two output port connections from a Decision Point to an exit transfer.
- Fixed issue with accumulation split events being created at time FLT_MAX.
- Fixed issues with place offset onto an entry transfer
- Fixed an issue that sometimes caused items to move beyond their conveyor and ignore other items when doing an inline merge that accumulates to the merge point.
- Fixed exceptions throwing when building conveyor models with code.
- Fixed issues with adding conveyor types and transfer types to models with scaled units.
- Fixed an issue with stopped decision points not being resumed on reset.
FlexSim 7.5.2 (March 4, 2015)
- Several fixes to the conveyor module (See the conveyor module's release notes topic).
- Updated images for the custom user toolbar items.
- Fixed an issue with docking 3 tool windows on the left or right side (the third would docked above the others).
- Fixed issues with the help manual throwing exceptions when there was no internet connection.
- Made it so the Reports and Stats export can export all object types, including module classes.
- Made a time graph only update its stats at the timed intervals (not on repaint), so custom stats don't get called repeatedly.
- Fixed the DWG importer to properly show the layer colors.
- Fixed an issue with the model floor not drawing properly.
Conveyor
- Added an optional "force" parameter to conveyorresumeitem(), which override the stop/resume counting mechanism and force the item to resume.
- Fixed issues caused by conveyors with invalid spatial properties messing up snapping and causing other conveyors to disappear when you drag them.
- Fixed an issue with not being able to connect network nodes to entry/exit transfers
- Fixed an issue with doing an inline divert at a point where items accumulate
- Fixed an issue with items still being rotated when they leave the conveyor system
- Fixed an issue with transfers from faster to slower non-accumulating sections and the item accumulation at the transfer point.
- Fixed a bug where items get off-center over time in a conveyor system.
- Fixed an issue with double-clicking on conveyor transfers.
- Fixed an issue with feeding items into a Combiner.
- Fixed a UI glitch where if you drop a Decision Point or Photo Eye onto a conveyor, it is placed inside the conveyor in the tree.
- Fixed a UI bug with defining the location of an Exit/Entry Transfer on a curved conveyor.
- Fixed an issue with slug building on an accumulating section where other things are done on the section such as stopping/starting items manually.
- Added off-network routing logic for exit-to-entry transfers directly between two conveyors, so a user can dispatch from one conveyor to another that's not connected to it, using conveyorsenditem().
- Added a color property to Conveyor Types. If you defined them manually on the conveyors before, you'll need to redefine them on the conveyor types.
- Added an optional delay time for releasing and exiting a restricted area. This can be used to define variable gapping.
- Added Area Restriction examples to the documentation.
- Added a Conveyor Commands topic to the user manual, which links to the Conveyor command group in the command documentation.
- Added a message trigger to Photo Eye and Decision Point types.
- Fixed an issue with motors not properly syncing power and free dog positions across their member conveyors.
- Various other minor fixes.
FlexSim 7.5.0 (January 28, 2015)
- Added a new conveyor module and deprecated the legacy conveyor set.
- Improvements to the User Manual's user interface.
- You can now use the windowtitle attribute for a User Library.
- Fixed a crash when you call stopobject() on a FluidToItem.
- Fixed an issue with Export All Dashboards to HTML not properly laying out the widgets.
- Fixed a bug with importing Chinese characters from Excel.
- Fixed an issue with the Rack never returning to an idle state after calling for a transporter.
AGV
- Fixed a bug with preemption.
AStar
- Made Preferred Paths take priority over barriers, so that you can make a Preferred Path act as a "bridge" across an area where an object barrier would otherwise block it.
- Improved the object barrier implementation to better take into account rotated objects.
- Made a mechanism that allows object members to customize the way the grid is defined for them, specifically to allow objects like the curved conveyor in the new conveyor module to work as an object barrier.
- Fixed a bug that caused TaskExecuters attached to the A* Navigator to not reset their positions on model reset.
Conveyor
- Released a new conveyor module. See About Conveyors for more information.
FlexSim 7.3.6 (October 9, 2014)
- Fixed negative events to go back to previous functionality of setting the event time to the current model time.
- Fixed drawRect command drawing dark when shaders were enabled.
- Fixed opening saved Default 3D Views.
- Fixed the Filter Field in the Library to work with User Library Objects.
- Fixed an infinite loop when resuming a Dispatcher with circular connections to it's team members.
- Fixed issues with adding Performance Measures from Dashboard Statistic Widgets with Groups and grouped objects.
- Fixed the double-click feature in the Performance Measures results window graph (to display the associated dashboard).
- Fixed issues with exporting Experimenter results to Web Viewer format.
- Fixed some issues with updating model libraries to the latest version of FlexSim.
- Added flow item packing method to items saved to model libraries.
- Fixed renaming User Commands from the Toolbox to no longer remove the user command code.
- Fixed number precision values on the Financial Analysis widget to correctly store high precision numbers.
- Fixed the Gantt Chart displaying erroneous data when using a collect time.
- Fixed the Duplicate button in Edit Selected Objects so it no longer copies objects inside themselves.
- Fixed the Draw Surrogate option for animation components.
- Fixed the code snippet popup in triggers to allow for multiple lines.
- Fixed grid snapping in the GUI Builder.
- Fixed undos with the sizing panel in the Quick Properties.
- Fixed FlexSim compiling with Visual Studio 2012.
- Updated Toolbox right click options.
- Updated commands documentation for bundle commands to include that they are base 0.
- SQL query columns will now first look for named sub-nodes and then for object labels.
FlexSim 7.3.4 (September 2, 2014)
- Fixed exceptions being thrown when using the Debugger.
FlexSim 7.3.2 (August 28, 2014)
- Fixed a bug in the MTBF/MTTR and TimeTable to allow for all Down States.
- Fixed a bug in the Optimizer GUI when checking Manual stop only.
- Fixed a bug on the merge sort not resetting its input table properly.
- Fixed Model Units for Gallons so it no longer displays as Fluid Ounces.
- Fixed an issue with older models not properly opening Global Tables from the toolbox.
- Fixed a bug in the queue when it has a non-integer maxcontent.
- Restored ExpertFit.
FlexSim 7.3.0 (July 31, 2014)
- Added an autosave feature to global preferences.
- Took shaders/shadows out of beta and added preferences for hard and soft shadows.
- Improved support for stereoscopic 3D including shadow support.
- Add a floor object.
- Added an autosave feature (set in Global Preferences).
- Added alignment property to dashboard model input widgets.
- Added a dashboard GUI class model input widget.
- Added support for linking to groups in dashboard statistics widgets.
- Added support for selecting multiple dashboard widgets.
- Dashboard dynamic model input fields and edit fields can be tied to global variables.
- Improved support for Full Screen mode including stereoscopic 3D and multiple monitors (F11 to switch in and out of full screen).
- Improved 3D mouse support.
- Removed the Tools menu and added an organizable Toolbox.
- Added Date Based mode to TimeTables.
- Added optional stateprofile parameter to stopobject and resumeobject commands.
- Added Stop Date & Time to the Experimenter.
- Fixed the Reports and Statistics available classes GUI.
- Fixed an issue with adding/editing triggers in the dashboard causing FlexSim to crash.
- Fixed an issue with exporting multiple TrackedVariables statistics to CSV files.
- Fixed an issue with aligning model input objects to the left/top of the dashboard.
- Fixed Content vs Time graph not collecting data when defined for a time interval.
- Fixed an issue with setting long object names/paths in bundles and dashboard statistic objects.
- Fixed tabbing in Quick Properties causing FlexSim to crash.
- Added flexscript commands for use with Stat::Fit.
- Added search results to Command Helper window.
- Added copy/paste functionality to Dashboard (Model Input Widgets only).
- Updated the Automatic Data Distinction in the Excel Importer to more correctly import numbers.
- Added sql query() support for LIKE, GROUP BY, and non-trivial expressions in the SELECT column clause.
- Update the Excel Import/Export to handle importing into bundles and export bundle data.
Backwards Compatibility Note: the following changes may slightly change the way updated models behave.
- Expressions can now be used in select columns of an sql query. In order to do this we needed to change our sql grammar to be more compliant with standard SQL. This means you can no longer use the AS clause in a WHERE or ORDER BY statement. You can now only use AS in SELECT and FROM clauses.
- Some parameter types for the query command have changed in c++ for more flexible type definitions. This means if you use the query() command in a c++ dll, you'll need to update your dll's headers and recompile the dll. If you use straight c++ compiled code or flexscript for your query() command, then this should just update.
- Removed expertfit. Use Stat::Fit.
AGV
- Fixed incorrect travel distance calculation.
- Fixed an issue with shadow rendering while manipulating paths.
- Added help manual file AGV > Objects > Control Point.
- Fixed a bug that threw exceptions when diverting AGVs to an elevator.
- Fixed various tool tips.
- Fixed default proximity stop distance.
AStar
- Added a picklist to the Transport Ref for adding TaskExecuter FlowItems to the AStar Navigator.
- Fixed an issue with attaching TaskExecuters to AStar when they weren't already connected to a navigator.
- Updated barriers to draw resizing arrows.
FlexSim 7.1.4 (April 15, 2014)
- Fixed an issue with the Excel Import not properly handling importing multiple sheets from the same file.
- Fixed Basic Conveyors and Merge Sorts not drawing with shaders on.
- Fixed loading SimpleDataType nodes in modules in the Experimenter.
AGV
- Fixed a bug with preemption not working properly.
- Fixed an issue with exceptions being thrown when beginning a travel task.
- Added support for accumulating paths.
- Added a feature to explicitly force a defined AGV orientation on a path.
- Added a feature to allow you to attach a load to the AGV as a trailer/tug.
- Added a quick properties button to switch the primary direction of a path.
- Added better support for preemption.
FlexSim 7.1.2 (March 27, 2014)
- Fixed a memory leak with the 3D view.
- Fixed GlobalTables so they save their cell width and cell height.
- Fixed a bug in the MTBF/MTTR that caused the downtime value in the down function to always be 0.
- Fixed a bug causing Keyframe triggers to not be fired in operator animations.
- Fixed Animation Editor > Draw Surrogate > Main Object Content.
- Fixed Animation Editor > Component > Rotational Centroid fields.
- Fixed issues with editing animations in models where units were not meters.
- Fixed an issue causing global variables to be renamed to NULL when creating multiple global variables at the same time.
- Fixed exceptions being thrown when you try to use shaders in compatibility mode.
- Fixed issues displaying skp files while using the A* Module.
- Fixed an issue with not being able to select views in the GUI builder.
- Fixed DLL loading to properly load DLLs from the model directory.
FlexSim 7.1.0 (March 10, 2014)
- Added Financial Analysis Dashboard Widget.
- Added Custom Dashboard Widget to allow any numeric data to be displayed in the dashboard, including table data, bundle data, global variables, etc.
- Added State Gantt Chart Dashboard Widget.
- Added a FlowItem Trace Gantt Chart Dashboard Widget.
- Dashboard table data can display current state values as strings.
- Added functionality to export dashboards to HTML.
- Moved the statistics tab out of object properties windows and into the Quick Properties window.
- Labels, tables, statistics, global variables and tracked variables can be "pinned" to the dashboard.
- More options to customize Dashboard Widgets (font size, bar size, custom display names, etc).
- More Model Input objects in the Dashboard including Radio Buttons, Listboxes, Trackers and Tables.
- Added picklist options for starting and stopping animations.
- Added picklist option to display labels on FlowItems in the 3D view.
- Moved the User Manual into FlexSim as a dockable window.
- Redesigned Robot GUI.
- Animation variables can point to components in an animation for quick referencing, not just surrogates.
- Improved User Toolbar items for Dashboard, GlobalTables, TimeTables and MTBF/MTTR buttons to allow for opening the objects.
- Improvements to shadows, shaders and mesh drawing.
- Improvements to the SKP Reader.
- Removed Model Views utility and placed it in the Quick Properties window.
- Added a "Headlight" feature to light sources.
- Updated Excel Importer/Exporter to handle relative paths of workbooks to the model.
- Improved the Excel Import's excelreadstr() and Automatic Data Distinction to more accurately read in values from excel, including dates and times.
- Added double click to open colors panel to all color wells.
- Fixed model unit scaling with flowitems when creating new models.
- Fixed issues with copying network nodes in containers.
- Fixed a bug in the Excel Import on Reset not handling multiple workbooks.
- Fixed a bug in the timetables causing the duration passed in to picklists to sometimes be negative.
- Fixed issues with closing/reopening dashboard widgets.
- Fixed sizing issues with dashboard widgets.
- Fixed Rack shelf tilt.
- Fixed an issue with having TaskExecuters using navigator logic for offset travel.
- Updated Move into Highlighted object to move into the model if no object is highlighted.
- Fixed a bug with running flypaths using model run speed.
- Fixed issues with adding flowitems to User Libraries.
- Fixed sizing issues with the Crane.
- Fixed a problem where Global Variables were not being properly loaded using save/load state.
- Fixed an issue with saving views in Full Screen Mode.
- Fixes to the Conveyor's drawing.
- Fixed issues with the Shape Frame tab of the Quick Properties window.
- Fixed a bug with the Basic Conveyor causing flowitems to not always exit when they're supposed to.
- Removed FlexSim Chart and save full history.
Backwards Compatibility Note: the following changes may slightly change the way updated models behave.
- The order in which MTBF/MTTR triggers is fired has been changed to reflect the documentation. Now the down/up trigger fires AFTER the down/up function. This may cause problems in models that depend on the down/up triggers firing before the down/up functions.
- Excel Multi Table Import using Automatic Data Distinction will import empty cells as string data, rather than as the number 0.
AGV
- Fixed a bug with cpaddlistener() where the control point wasn't passing the right values into the listener callback.
- Fixed a bug with custom control point allocations not being cleared on reset.
- Fixed a bug where an agv will "jump" if turning around at a path section that doesn't fit its full length.
- Fixed a floating point precision issue where the agv doesn't always deallocate a control area on arrival at the next control point and thus causes deadlock with himself when he needs to reallocate the area after turning around for the next task.
- Fixed a bug with deallocation events not being created at the correct time.
AStar
- Fixed calculations for total travel distance on TaskExecuter objects.
- Fixed an issue with using offset travel and traveltoloc tasks.
- Added Help Manual to FlexSim.
- Fixed an issue with TaskExecuter's being set to state TRAVEL_LOADED when the state should have been TRAVE_EMPTY.
- Added VisualTool to objects that can be added to the AStarNavigator as barriers.
- Fixed issues with FixedResource and TaskExecuter objects that are inside container objects.
- Barriers created by FixedResource objects can now be rotated 90 degrees.
- Fixed bug with using AStar in models using units other than meters.
FlexSim 7.0.6 (January 8, 2014)
- Fixed an issue in the installer regarding Optquest dll registration.
- Added support for compiling with Visual Studio and Visual Studio Express 2013.
- Fixed the duration passed into the TimeTable down function when the last row is combined with the first row.
- Fixed a bug with time tables when the model start time is on a Sunday.
- Changed the Event List to save its filters when the model is saved.
- Fixed an issue with global variables when saving or loading state files.
- Fixed a bug in Display Date and Time pick option.
- Fixed a bug with exporting bundle string data.
- Fixed an exception when documenting user commands with improperly formatteddescriptions.
- Some fixes to the query() command.
FlexSim 7.0.4 (December 3, 2013)
- Fixed a bug with the refresh rate overlay showing for educational users.
- Fixed an issue with library installcomponents not getting installed.
- Fixed a bug with the model start time getting reset incorrectly.
- Fixed issues with Labels not showing up in Dashboard Properties window.
- Fixed issues with saving open properties windows and top level windows.
- Refactored TimeTables to minimize the number of events created.
- Fixed issues with recursive debugging hiding the debug toolbar.
FlexSim 7.0.2 (November 12, 2013)
- Fixed a bug with the Pick Operator with Animation picklist.
- Added scroll bar to Labels page Tree View.
- Fixed bug in Processor that showed item conveying when stopped using STATE_BLOCKED.
- Added code to read texture repeats/offsets into the assimp importer so that .ac file textures render more accurately.
- Fixed some import and display issues with SKP files.
- Fixed a bug that was occasionally causing WebKit to crash.
- Fixed a bug in the Presentation Builder that was causing the first flypoint to jump beyond the second flypoint.
- Fixed issues with the TimeTable repeating daily.
- Fixed parqty() issue on nodefunction, user commands, function_s, etc.
- Fixed bug in Dashboard to display current content of Fluid Objects.
- OnCreate now gets fired for all objects inside a container when the container is copied.
- Fixed an exception in the Startup Page's OnPreLoad when there was an invalid recent models path.
- Updated Experimenter PFM graph to draw the box plot on top of replication points.
- Made it so foreign languages' dashboard statistic names will be properly associated with the visible name that they're dragged from.
- Fixed bug with changing the model start time and it not being reflected in the model stop time.
- Fixed reset exceptions on presentation slide.
- Fixed a bug that crashes FlexSim when you call startanimation with a rank that doesn't exist.
- Fixed bug causing FlexSim to crash when copying NetworkNodes.
- Fixed round() to work properly with negative numbers and large numbers.
- Fixed triangular distribution from dividing by 0.
- Fixed issue with debugging on a script window script when the first line is commented.
- Other various bug fixes from the development list.
FlexSim 7 (October 14, 2013)
- New User Manual with a more usable structure.
- 64-bit version (enables FlexSim to use more RAM).
- Windowing interface overhaul to use a docked window paradigm.
- Created a Quick Properties docked window that is context sensitive. The window will display the most used properties based on the current selection or the active document window.
- Tree Find/Replace is now integrated with the Quick Properties window and has support for case-insensitive searches as well as searching for node names.
- Library Icon Grid enhancements to include filtering, collapsible groups and edit modes.
- Library Icon Grid is context sensitive and changes its display based on the current selection or the active document window.
- Added a sampler button that is placed throughout the software to allow users to sample images, 3D media, objects, nodes, numbers, strings and colors. The sampler helps to eliminate some need for writing code.
- Downloads page that gives functionality to download and install Modules, 3D Shapes, Images and Models.
- Added a Measure/Convert tool
- Improved script console allowing scripts to be saved both in individual models and to the user environment. You can also now debug your script console code.
- Improved Presentation Builder interface.
- Improved the Flowitem Bin interface including making packing modes for container flow items visible and editable. Flowitem shapes may be changed through a drag and drop from the Library Icon Grid.
- Flowitems can now have their own custom animations.
- Improved the employment of shape frames in FR objects and Flowitems.
- Added a No Select flag to all objects.
- Added a multi-table Excel export and overhauled the Excel interface to match the MTEI. The new MTEI includes an option to automatically reimport tables on reset.
- Improved Animation Creator, including dynamic animations using animation variables, more detailed editing of keyframes, and keyframe triggers. 3D shapes may be added to an animation through a drag and drop from the Library Icon Grid.
- Created a global model start date/time that is tied to TimeTables. A stop date/time may also be specified.
- Revamped TimeTable window. A daily or weekly schedule may now be imported through the MTEI.
- Added and updated several picklist popups removing all text based picklist options.
- Improvement in the Code Editor and other areas where logic is defined through draggable constructs in the library icon grid and sampler buttons throughout popups and picklist widgets to automatically add code, etc. FlexSim commands also display a short description when typing in the code editor.
- Picklist fields and many popup fields have code highlighting and autocomplete.
- Added some Flexscript implementations of lambda expressions.
- Better debugger that allows you to access the tree and other areas of FlexSim while in debug mode. Hovering over variables during debug mode will display their current value.
- Panel control GUI enhancements.
- Added dashboard constructs that will replace most need for the GUI builder: Users can now do model input through dashboards instead of having to use the GUI builder. Multiple dashboards may be created.
- You can now pick which navigator a TE is connected to through their properties page (allows you remove them from all navigators).
- New hot keys/accelerators. Ctrl+K and Ctrl+L to resize objects up or down by 5%. Ctrl+W to close the active document window or the active floating window. Updated Ctrl+Tab and Ctrl+Shift+Tab to moved between tabs in the active floating or document window.
- Added the FluidConveyor to the default fluid library.
- Can now view an object's events by right clicking an object in the 3D view and selecting View | View Object Events.
- Complete OptQuest overhaul (includes multi-core support and experimenter integration).
- Better support for importing 3D shapes. FlexSim now supports the following formats: *.wrl; *.3ds; *.dxf; *.stl; *.skp; *.dae; *.obj; *.ac; *.x; *.ase; *.ply; *.ms3d; *.cob;*.md5mesh; *.irr; *.irrmesh; *.ter; *.lxo; *.csm; *.scn; *.q3o; *.q3s; *.raw; *.off; *.mdl; *.hmp; *.scn; *.xgl; *.zgl; *.lvo; *.lvs; *.blend
- Added a new mesh class for drawing in OpenGL.
- Stereoscopic 3D rendering (requires workstation Quadro or FireGL card for frame-sequential rendering).
- Enhanced graphical compatibility with integrated Intel cards.
- Improved 3D rendering, including shadow rendering, specular highlights on 3ds objects, bump maps, parallax maps, etc.
- Module Development SDK, including:
- Added SimpleDataType data type, which is a low-overhead class for fast, memory-efficient aggregation of data and for better object-oriented module code, with an easy mechanism for saving in the tree.
- Updated visual studio wizards that work with VS 2012
- A module sample tutorial.
- More Documentation.
Backwards Compatibility Note: the following changes may slightly change the way updated models behave.
- Removed 2D Shapes from objects.
- Removed the Planar view.
- Many open gl commands have been deprecated. The model update mechanism tries to replace all old usages with the new graphics usages. Usually this should work, but in some cases it may not. Note that glBegin(), glEnd(), glVertex(), glNormal(), glTexCoord() have all been completely deprecated, and eventually will no longer work. Going forward you should use the mesh api.
- The spaceobject() command has been deprecated and no longer works. In optimizing the graphics engine we realized that a 5-20% refresh rate improvement can be attained simply by removing functionality that is solely there to make the spaceobject() command work. So we've deprecated this command. It is still in the command list so models will update, but updated models that use it will have weirdly drawn shapes.
- OnLoad is no longer dispatched by the engine when a project/tree is loaded. If you have custom objects that depend on this event, you will need to use some other mechanism to fire logic when the model loads, i.e. through the OnModelOpen, or through model libraries' OnModelOpen.
- Kinematics functionality has changed so that by default kinematics will automatically be pruned off as you pass their individual end times. Note this required a restructuring of the kinematics data, so if your models don't do it on reset anyway, you'll need to re-initialize kinematics in models that are updated from older versions.
- In previous versions, getdatastat() was documented incorrectly for the parameter p2 (degrees of freedom). It was actually interpreting p2 as the number of samples in the set, not degrees of freedom. We've fixed that by simply not using that parameter and inferring the number of samples/degrees of freedom from other parameters. This means if you used this command previously it will return different/better results in this version. Also we've changed the way the confidence interval "clamps" to percentages in order to be "safer". Again this affects the values that were returned in previous versions vs this version. See the command documentation on getdatastat() for more information.
- We changed the name of the class FlexsimObject to FlexSimObject in-line with our naming scheme going forward. We have implemented an update script that replaces all instances of "FlexsimObject" with "FlexSimObject" in updated models. This means if certain things in your model are dependent on the name "FlexsimObject" (I don't know what that could be, except for maybe dll code that uses the name FlexsimObject) there may be issues with the update.
- The assimp 3ds importer is translating some of the files (namely the robot clamps) in a way that is different than our old 3ds importer. It is possible that other 3ds files may need their offsets manually adjusted after updating.
- Fixed the per-event 50-flowitem receive limit on the queue. This will break old models if your model is dependent on this bug.
- Fixed a bug with deceleration on a network when the task executer is blocking space and is given two travel tasks in a row (this might change old models)
- Several attributes were removed, so if you use these attributes in your model you will need to update your model properly:
- Removed Attributes: assertshape, asserttexture, billboard, distcutoff, events, instances, OnCaptured, OnCollision, OnInterrupted, state_graph, state_histo, state_percent, stats_contenthisto, stats_customgraphs, stats_throughputgraph, stats_throughputgraphmaxpoints, stats_throughputhisto, tables, textureaxis_s, textureaxis_t, travelstarttime, traveldirection, travelendtime, traveltimealpha, traveltimebeta, travelvpeak, traveldistance, travelstartx, travelstarty, travelstartz, travelendx, travelendy, travelendz, travelvmax, travelacc, traveldec
- Removed Draw Attributes: ignoredraw, ignorezbuffer, nochildrotate, nochildscale, noondraw, nopredraw, shapetype, reflective, luminous
- Removed Commands: travelto, traveltoupdate, ntravelto, ntraveltoupdate
FlexSim 6 (March 23, 2012)
- Enhanced the experimenter to use multiple cores.
- Added a new web browser GUI widget.
- Added a new Dashboard window with HTML5 canvas statistics graphs.
- Redesigned the experimenter interface to integrate the new statistics objects.
- Added new experiment variable options "number of objects in group" and "number of task executers."
- Developed web accessibility: Opening, configuring, running, and viewing models over the web (using a web browser or handheld device).
- Added a new AutoCAD dwg importer.
- Added model units and conversion windows. When building a new model, a screen will ask you what model units you will be using. When updating an old model, a screen will ask you what model units were used to build the old model. These settings are stored in the Tools folder of the model.
- Modified the picklist and trigger gui widgets to be easier to use.
- Created a new node datatype (DATATYPE_BUNDLE) for storing large amount of information efficiently (see documentation of bundle commands).
- Implemented a way to package media (3D shapes and bitmaps) into the model file so that you only need to distribute one file instead of a whole directory of files.
- Added an embedded command documentation window that can be opened by highlighting a command and pressing F1 in the code window or tree view.
- Added a FlexScript call stack to the debugger.
- Added a step-in function for FlexScript user commands and nodefunctions in the debugger.
- Added a logic builder interface for writing FlexScript logic without writing code. (You can change the default editor back to Code by unchecking 'File > Global Preferences > Environment > Use Logic Builder by Default'.)
- Enhanced the flexibility of pull logic and added a new pullitem() command for use in the Pull Strategy trigger.
- Improved templates to allow for popup gui windows on picklist options.
- Added a mechanism for multiple state profiles.
- Changed tables to always show the headers despite scrolling.
- Fixed a bug that was messing up the save operation when out of memory.
- Toggled the large-address-aware switch so that FlexSim can allocate more memory.
- Added floor() and ceil() commands.
- Added a switch for hashing the node's subnodes' names for quick lookup.
- Added an option in the Labels tab so that labels' values can be automatically reset.
- Other various fixes from the development list.
Backwards Compatibility Note: the following changes may slightly change the way updated models behave.
- Fixed a critical bug in curved network length calculations.
- Fixed issues with gettenetnode() and distancetotravel() on TEs that use "do not travel offsets and block network space."
- Made a change to distancetotravel() to base the "back-to-node" distance on the center of the object instead of the object's location.
- Changed pulling to no longer override the send-to. Now both send-to and pull must check out to transfer a flowitem.
- Changed receiveitem() so that it doesn't behave as if it were pulling.
- Made the Rack's OnEntry trigger fire before evaluating the dwell time.
- Added a new random number generator to generate seeds based on the replication number for the existing random number generator. Email support if you need a script to initialize the streams of a particular model back to the values used in prior versions.
- Added a new overload to the command tonode() to handle large memory addresses. Dlls will need to be recompiled with updated headers to obtain this fix.
- Fixed a bug where an endspeed of 0 wasn't properly telling a task executer to continue at full speed at the end of a travel task. The behavior now correctly matches the documentation.