Release Notes and History

The following is a list of features and fixes that have been included in the latest FlexSim releases.

FlexSim 19.1.2 (September 3, 2019)

  • Fixed an exception with updating models with certain rack configurations.
  • Fixed a linker error with trying to subclass the Rack class in a module.
  • Fixed a bug with incorrectly resetting certain statistics collector columns at the warmup time.
  • Fixed an issue in the statistics collector view.
  • Fixed an issue with cell values executing when clicking in a table view.
  • Included fixes listed in 19.0.5 below.

People

  • Fixed a crash involving elevators in certain situations.
  • Fixed requests from timetables being redirected to the object's group if the object was unavailable.

FlexSim 19.1.1 (June 17, 2019)

  • Fixed Snap to Background to work with the new model background structure.
  • Fixed a bug with sampling pointer labels from a properties window.
  • Changed the person flowitem's shirt to use the object color.
  • Included fixes listed in 19.0.4 below.

People

  • Fixed issues with certain People chart templates in experiments.
  • Fixed a bug with deleting states in the People Settings view.
  • Fixed an issue with an elevator bank with a non-zero z location.
  • Added general events to the Elevator Bank.

FlexSim 19.1.0 (April 29, 2019)

  • Added a new graphical interface to the Calculated Table for building queries.
  • Updated the UI for editing rack dimensions.
  • Added more options for customizing people visuals.
  • Moved operator shape options from the Operator tab to Quick Properties.
  • Improved edit modes by using right-click to cancel the current action instead of immediately exiting the mode.
  • Added global preferences for process flow and dashboard library options.
  • Added the FlexScript API reference to the user manual and made it accessible outside of FlexSim.
  • Added toolbar support for adding multiple model background drawings.
  • Adjusted how the floor Z and grid Z settings work to improve multi-floor modeling.
  • Updated the table view to show more helpful information for certain data types.
  • Added support for pointer data in bundles.
  • Added a pointer type to tracked variables.
  • Added support for the NULLIF SQL keyword.
  • Added support for linking combo boxes to nodes with pointer data.
  • Improved the gantt chart.
  • Updated how tree files are saved to improve saving certain datatypes.
  • Updated pulling from lists to throw an exception when passing a bad query.
  • Fixed a bug with the normal map lighting calculation.
  • Fixed an issue with the picking focus when using drawsurrogate within a drawsurrogate object.
  • Fixed exceptions on an array table that doesn't have column header information.
  • Fixed an issue related to moving items that had not been released.
  • Updated the internal structure of the Rack object's variables.
  • Removed the rackgetcontenttable() command.
  • Removed support for running the simulation from a loaded state file.

Process Flow

  • Added an option to the container to center its title when the contents are hidden.
  • Added a limit to the number of activity panels displayed in quick properties.
  • Added a Milestone activity.

People

  • Added a Healthcare environment option.
  • Added an Elevator Bank object.
  • Added a Prop object and more options for object visuals.
  • Added tables that automatically collect statistics for people models.
  • Added people chart templates.
  • Added a People Settings object to the toolbox for people models.
  • Improved the names of people created with the Create Person activity.

AGV

  • Updated the distancetotravel() calculation to work with moving AGVs.

A*

  • Added support for multiple grids.
  • Adjusted how conditions are defined to improve performance.

FlexSim 19.0.5 (September 3, 2019)

  • Fixed a bug with trying to use more than eight light sources.
  • Fixed an issue with resizing objects getting stuck when the size goes to 0.
  • Fixed resizing objects when the view focus is not the model.
  • Fixed a crash caused by certain calculated table configurations.
  • Fixed a bug where the Optimizer got stuck if there were more cores than possible solutions.
  • Fixed Center in View when the view focus is not the model.
  • Fixed a bug with adding Down Behaviors from a user library.
  • Fixed a bug with getting the value of a statistics collector or calculated table using Table().
  • Fixed an issue with text fields in statistics collectors using incorrect format values.
  • Fixed an issue with auto-complete for certain methods and properties.
  • Fixed an exception in the calculated table properties window.
  • Fixed a bug with time table events in certain circumstances.
  • Fixed an overflow issue with the max content variable on queues and processors.
  • Fixed copying FlexScript labels to selected objects from the Labels panel of Quick Properties.

A*

  • Fixed an issue with conditional barriers overwriting each other when too close together.

Process Flow

  • Fixed a bug in the Scheduled Source panel in Quick Properties when switching between source activities.

FlexSim 19.0.4 (June 17, 2019)

  • Fixed a bug with getqueryvalue() in certain situations.
  • Fixed "Optimize column for lookup" option appearing for non-bundle tables.
  • Fixed a positioning issue when adding objects using the quick library popup.
  • Updated the JT importer to account for measurement units. Objects using JT shapes may need to have their shape factors reset to draw at the correct scale.

Process Flow

  • Fixed an issue with tokens exiting a zone during the event they entered the zone.
  • Fixed restoring a token to a synchronize activity after it moved through another connector.

Conveyor

  • Fixed a bug with roller skew kinematics.

FlexSim 19.0.3 (April 24, 2019)

  • Fixed an exception when getting the state of an object in certain conditions.
  • Fixed a bug with using ?. syntax.
  • Fixed a bug with box plots and sankey diagrams not updating their tables when drawn.
  • Fixed a bug with exporting a single row with a database connector.
  • Fixed an issue with unshift() and push().
  • Fixed a bug with GROUP BY in nested queries.
  • Fixed a bug with multiple unions in a SQL query.
  • Fixed a bug when finding objects in the tree view.
  • Fixed a bug in the statistics collector with sorting and tracking.
  • Fixed an exception in certain chart templates.
  • Fixed a bug with bone animations not being applied correctly in certain situations.
  • Fixed a bug in the dispatcher's pass to round robin if available picklist option.
  • Fixed the Explore as Table option in certain views.
  • Fixed undo issues in various views.

Process Flow

  • Fixed a bug with Resources creating extra objects when used in sub flows.
  • Fixed the Assign Labels activity not allowing you to assign a reference to a group object.
  • Fixed a Move Object activity field not allowing you to sample objects and get a direct reference.

People

  • Fixed a crash related to certain activities not being reset correctly.
  • Fixed a bug with location reset positions.
  • Fixed a bug with undoing the number of locations in a MultiLocation.
  • Fixed some errors when rotating the view with a runtime license.

Conveyor

  • Fixed a bug with slug building for non-default orientations.
  • Fixed an issue with non-accumulating conveyors stopping incorrectly under certain speed driver conditions.
  • Fixed a draw exception when a conveyor is missing its type link.

A*

  • Fixed an issue with barrier creation mode.

FlexSim 19.0.2 (February 27, 2019)

  • Fixed a bug with saving module fsx files.
  • Fixed a bug with calling Table.query() from within a dynamic list field.

Process Flow

  • Fixed creating user library objects linked to multiple process flow instances.

A*

  • Fixed moving multiple selected dividers.
  • Fixed a bug with the grid size calculation.
  • Fixed a bug with the location of bridge travelers within a container.
  • Fixed a bug with sizing barrier cells.
  • Fixed a bug with the A* help links.

FlexSim 19.0.1 (February 20, 2019)

  • Fixed a bug with SQL joins.
  • Fixed improper grouping when using a UNION ALL.
  • Fixed a bug with using big integers in SQL.
  • Fixed a bug in the wrl importer when using LOD nodes.
  • Fixed a bug with timer events in the Statistics Collector.
  • Added support for the en-AU region on charts.
  • Fixed selecting multiple objects from a group.
  • Fixed a bug in Quick Properties with applying variables to selected objects of different classes.
  • Fixed editing newly created events in the graphical Time Table view.
  • Grayed out the Start and End date picker when in the Daily Repeat mode of the Time Table.
  • Added a combobox with days of the week when in the Weekly Repeat mode of the Time Table.
  • Included fixes listed in 18.0.10 below.

Process Flow

  • Fixed an issue with the Create Object activity assigning labels late.
  • Fixed a bug with pointing Variable shared assets to global variables.
  • Fixed a bug with the Request Content stats on a Resource under certain conditions.

FlexSim 19.0.0 (January 3, 2019)

  • Added support for importing JT files.
  • Added a way to directly animate 3D shapes with bones.
  • Added a way to parent subcomponents to a bone on a 3D shape.
  • Updated calculated tables and chart templates to be able to save their data during an experiment.
  • Added support for SQL keywords UNION, UNION ALL, INTERSECT, and EXCEPT.
  • Updated the time table's weekly and daily modes to use a graphical display.
  • Improved the time table's user interface.
  • Added options for stacking bars on a histogram and added more bar modes.
  • Added a Column Sets feature to statistics collectors.
  • Added more options for event listening in statistics collectors.
  • Added an option to statistics collectors and calculated tables for object path display depth.
  • Added an option to statistics collectors to stop tracking row values after specified events.
  • Added an option to milestone collectors to start new entries on the next milestone.
  • Added options to record more data in additional columns on a milestone collector.
  • Added enable/disable right-click menu options to statistics collectors in the toolbox.
  • Improved the performance of calculated tables in certain configurations.
  • Fixed a bug with Always Leave Entries on List when reevaluating multiple back orders.
  • Fixed a bug with color spilling from one mesh to another when using shape data overrides.
  • Fixed scaling issues and a crashing bug when loading certain STEP and IGES files.

Process Flow

  • Improved the Token.create() method to be able to create child tokens.
  • Added a new Person Flow type of Process Flow.
  • Fixed a bug with a resource connected to a global list deleting the list when the resource was in an instanced flow.

People

  • Added a Process activity.
  • Added a Remove Person activity.
  • Added various activity sets to quickly create common groups of activities.
  • Added a priority value to resource objects that is used for acquiring and preempting resources.
  • Added advanced options to the Process activity for handling preemption.
  • Added functionality for simulating shift schedules with time tables and down behaviors.
  • Improved the UI for how people objects are added to groups.

AGV

  • Improved control point selection on paths in the 3D view.

A*

  • Added a way to draw a heat map based on a node's percentage of total traversals.
  • Added a Two Way option to preferred paths and dividers.
  • Added a Condition option to A* objects to optionally disable them under certain circumstances.
  • Added a Mandatory Path object used for defining sets of paths where certain connected objects can travel.
  • Updated the Barrier object to be able to specify patterns to determine how it affects the grid.
  • Added a FlexScript API for A* objects and data.
  • Fixed a bug with A* barriers blocking space larger than their actual size.

FlexSim 18.2.3 (December 27, 2018)

  • Fixed a bug with the dashboard model input link sampler.
  • Fixed a bug with missing queue trigger pick options.
  • Fixed a bug with the decrement option in the Set Tracked Variable popup.
  • Fixed a bug with legacy conveyor triggers.
  • Fixed a bug with exporting pie charts to html.
  • Fixed an exception when clicking on the highlighted pillar while creating walls.
  • Included fixes listed in 18.0.9 below.

Process Flow

  • Fixed a bug when using a query to acquire a resource from a global list.
  • Fixed some issues with instanced lists.
  • Fixed issues with sampling token labels.

People

  • Added pick options for the On Entry and On Exit triggers of location objects.

Conveyor

  • Fixed a bug with items' offset kinematic not being reset properly.
  • Fixed an issue with popup distance being negative when the conveyor is reversed.

AGV

  • Fixed an exception in determining whether a path transfer can be allocated.
  • Fixed an issue with AGVs running over each other on accumulating paths in certain conditions.

Emulation

  • Added pick options to the value field of control actions.

FlexSim 18.2.2 (September 7, 2018)

  • Fixed an exception with adding performance measures under certain conditions.
  • Fixed a bug with duplicating milestones.
  • Fixed a bug with the legacy chart global preferences.

Process Flow

  • Fixed an exception when creating zones caused by the instanced resource block change.

FlexSim 18.2.1 (September 6, 2018)

  • Fixed a bug in the milestone collector UI.
  • Fixed a bug in the Stop Object and Call Operators MTBF MTTR down function pick option.
  • Fixed an exception when loading media with misconfigured shapedata.
  • Included fixes listed in 18.0.8 below.

Process Flow

  • Fixed a bug with listening to global instanced resource blocks.

AGV

  • Fixed a bug where AGVs were not properly firing way point triggers after being preempted.

Emulation

  • Fixed an exception on reset with binding statistics of internal emulation variables.

FlexSim 18.2.0 (August 8, 2018)

  • Added an interface for running experiments and optimizations on the cloud.
  • Added a mechanism for adding new charts as experimenter performance measures.
  • Added a Sankey Diagram to the dashboard charts.
  • Added a Milestone Collector statistics tool and chart templates.
  • Added a way to customize how objects draw their 3D shape meshes.
  • Added {} syntax to specify FlexScript expressions in SQL queries.
  • Added a Down Behavior tool that can be used by Time Tables and MTBF MTTR objects.
  • Added a message() method to the Object class to replace sendmessage() and senddelayedmessage().
  • Added a varchar bundle field type for variable-length strings.
  • Added status bar updates to the table view.
  • Updated the bar and pie charts with more options and data formats.
  • Added duration settings to the gantt chart.
  • Added new task sequence classes to the FlexScript API.
  • Added a getCategoryName() method to the TrackedVariable class.
  • Added getEntryFromValue() and reevaluateBackOrders() methods to the List class.
  • Added padStart() and padEnd() methods to the string class.
  • Added an option to sort back orders independent of entries when reevaluating back orders.
  • Added an option to configure a list to always leave its entries on the list.
  • Added events to the Statistics Collector.
  • Added options for sorting rows in statistics collectors.
  • Added dot syntax label access to List.BackOrder.
  • Added a backOrder keyword that is available in a list back order queue strategy.
  • Added a new overload to List.pull() that takes both an array and a query.
  • Updated user library functionality to better handle conveyor types and containers.
  • Updated Move into Highlighted code to preserve global position and rotation.
  • Improved sampler options in various places.
  • Improved drop-down options with label values in several places.
  • Updated the Ctrl+W keyboard shortcut so it correctly closes the window that has keyboard focus.
  • Updated the query() command to re-throw exceptions.
  • Fixed a bug with updating bundle indexes when using certain commands.
  • Fixed a performance bug with pasting into bundle tables.
  • Fixed a window docking bug.
  • Fixed a bug with the robot not drawing collision spheres or its stopped indicator.
  • Included fixes listed in 18.0.7 below.
  • Changed Variant math operations on non-numbers to throw exceptions.
  • Updated the Source to automatically attach task executer flowitems to the DefaultNavigator.
  • Updated dumpquery() to use bundle varchar fields.
  • Fixed an issue with the Z-axis being inverted for screen-locked shapes in perspective 3D views.

Process Flow

  • Added stop() and resume() methods to the Token class.
  • Updated Edit Mode so you can no longer move activities when it is off.
  • Added a check box to quick properties to turn off all trace histories.
  • Updated Wait for Event to handle listening to arrays of objects.
  • Updated Pull from List so you can use it with a Resource shared asset.
  • Updated the Resource so you can point it at a global List or a List shared asset.
  • Added query options to the Acquire Resource and Pull From List activities for 'Same as Last Pulled/Aquired'.
  • Added a way to sample shared assets in certain fields.
  • Updated the naming convention for Resource object copies.
  • Added an error message when trying to rename a shared asset the same name as another.
  • Improved the performance of the Wait for Event activity.

People

  • Updated the multi-location to allow people to enter without an available sub-location.

Conveyor

  • Added a max count slug building property to the conveyor type.
  • Added a catch condition to the power and free functionality to customize whether a given dog will actually catch an item.
  • Added the capability to reverse conveyors under certain conditions.
  • Changed the roller skew kinematics to be based on item travel distance instead of time.
  • Changed the conveyor's belt repeat distance to sync to the adjusted dog interval.
  • Fixed a bug with decision points snapping to grid when added with a conveyor from a user library.

AGV

  • Updated path transfers to prioritize their requests.
  • Fixed an issue with accumulating path allocations causing AGVs to get stuck.
  • Fixed various issues with AGVs having different deceleration values.
  • Improvements to AGV proximity detection on accumulating paths.

Emulation

  • Fixed Modbus polling for changes.
  • Fixed the Modbus panels in the Variable shared asset so they show the associated object now.

FlexSim 18.1.2 (June 26, 2018)

  • Fixed a bug with the Rack's OnEndDwellTime trigger not appearing in its list of triggers.
  • Fixed a bug with restoring original state in the experimenter.
  • Fixed a bug with walls not drawing correctly inside containers.
  • Included fixes listed in 18.0.6 below.

Process Flow

  • Fixed the match value for the Event-Triggered Source and Wait for Event so you can reference current.

FlexSim 18.1.1 (May 4, 2018)

  • Fixed a bug with getting a SQL Server field with nvarchar(max) data type.
  • Changed Copy Variables From Highlighted so that it adds variables that don't exist.
  • Fixed a bug with the triggers page not updating when using the properties window arrow buttons.
  • Fixed a bug in the statistics collector interface.
  • Fixed a bug in the time plot chart legend display.
  • Fixed a bug with table queries in C++.
  • Fixed an issue with listening to certain list events.
  • Fixed a bug with the transportoutcomplete() and transportincomplete() commands.
  • Fixed a bug with Process Flow templates not being updated by model update scripts.
  • Fixed a bug with the Rack's On Entry trigger not showing picklist options.
  • Fixed a bug with some triggers not working correctly on certain fluid objects.
  • Included fixes listed in 18.0.5 below.

Process Flow

  • Fixed a bug in the zone token display window.
  • Fixed an issue with listening to certain shared asset events.

FlexSim 18.1.0 (April 9, 2018)

  • Added a Database Connector tool and Database FlexScript API.
  • Updated the Emulation module and added it to the toolbox.
  • Updated object triggers to be dynamically added and executed to improve performance and flexibility.
  • Added an option to store StatisticsCollector bundle data on the hard drive.
  • Added a global preference for date and time formats, which will default to the system's locale settings.
  • Updated the stick() command to be able to get information about the VR headset by passing -1 for the stick number.
  • Added a Box Plot chart type.
  • Added a visual Walls object, which can be connected to A* as a member.
  • Added an option to reverse rows on a gantt chart.
  • Updated how the gantt chart handles colors.
  • Added a time window option to several charts.
  • Improved axis title options on several charts.
  • Added a y-axis range option to the time plot.
  • Output, system, and compiler consoles now wrap lines.
  • Added a binoculars button to the bottom of properties windows.
  • Fixed a bug with using local variable "a" within FlexScript lambda commands, such as findmatch().
  • Included fixes listed in 18.0.4 below.
  • Removed FlowNode, Reservoir, WatchList, and other unused library class objects.
  • Changed transportincomplete() to be more fail-safe so that it only affects the object when called correctly.
  • Fixed an issue with the Rack sometimes receiving items out of order when the upstream object is using a transport.

Process Flow

  • Added a Variable shared asset.
  • Updated the Event-Triggered Source and Wait for Event activities to be able to match values.

People

  • Added a Waiting Line object and a Wait in Line activity.

AGV

  • Fixed a bug with preempting an AGV during a pre-arrival event.
  • Improved AGV proximity detection for stop-space-based accumulation.
  • Fixed an issue with reversing direction on accumulating paths.

A*

  • Added a routing mode for traveling at right angles only.
  • Added an option for stopping and turning when changing directions.
  • Added an option for routing by travel time.
  • Improved the usability of creating and editing barriers and dividers.
  • Added an option for snapping dividers between grid points.
  • Fixed some visual issues with various components.
  • Fixed a bug with distancetotravel().
  • Improved the accuracy of the calculation of which grid points are affected by dividers.
  • The mechanism for recovering from deadlock has been changed.
  • The path costing system was slightly changed to allow for travel-time-based routing.

FlexSim 18.0.10 (February 19, 2019)

  • Fixed an issue with spatial property fields not being updated when moving an object.
  • Fixed an issue with pasting cells with no data in tables.
  • Fixed using the .as() method in SQL.
  • Fixed a bug with the COUNT function in SQL.
  • Fixed a bug with SQL window functions.
  • Improved rotating selected objects to work better with objects in containers.
  • Fixed a bug with copy/paste when the 3D view focus isn't the model.
  • Fixed a bug with Find Objects when the 3D view focus isn't the model.
  • Fixed a bug with getmodelunit(CURRENT_TIME_STR) sometimes not working correctly.

Process Flow

  • Fixed an issue with trying to acquire zero quantity of a resource.

Conveyor

  • Fixed an exception in unloading to entry transfers under certain conditions.
  • Fixed a bug with items getting stuck in time-based conveyor transfer situations.

FlexSim 18.0.9 (December 27, 2018)

  • Fixed a bug with stepping into a function while debugging FlexScript.
  • Fixed a bug with disabling calculated tables.
  • Fixed an inconsistent FlexScript bug with constructing variants within a conditional statement.
  • Fixed a bug with delayeventsofobjects() deleting event parameters.
  • Fixed a bug with the icon grid scroll bar.
  • Fixed a bug with default animation durations using certain model units.
  • Fixed a bug with the Excel export changing the workbook calculation setting to manual.
  • Fixed a bug with TrackedVariable.getTotalTimeAt().
  • Fixed a FlexScript crash when calling splice() on an empty array.
  • Fixed an exception related to list partitions.
  • Fixed an exception with Table.cloneTo() when cloning duplicate column names to a bundle.
  • Fixed several table copy/paste bugs.
  • Fixed a bug with evaluating certain strings in watch variables.
  • Fixed an issue with undos on array table views.
  • Fixed a bug with statistics collectors listening to tracked variables.
  • Fixed a FlexScript exception with the ?. operator.
  • Fixed a bug with the legacy chart preferences.
  • Fixed a performance bug with drawing racks in certain configurations.
  • Fixed a bug with the state gantt chart listening to different profiles.
  • Fixed a bug with specifying string literals in certain UI fields.
  • Updated the chart template precision setting to affect precision, not significant digits.
  • Fixed a bug in the BasicConveyor.
  • Fixed selecting objects in a group with nested sub groups.
  • Fixed performance measure pick options to support nested groups.
  • Fixed bugs with the optimizer UI.
  • Fixed a bug with the save dialog appearing when user libraries with process flows were open.
  • Fixed a bug with applying code changes to multiple objects with quick properties.
  • Fixed a bug with saving the state of queues.
  • Fixed an exception when running models using the web server with a runtime license.
  • Fixed a bug with listening to rate changes of kinetic tracked variables.

Process Flow

  • Fixed draw errors when adding an activity in a container to a user library.
  • Fixed a bug with setting a tracked variable label in a Create Object activity.
  • Updated the Activities window and the Zone status window to show paths instead of names.
  • Fixed a bug with acquiring sub group members on a resource.
  • Fixed a bug with assigning the event object in some Wait for Event activities.
  • Fixed issues with the Date Time Source when using model time units other than seconds.
  • Fixed a bug in the Remove Value from Array picklist.
  • Fixed some undo bugs.

Conveyor

  • Fixed a crash with loading the state of certain conveyor situations.
  • Fixed a bug with creating items directly in entry transfers.
  • Fixed a bug with the Translate Item pick option.

People

  • Adjusted the kinematics for the lay down / stand up animations for different model units.
  • Fixed a bug with sub-locations being deleted on reset.

AGV

  • Fixed a bug with the AGV.currentCP property.
  • Fixed an issue with redirecting and continuing on prearrival.
  • Fixed a bug with path routing on accumulating paths under certain conditions.
  • Fixed a bug with cpdeallocate() not reevaluating allocation requests.

FlexSim 18.0.8 (September 6, 2018)

  • Fixed an issue with the size of the 3D font when using Korean language settings.
  • Fixed a bug in the checkdllconnection() command.
  • Fixed a bug in the Pull From List pick option when current is passed into the function.

Conveyor

  • Fixed a bug with handling traversal events associated with traversals on upstream conveyors.
  • Fixed a precision issue with power and free conveyors at extremely high speeds.

FlexSim 18.0.7 (August 7, 2018)

  • Fixed an exception in the stop time interface.
  • Fixed a bug with rendering Japanese characters in object names in the 3D view.
  • Fixed copying and pasting Unicode characters and multi-line cells between FlexSim and Excel.
  • Fixed a bug with pasting blank cells changing string data to number data.
  • Fixed a bug with exporting Unicode characters to Excel.
  • Fixed a bug with listening to enumerated values in the Statistics Collector.
  • Fixed a bug with rendering certain dashboard charts with a runtime license.
  • Fixed a bug in the Event Log Settings window.
  • Fixed a bug with renaming certain user library objects.
  • Fixed an issue where statistics collectors were being duplicated on each reset in a child process.
  • Fixed an issue where statistics collectors did not correctly store replication data from a child process.

Process Flow

  • Fixed a bug with date time source column names when sorting its table on reset.
  • Fixed an issue with creating tracked variable labels in a create tokens activity.

Conveyor

  • Fixed a crash when transferring blocked items under certain conditions.
  • Fixed a bug with syncing dog intervals in the experimenter.
  • Fixed an issue with convey state inconsistencies on items straddling inline transfers.

AGV

  • Fixed an issue with On Arrival being executed twice for the same control point.

A*

  • Fixed a crash caused by showing the heat map.

FlexSim 18.0.6 (June 26, 2018)

  • Fixed a crash with printing long strings in the script console.
  • Fixed a bug with the debug() command.
  • Fixed a bug with the robot joint speeds table.
  • Fixed a bug with the Use Legacy SQL Nulls checkbox in model settings.
  • Fixed exceptions when pinning state charts.
  • Fixed a bug with tree xml save when using split-points on a main node with object data, such as the model.
  • Fixed a bug with running the optimizer in 32-bit.
  • Fixed a bug with deleting performance measures.
  • Fixed errors in SQL aggregation functions with non-numeric values.
  • Fixed issues with the Queue's place offset calculation.
  • Fixed bugs with preempting during offset travel operations using a navigator.
  • Fixed a bug with passing 0 to sets() and setnodestr().

Process Flow

  • Fixed an issue with fields interpreting properties as labels.
  • Fixed a bug with 3D mouse movement stalling other views' draw when the model is running.

Conveyor

  • Fixed an issue with entry transfers not reopening inputs in certain situations.

AGV

  • Fixed a bug with adding AGV template objects to certain dashboard charts.
  • Fixed an issue with copied AGVs not copying their AGV Type correctly.

A*

  • Fixed bugs with aborting travel.

FlexSim 18.0.5 (May 4, 2018)

  • Fixed the display of window titles with Unicode characters.
  • Fixed a bug with removing breakpoints while debugging.
  • Fixed a bug with boolean comparisons of Object.attrs nodes that do not exist.
  • Fixed an issue with selecting experiment child replication port numbers.
  • Fixed a bug with FlexScript stack overflow detection on certain systems.
  • Fixed bugs with enumerated row modes in the Statistics Collector.
  • Fixed a bug with the GUI Builder selection box on high DPI displays.
  • Fixed some inconsistent exceptions in certain calculated tables.
  • Fixed a bug with handling percent characters in exporttable().
  • Fixed a bug with using commented macros in node paths.
  • Fixed an issue with loading models saved in full screen view.
  • Fixed a bug that excluded conveyors from the item trace gantt chart.
  • Fixed surrogate objects not respecting the no select flag of their parent object.
  • Fixed a bug with pasting into table views from Google sheets.
  • Fixed exceptions with opening chart templates while over the model limit.
  • Fixed an exception in the experimenter performance measures code.
  • Fixed a rendering issue with floor storage racks.
  • Fixed the saved 3D views so they store the viewfocus correctly.
  • Fixed an issue with losing unapplied code after opening and then closing another docked code editor.
  • Fixed a bug with string.split() incorrectly handling adjacent delimiters.
  • Fixed the Queue's place offset calculation when using stack inside item placement.
  • Fixed a precision error in the DefaultNavigator that caused it to sometimes create an extra event in nearly 0 time for a traveler's arrival.

Process Flow

  • Fixed a bug with releasing tokens from a task activity where the task sequence has been moved to another task executer.
  • Updated the properties window ProcessFlow Properties button to handle multiple attached flows.
  • Fixed a bug with Custom Task activities changing icons.
  • Fixed an issue with certain fields incorrectly giving SQL parse errors.
  • Fixed exceptions with creating conveyors within instance objects.
  • Fixed exceptions caused by a bug with visually tracing tokens.
  • Fixed a crash with displaying large arrays in token labels.
  • Reverted a change to the Move Object activity so that Preserve Global Locations sets the location after entering the object.

Conveyor

  • Updated the mechanism for connecting conveyors to other conveyors to use existing transfers when possible.
  • Fixed an issue with calculating the proper travel distance of a conveyor traversal event.

People

  • Fixed a bug with a destination object in the Transport Person activity.
  • Fixed an issue with some triggers not firing correctly.

AGV

  • Fixed an issue with pasted AGV paths not showing their transfers properly.
  • Fixed a bug with redirecting AGVs to intermediate control points as their final destination.

A*

  • Fixed the travel threshold rendering so that it shows both the route and travel end nodes.

FlexSim 18.0.4 (April 6, 2018)

  • Fixed a bug with starting experiment replications in certain conditions.
  • Fixed Table.cloneTo() not copying certain cells correctly.
  • Fixed dragging multiple selected objects inside a drawsurrogate node.
  • Fixed a bug with how chart templates handle warmup times.
  • Fixed a bug with using SQL inner joins on statistics collector tables.
  • Fixed some issues with how exporttable() handles commas, quotes, and line breaks.
  • Fixed some issues caused by chart templates with the same name.
  • Fixed a bug with the statistics quick properties panel not positioning its fields correctly.
  • Fixed an issue with deleting a breakpoint while debugging.
  • Fixed an issue with adding breakpoints in certain conditions.
  • Fixed an issue with the stop time popup after opening a model.
  • Fixed a bug with some tracked variable history nodes not being initialized correctly.
  • Fixed the positioning of table view buttons for certain cell datatypes.
  • Fixed several issues with the histogram, time, and pie charts.
  • Improved the coloring and spacing of several charts.
  • Fixed issues with the new charts in the experimenter report builder.
  • Fixed a bug in the 3D view right-click Groups menu options.
  • Fixed an exception in the properties window for animation components.
  • Fixed errors caused by copying certain variables with Edit Selected Objects.
  • Fixed an issue with the empirical distribution chooser UI.
  • Fixed pinning state gantt charts from quick properties.
  • Fixed a crash with inferred FlexScript datatypes in certain circumstances.
  • Fixed an issue with back order queue strategies not working properly with a WHERE clause in the pull query.
  • Fixed an issue with large integer literals in FlexScript.
  • Fixed a bug with using a local variable name within a string in a debugger watch expression.
  • Fixed excelreadcell() in FlexScript.
  • Fixed a bug with calculating variance or standard deviation using getdatastat().
  • Fixed a bug in the experimenter with transferring pfm nodes.
  • Fixed an issue with the labels page in object properties not repainting when using the arrow buttons.

Process Flow

  • Fixed the help links for several activities.
  • Fixed an issue with listening to events on objects and activities with colons in their name.
  • Fixed a bug with the Run Animation activity causing tokens to get stuck in the activity if the animation doesn't exist.
  • Fixed a bug with the Date Time Source not properly using the calendar start time with Date Based schedules.
  • Fixed the Select Object button in table views so it properly selects tokens.
  • Fixed the flowchart shape type drop-down in quick properties showing the wrong type.
  • Fixed an exception with the Processor with Operator template.

Conveyor

  • Fixed an issue with editing a conveyor's start or end Z coordinates.
  • Fixed a bug with hidden conveyors in render mode.
  • Fixed an exception with accessing the conveyor item in certain situations.

People

  • Fixed a bug with saving a People model immediately after the model update process.

AGV

  • Fixed a bug with AGV redirection/preemption when the AGV must immediately turn around.

FlexSim 18.0.3 (February 28, 2018)

  • Fixed a bug with new charts not displaying correctly with the web server.
  • Fixed an exception in Table.query().
  • Fixed exceptions in Table.addRow(1) and Table.addCol(1).
  • Updated 3D view selection code to improve graphics compatibility.
  • Fixed a bug with task bar updates when FlexSim is open without a UI.
  • Changed the Clear Reset Position option to disable the auto update of reset positions.
  • Fixed a bug with preempting a traveler on a non-passing edge with a length equal to the traveler's size.
  • Fixed a bug with deleting labels with no name.
  • Fixed bugs with throughput chart templates.
  • Included fixes listed in 17.0.13 below.
  • Updated list pulls to create a back order when using Allow Multiple Pushes and a back order fulfillment event is pending.

People

  • Fixed a bug with the ProcessFlow activity limit when using the People Module.

AGV

  • Fixed several bugs with the AGV elevator template.
  • Changed AGV.currentCP to not be read-only.

A*

  • Fixed a repeatability issue with using the distancetotravel() command.

FlexSim 18.0.2 (January 18, 2018)

  • Fixed an issue with certain DWG files not rendering properly.
  • Fixed a bug with adding tracked variables.
  • Fixed a bug with the HTC Vive displaying incorrectly in the right eye when shadows are turned off.
  • Fixed a bug with packing media for extra animations added to shapes that aren't packed, such as the default operator.
  • Fixed a bug with setting column headers on a table with no rows.
  • Fixed some bugs with the Groups window when it is docked.
  • Fixed inconsistent behavior in Table.addRow() between node and bundle tables.
  • Fixed a bug with Table.moveCol() not working correctly with bundle tables.
  • Fixed a bug with Table.addRow() and Table.addCol() not setting the datatype correctly in certain cases.
  • Fixed a bug with table headers not being updated correctly in certain cases.
  • Fixed a bug with Table.cloneTo() when using nulls in a bundle table.
  • Updated wheelchair, push, push2, and ascend stairs animations.

Conveyor

  • Fixed a bug with flowitems incorrectly leaving the conveyor system in certain situations.

FlexSim 18.0.1 (December 20, 2017)

  • Fixed a crashing issue with certain chart templates.
  • Fixed the Rack's On Entry trigger code header and event definition.
  • Included fixes listed in 17.2.5 below.

Conveyor

  • Fixed the On Process Finish event definition on the Station object.

FlexSim 18.0.0 (December 15, 2017)

  • Added a new People module.
  • Added new dashboard chart templates to quickly collect and display statistics.
  • Legacy charts are hidden by default in the Library and can be enabled through Global Preferences.
  • Removed the basic Person flowitem and renamed the TaskExecuterFlowItem to Person.
  • Added functionality to the List's pull method to allow you to pull an object/node directly (without writing SQL).
  • Updated ODA to be compatible with DWG 2018 shapes.
  • Updated Assimp to be compatible with the latest FBX file format.
  • Added a RegExResult class for iterating over the matches in a regular expression.
  • Lists can now use arrays as partition ids.
  • Added a mechanism for automatically setting the reset position of objects after moving them by setting their resetposition variable to 1.
  • Added a By Lazy Interval update mode to the calculated table.
  • Improved calculated table performance by reducing the amount of table updates.
  • Improved statistics collector performance by reducing the number of updates to Always columns.
  • Table views can now be set as read-only using the grayed attribute.
  • Added an Ignore Warmup option to statistics collectors.
  • Updated OptQuest so that it can run more than 10,000 solutions.
  • Added a pick option for restoring default values in the Global Table's On Reset trigger.
  • The Query test field is now a multi-line text box.
  • The Source now adds labels to items before calling the OnCreation trigger.
  • Updated the table selection for the Excel Import/Export.
  • Improved color options in various dashboard charts.
  • Changed the model update dialog to be able to autosave the model with an incremented number.
  • Added many new animations for the operator and the person flowitem.
  • Updated many stochastic pick options to use getstream() as the default stream parameter.
  • Updated the TaskExecuter to connect to the DefaultNavigator when created.
  • Improved the Group UI.
  • Updated the Library view to not change when clicking on the User Manual view.
  • Changed the Tree view's Explore > As Code so that it closes the tree's edit view.
  • Fixed a bug with list initial contents having old values in label fields.
  • Fixed a bug with the statistics collector chart interface checkboxes.
  • Fixed an OnDropWindow exception.
  • Fixed some exceptions in the Table View when viewing an Array that no longer exists.
  • Included fixes listed in 17.2.4 below.

Process Flow

  • Added a Date Time Source activity.
  • Added a Wait for Simultaneous Arrivals Before Entry option to the Zone.
  • Added autocomplete for instanced flow labels (current).
  • Added a zoneistokeninsubset() command.

Conveyor

  • Added a Round Robin destination option to the Send Item pick option.

A*

  • Added a visual option to show the travel threshold for objects.
  • Improved the draw performance and fixed the timing of some graphical updates.

AGV

  • Fixed a bug with redirecting AGVs at times other than On Pre-Arrival of way points.

FlexSim 17.2.5 (December 20, 2017)

  • Included fixes listed in 17.0.12 below.

FlexSim 17.2.4 (December 13, 2017)

  • Fixed a bug with the statistics collector so that global shared assets only get one row in the enumeration table.
  • Fixed some issues with the FlexScript Table() constructor on statistics collectors and calculated tables.
  • Fixed bugs with running experiments with statistics collectors in the runtime version.
  • Fixed an issue with namespace FlexScript constructors no longer working.
  • Fixed a bug with downcasting an Object to a Group.
  • Fixed an issue with opening user libraries from a path that has Unicode characters.
  • Fixed issues with using the Time Table's date-based calendar with model time units other than seconds.
  • Fixed the new dashboard charts to work correctly with Export to CSV.
  • Fixed a bug with following objects in views being recorded by the video recorder.
  • Changed the charts to remove trailing zeros/decimals for categorical values.
  • Changed timeplot charts to center rangeless data instead of putting it at the minimum.
  • Fixed an issue with compiling C++ code.
  • Fixed an issue with pinning labels to dashboards.
  • Included fixes listed in 17.0.11 below.

Process Flow

  • Fixed a bug with zone subset calculations.

A*

  • Fixed a bug caused by using the distancetotravel() command in conjunction with collision avoidance.
  • Fixed travelers jumping when inside an object and they get blocked.

FlexSim 17.2.3 (November 7, 2017)

  • Fixed a bug with using events and enumerated rows together in the stats collector.
  • Fixed a bug with Quick Properties labels Explore > As Table.
  • Fixed an exception in the Library window.
  • Fixed a bug with the legend on some time plots and histograms.
  • Fixed adding string data to the first label on a source.
  • Included fixes listed in 17.0.10 below.

Process Flow

  • Fixed an issue with restoring the context of a token saved in a Pull from List when using the Assign To's Insert at Front option.
  • Fixed issues with the Arrow not saving properly and its text not working properly.

FlexSim 17.2.2 (September 26, 2017)

  • Fixed a bug with certain large 3D shapes not importing correctly.
  • Fixed VR scaling issues when using length units other than meters.
  • Fixed bugs in the sound commands.
  • Fixed an off-by-one error in the representation of month in DateTime.toString().
  • Fixed DateTime.fromExcelTime().
  • Fixed a bug with the Calculated Table not updating at time 0.
  • Fixed a bug with casting a List.BackOrder to a treenode.
  • Fixed a bug in stick(STICK_VR_HAND_WORLD_ROTATION).
  • Fixed some Unicode UI issues in the Library view.
  • Fixed a bug with the Statistics Collector repeat time events.
  • Fixed an exception when using multiple Statistics Collectors with the same name.
  • Fixed a bug with the event log export breaking FlexSim's locale settings.
  • Fixed a bug with SQL UPDATE not working correctly in certain situations.
  • Fixed a bug with user library auto-install components.
  • Added a month property to the DateTime class.
  • Removed the user library buttons from the Statistics Collector properties window.

Process Flow

  • Fixed a crash when connecting a Resource to an A* Navigator.
  • Fixed issues with the Wait For Event, specifically listening to Groups or value change events with multiple tokens.
  • Fixed a bug with the Arrow properties window.
  • Fixed a bug in the Statistics Collector. In enumerated row mode, if the row value was a ProcessFlow activity in a general flow, then data.processFlowInstance no longer returns the flow; it now returns null.

AGV

  • Fixed an issue with AGVs with trailers not properly finding their path after being preempted.

FlexSim 17.2.1 (August 31, 2017)

  • Included fixes listed in 17.1.6 below.

FlexSim 17.2.0 (August 31, 2017)

  • Reorganized the User Manual and updated its formatting.
  • Added more topics, tutorials, and reference pages to the User Manual.
  • Added new Statistics Collector and Calculated Table tools.
  • Added new generic charts for plotting statistics gathered with Statistics Collectors and Calculated Tables.
  • Updated the pin to dashboard buttons to create and use Statistics Collectors instead of the legacy charts.
  • Added a Variant constructor and assignment operator to Vec3 and Color classes.
  • Added functionality for copying dashboard charts as images, and pasting images into dashboards.
  • Added new interfaces to FlexScript, such as Math, Group, and DateTime.
  • Added toNum() and fromNum() methods to the string class.
  • Added a setState() method to the Object class that will work correctly with listening to state changes.
  • Improved handling of read-only model files.
  • Keyboard shortcuts (Ctrl+PageUp and Ctrl+PageDown) and additional enhancements for switching tabs.
  • Added the ability to have null values in a bundle.
  • Added the ability to make kinematics exclude incline rotation when managing rotations.
  • Improved the parenthesis and quote autocomplete functionality.
  • Added autocomplete for curly and square brackets.
  • Added a new print() command to write to the output console more easily.
  • Added support for instanced meshes.
  • Updated the animation system so a single shape can have multiple animators from different shape files.
  • Changed the assimp 3D importer so that it can extract and load embedded textures.
  • Added support for using specular maps and gloss maps.
  • Added support for FlexScript dot syntax in SQL queries.
  • Added the capability to specify a warmup time in the interactive model run.
  • Added options for following objects with the view.
  • Improved MTBF/MTTR state listening to use less events and be more precise.
  • Updated the Network Navigator to work for an object that is inside a container that is connected to the network.
  • Fixed a bug with global variable highlighting and autocomplete.
  • Fixed an issue with destroying a TE on a network when it blocks space on the network.
  • Included fixes listed in 17.1.5 below.
  • Fixed a bug with min() and max() when using distribution functions.
  • Previously, getting the number of columns in a Global Table using Table.numCols or gettablecols() returned 0 when the number of rows was 0. Column headers and data types are preserved even when there is no row data. These commands now return the number of columns.
  • Changed operators to not change their incline rotation when traveling on inclines. This will change location calculations if you have advanced logic based on internal operator locations.
  • NodeListArrays like Object.outObjects can no longer be implicitly cast to an Array. Use the toArray() method instead.
  • Fixed a bug with animations drawing their first frame instead of their last frame at times beyond the endtime.
  • Added a special rule for ambient color {0, 0, 0} to not use the ambient color. This change will make shapes with ambient {0,0,0} to appear brighter. Change the ambient color to a dark gray, such as {1,1,1} if you want them to remain dark.
  • Fixed a bug in the shader that dulled specular highlights with the diffuse texture. This may change how shapes look; they may appear shinier now.
  • Added the IS NULL and IS NOT NULL clauses to SQL. Math and comparison operators on null values now return NULL. FlexSim's SQL execution engine is now more in line with the SQL ANSI standard regarding null values. Specifically, if you do comparisons or math operations on elements that have null values, this will return null values. This is different than in FlexScript, where a null value acts like 0 in math operations. Also, null values will be ignored in aggregation functions like AVG().
    An option to use legacy SQL nulls was added to Model Settings to preserve backwards compatibility. Upgraded models will automatically enable this option, but new models will default to using the SQL ANSI standard for nulls.
  • Added support for more SQL query operators, such as the case-when-then-else-end operator and window functions. This adds many new keywords to SQL, meaning that if you used these as column names in older queries, they will create syntax errors in the query parser in this version. To fix this, put square brackets [] around the column name.
  • Changed accessing dynamic label properties to use evaluate() instead of value. For example, consider the following code sample:
        Variant value = current.MyLabel;
    In 17.1 and previous, this code was the same as:
        Variant value = current.labels["MyLabel"].value;
    In 17.2 we changed it so that this code is now the same as:
        Variant value = current.labels["MyLabel"].evaluate();
    The difference is in how FlexScript-toggled node values are retrieved. In 17.1 and previous, current.MyLabel would have just given the text that is the FlexScript code. In 17.2, retrieving current.MyLabel will actually evaluate the FlexScript as code. This is consistent with how table values are accessed. If you have old code that explicitly tried to get the code text with current.MyLabel, you will need to update that code in 17.2 to use current.labels["MyLabel"].value.

Process Flow

  • Added a Material Consumption and Replenishment template.
  • Added functionality for pasting images into Process Flow views.
  • Fixed all of the right click menu options under the View menu in the Process Flow View.

Conveyor

  • Added a Gap-Optimizing Merge Controller Process Flow template.
  • Added instanced rendering to improve Render Mode performance.
  • Changed Render Mode to be enabled by default.
  • Added new visual options for conveyors.
  • Improved run speed performance of the Conveyor Module.

AGV

  • Added unload-to-empty capability to the AGV Process Flow template.

A*

  • Added a bridge element to the A* network.
  • Added functionality for collision avoidance.
  • Improved heat maps for analyzing A* traffic.
  • Changed the path finding algorithm for the A* navigator. When you tell an A* traveler to travel to an object, now it will behave more like the default navigator. It will calculate a "threshold radius" around the object, based on the object's size. Then it will only travel to the edge of that radius. This makes it work better especially for loading/unloading to/from rack objects. The travel operation won't commit as much to traveling to the center of the object, because that can be left to the load/unload operation, which determines exactly where in the rack to pick/place the item. However, this change does affect how older models work because it changes the routes that travelers take.

FlexSim 17.1.6 (August 31, 2017)

  • Included fixes listed in 17.0.9 below.

FlexSim 17.1.5 (August 30, 2017)

  • Fixed another bug with loading 3D shapes with Unicode path characters.
  • Fixed copying cells/data in bundle tables.
  • Included fixes listed in 17.0.8 below.

Process Flow

  • Fixed bugs in the right-click View menu options.

FlexSim 17.1.4 (July 14, 2017)

  • Included fixes listed in 17.0.7 below.

FlexSim 17.1.3 (July 11, 2017)

  • Fixed a bug with Unicode characters not working in dashboard chart titles.
  • Fixed a bug with disabled auto-parentheses.
  • Fixed unshift() method showing up in autocomplete of inObjects, outObjects, etc.
  • Fixed a bug with opening Excel workbooks with Unicode path characters.
  • Fixed a bug with using the Video Recorder with Unicode path characters.
  • Fixed a bug with loading 3D shapes with Unicode path characters.
  • Fixed an uninitialized memory issue with aliased select columns.
  • Fixed a reset error with listening to activities in some cases.
  • Fixed a bug with list pull feature of using a SELECT clause on a tracked variable label.
  • Fixed the string.slice() method.
  • Fixed some webserver JavaScript bugs.
  • Fixed a bug with models in subfolders in the new webserver.
  • Included fixes listed in 17.0.6 below.

FlexSim 17.1.2 (April 28, 2017)

  • Fixed issues with the List's initial content.
  • Fixed a bug with non-ASCII characters displaying incorrectly in the event list and event log.
  • Fixed a bug with the SQL LIKE and UPDATE clauses not working correctly.
  • Fixed an issue with using FlexScript commands in SQL statements.
  • Fixed a performance issue with saving files.
  • Fixed a bug with copy/paste from Excel not using the correct locale settings.
  • Fixed a bug with the MultiProcessor's custom state profile.
  • Fixed the Set Tracked Variable pick option.
  • Fixed ItemList errors when items don't have a Type label.
  • Removed deprecated commands from the code builder library.
  • Included fixes listed in 17.0.5 below.

Conveyor

  • Fixed Entry Transfer Item Orientation header.
  • Fixed Merge Controller Release Strategy pick option.

FlexSim 17.1.1 (April 14, 2017)

  • Changed the new "type" label to be "Type" to prevent confusion with the Variant's type property.
  • Fixed an issue with Table.query() not properly taking $ syntax.
  • Fixed a bug with the 3D view names displaying non-ASCII characters incorrectly.
  • Fixed a bug with the Excel import not reading certain cells correctly.
  • Fixed several locations where treenode was being improperly cast to Object.
  • Fixed an issue with global variables and user commands showing errors during the model update process.

FlexSim 17.1.0 (April 10, 2017)

  • Changed FlexSim to store strings using UTF-8 encoding.
  • Added support for Oculus Touch controllers.
  • Implemented OpenVR for HTC Vive compatibility.
  • Improved the shadow frustum calculation in VR so that shadows look better.
  • Added a global preference for changing the resolution of the shadow map.
  • Added support for nested queries in SQL.
  • Added ROW_NUMBER as a SQL keyword.
  • Implemented F2 and Esc functionality in tables.
  • Updated the table view and labels tab to be more robust with different datatypes.
  • Added Table(name) method for referencing Global Tables.
  • Added more FlexScript classes, including List, AGV, Conveyor, and TrackedVariable.
  • Added more properties and methods to existing FlexScript classes, including Object stats and additional string methods.
  • Improved scientific notation for literals in FlexScript.
  • Added a start value to tracked variables.
  • All tracked variables in the model now reset on model reset.
  • Changed itemtype references to referencing an item's type label instead.
  • Improved the Person flowitem's 3D shape.
  • Added repeating events to time tables.
  • Added a short description field to user commands.
  • Made the gantt charts and time charts scroll with a fixed time window.
  • Removed the global table Clear on Reset checkbox and replaced it with a reset trigger.
  • Added new visualization options for the Rack.
  • Added duplicate buttons to the Excel Interface window.
  • Added a duplicate option to the Toolbox's context menu.
  • Taskbar now shows experimenter/optimizer status and runtime based upon stop time.
  • Disabled deleting objects while the model is running.
  • Fixed an issue with the undo history when pasting over nodes with pointer data.
  • Fixed issues with using the ternary operator after properties.
  • Fixed an issue with writing to Access databases with read-only fields.
  • Included fixes listed in 17.0.3 below.
  • Removed the FlexSim WebServer application from the default installation and developed a new WebServer application using Node.js that streams the 3D view much faster. The new WebServer can be downloaded through FlexSim's Online Content.
  • Existing models will continue to work with itemtype, but new models should be built using a type label instead of the itemtype attribute and commands.

Process Flow

  • Added an Assign Released Resource(s) To field on the Release Resource activity.
  • Added functionality to allow you to Ctrl+Drag activities in an activity block.
  • Added a right-click menu option and Alt+Click to open the Token View.
  • Added a sampler to the assign labels Label Name field so you can sample other activities or tokens to get label names.
  • Added a right-click menu option to open multiple views of a Process Flow.
  • Added an Assign To property to the Create Tokens activity.
  • Added a Make Array label aggregation type to the Batch.
  • Added Center in View buttons for fields with pointer data.
  • Added a name property to the Token FlexScript class.
  • Fixed a bug with duplicating Process Flows using the Toolbox.
  • Updated the Pull From List activity so it does not assign a null label when nothing was pulled or the token was released early (manually). Previously, if you used a Max Wait Timer or Max Idle Timer (or some other mechanism) to release a token from a Pull from List prematurely, the label specified in the Assign To field would be created with a value of NULL. Now, the label will not be created. This may break other models that are checking to see if the label value exists. For example, saying objectexists(token.pulled) will throw an exception if the pulled label is never created. This can be easily remedied by changing the code to objectexists(token.pulled?). The ? will cause the value returned to be nullvar when the pulled label does not exist.
  • Universal Edit fields are now more strict when accessing labels on a token. Previously, typing token.labelThatDoesNotExist would happily return NULL and move on. Now the Universal Edit will throw an exception if the label doesn't exist. This does not include Universal Edit fields that assert labels, for example the Assign To fields.

FlexSim 17.0.13 (February 27, 2018)

  • Fixed a bug with rendering extended ASCII characters in the 3D names and stats display.

Process Flow

  • Fixed a bug with saving and loading partition constraint exception tables.
  • Fixed exceptions being thrown when deleting a connector.

AGV

  • Fixed a bug with updating the locations of trailers.

FlexSim 17.0.12 (December 20, 2017)

  • Fixed another off-by-one error with adding a column to a bundle table.

FlexSim 17.0.11 (December 13, 2017)

  • Fixed an issue with the FlexScript debugger after a break/continue.
  • Fixed a bug with billboard text messing up the OpenGL state.
  • Fixed a performance issue with loading embedded media.
  • Fixed an issue with destroymessageevents() behaving incorrectly in the experimenter.
  • Fixed a code window highlighting crash.
  • Fixed an exception that could happen when clicking on another instance of FlexSim.
  • Fixed an infinite loop when using startanimation() with an out-of-bounds index.
  • Fixed the stop time so it displays correctly when a model is opened.
  • Fixed a bug with trying to run a model directly after opening it without resetting.
  • Fixed a bug with the web server not displaying a model correctly when unlicensed.
  • Fixed a bug with refreshing the List Entries view after entering a test query.
  • Fixed an exception in the start/stop animation popups.
  • Fixed a bug with the Presentation Builder not focusing on flypaths correctly when opened.
  • Fixed a crash in the Animations and Components view.
  • Fixed a crash with the Video Recorder when specifying a file name without an extension.
  • Fixed an off-by-one error with adding a column to a bundle table.

Process Flow

  • Fixed an issue with reevaluating back orders causing a max wait timer to still fire even when the back order is fulfilled.
  • Fixed a timing issue with some of the zone's statistics.
  • Fixed a bug with undoing the creation or deletion of certain activities.
  • Fixed the color of the edit field text when editing names within the ProcessFlow view.

Conveyor

  • Fixed a bug with listening to OnStateChange on conveyors, which fixes an exception in the MTBF/MTTR object.
  • Fixed an issue with transporting out of a range-based exit transfer.
  • Fixed a bug with power and free conveyor events.
  • Fixed an issue with conveyor virtual length preventing items from entering at the correct rate.

AGV

  • Fixed a bug with the Remove Member button in the A* Navigator Properties window.

FlexSim 17.0.10 (November 7, 2017)

  • Fixed bugs in the sound commands.
  • Fixed a bug with the event log export breaking FlexSim's locale settings.
  • Fixed the Distribution Chooser popup throwing exceptions when the parameters aren't numbers.
  • Fixed a bug with the shape factors window adding offset size nodes set to zero.
  • Fixed moving objects with the mouse wheel for units other than meters.
  • Fixed a naming bug in the Toolbox.
  • Fixed a bug in the Change 3D Shape pick option.
  • Fixed Tracked Variable charts not overwriting exported csv files.
  • Fixed a precision issue with various edit fields.
  • Fixed some bugs in the Presentation Builder window.

Process Flow

  • Fixed a bug in the Set Label Table Value pick option.
  • Fixed the Resource stats when a token is released early from an Acquire activity.
  • Fixed an exception when pressing arrow keys while a connector is selected.
  • Fixed an exception with certain undo operations.

Conveyor

  • Fixed connecting conveyors to the A* Navigator.
  • Fixed bugs in the Aquire Area and Pull From List pick options.
  • Fixed a bug caused when an entry transfer is set to block upstream items and the blocked upstream items are at an exit transfer waiting to leave.

AGV

  • Fixed an issue with AGVs with trailers not properly finding their path after being preempted.

FlexSim 17.0.9 (August 31, 2017)

Process Flow

  • Fixed a situational bug in the Wait for Event activity uncovered by a recent bugfix.

AGV

  • Fixed a bug with AGV breakdowns on accumulating paths.

FlexSim 17.0.8 (August 30, 2017)

  • Fixed a bug with Reevaluate Sendto on Downstream Availability.
  • Fixed the Color.byNumber() method.
  • Fixed bugs in the serverreceive() and clientreceive() commands.
  • Fixed a bug with the Object.getLocation(Vec3) command overload.
  • Fixed a bug with animations losing their keyframe data when adding a new component.
  • Fixed a bug with Xbox input movement speed when using length units other than meters.
  • Fixed a bug in the xml tree load code that breaks on nodes with unexpected datatype values.
  • Fixed a bug with the xml save code when parsing carriage returns without line feed characters.
  • Fixed a performance bug in the getstat() command when querying state data.
  • Fixed a bug with the user manual resetting its location when undocked or redocked.
  • Fixed a bug in the Multiple Teams picklist option.
  • Fixed a bug in the Start Page that wasn't correctly reading global preferences for dynamic content and updates.

Process Flow

  • Fixed a bug in the Zone dashboard chart.
  • Fixed a bug in the dashboard chart option "discard data" so that it works with regular objects and activities.
  • Fixed the Process Flow variables so the values are updated when changed from places like the dashboard.
  • Fixed a bug in the Save/Restore Context Properties window.
  • Fixed exceptions when you view a Wait for Event / Event Triggered Source while running the model.
  • Fixed exceptions when using the Create Object activity in conjunction with the Task Executer as Flowitem picklist option.

FlexSim 17.0.7 (July 14, 2017)

  • Fixed a bug with SQL inner joins.
  • Fixed the Tagged Resource pick options.
  • Fixed the User Manual so it correctly syncs to the FlexScript Class Reference.

Process Flow

  • Fixed a bug in the Pull From List when a back order was fulfilled before the token's context was restored.

Conveyor

  • Improved the slow performance of conveyors in models with millimeter units.

FlexSim 17.0.6 (July 11, 2017)

  • Fixed a bug in the buildall() command compiling C++ instead of building FlexScript.
  • Changed the 3D importer "fstx.png" comparison to be case-insensitive.
  • Fixed an issue with certain properties not properly cleaning up after themselves in some scenarios.
  • Fixed a bug with inner joins when the indexed column filters have 2 or more master/slave relationships associated with the same 2 joined tables.
  • Fixed an issue with importing animation files with more than 42 bones per mesh.
  • Fixed an issue with simple datatype nodes not being identical after saving or copying.
  • Fixed a performance issue in scrolling large tables with large undo history.
  • Fixed an exception with listening when the listener node is destroyed as part of the listening action.
  • Fixed a bug with moving the FlexSim application window while another program is active.
  • Fixed an issue with adding breakpoints while debugging.
  • Fixed a bug with renaming user commands through the toolbox.
  • Fixed an exception when selecting picklist options with slashes in their name.
  • Fixed some FlexScript errors in various picklist options.
  • Fixed an issue with the TaskExecuter Next/Prev Properties buttons changing the Navigator field.
  • Fixed the Properties windows to resize subcomponents when you resize an object.
  • Fixed the state dashboard charts so you can rename states from custom state profiles.
  • Added support for Visual Studio 2017.
  • Disabled DWG rendering in VR Mode to prevent view projection issues.
  • Added an error message when a list's initial content entry is invalid.
  • Added bundle support to the commands empirical(), dempirical(), and cempirical().
  • Added better detection of where a breakpoint is located when debugging.
  • Changed Table.cloneTo() so that not-found columns will return nullvar.
  • Updated conditional statements in picklists so they aren't put into ints. This allows you to use current.labels["labelname"] directly in a picklist's condition field.
  • Fixed a bug with the Vec3 constructor casting to integers inappropriately.
  • Changed the increment and decrement operators to cast nullvar into a number.
  • Changed subnodes.assert() to not set the destroy-on-reset flag.
  • Fixed some bugs with nullvar comparisons incorrectly returning true.

Process Flow

  • Fixed a couple of issues with the Event Triggers GUI.
  • Fixed Create Object's properties panel so it resizes vertically.
  • Fixed a bug with manually releasing tokens from Sink and Finish activities.
  • Fixed a bug in the Run Animation activity that caused the Wait Until Complete to ignore the Speed Type option.
  • Fixed editing list fields of internal lists so that the code is properly copied to all of the Process Flow instances.
  • Fixed a crash that could occur when changing the Display Type of Process Flow dashboard charts.
  • Fixed the Resource's statistics values when using queries on the Acquire activities or when specifying a queue strategy.

Conveyor

  • Fixed a bug with Merge Controller picklist headers.
  • Fixed a link parity error that happens on FR entry transfers in certain situations.
  • Fixed a bug with items jumping beyond the conveyor's length with certain speed driver settings.
  • Fixed an exception being thrown when joining custom conveyors and a new conveyor can't be made.

AGV

  • Fixed a bug with accumulating paths not properly releasing AGVs when there are very small deceleration values.
  • Fixed an exception when redirecting AGVs in certain cases.
  • Fixed some exceptions that can occur when AGVs recreate their travel paths.
  • Fixed an issue caused when control points are placed right on the junction between two paths.
  • Fixed issues with redirecting AGVs without way points.
  • Fixed a bug with the simulation time halting in certain situations during a proximity resume event.

FlexSim 17.0.5 (April 28, 2017)

  • Fixed some intermittent crashes caused by a bug in the FlexScript compiler with ternary operators, min(), and max().
  • Fixed the error handling when trying to open 17.1 models.
  • Fixed pointer table cells not clearing when adding rows/columns.
  • Fixed invalid Object downcast exceptions and global variables in custom charts.
  • Fixed a bug with OnResume Wait for Event not firing for BasicFRs.
  • Fixed FlexScript command overload definitions for initkinematics(), setvarnum(), setvarstr(), listpush(), destroyeventsofobject(), and dellabel().

Process Flow

  • Fixed sampling labels of the Process Flow object from activities.
  • Updated TS activity headers to use treenode executer and not Object executer.
  • Fixed the Save Context label assignment so the label is always created on the respective token, not its parent.

AGV

  • Fixed a bug with dwg lines being drawn too thick when using the AGV Module.

FlexSim 17.0.4 (April 10, 2017)

  • Added better error message information on certain exceptions.
  • Fixed an issue with the [] operator throwing an exception when the node doesn't exist.
  • Fixed some autocomplete exceptions in the code editor view.
  • Fixed a bug with autocomplete when identifiers have an underscore.
  • Fixed a memory leak in the Table class.
  • Fixed an issue with casting from a class type to a new object of the same class type.
  • Fixed hanging issue with function-like macros that are instantiated with the same parameters as those passed.
  • Fixed a bug with inObjects and outObjects not working properly with internal container connections.
  • Improved the error message when executing a single-line script command that doesn't return a value.
  • Fixed a bug with the menus not correctly graying in certain situations.
  • Improved the error handling of watch variable evaluation.
  • Fixed a bug with the query() command when using the debugger.
  • Fixed an exception in the debugger.
  • Fixed an issue with the ++ operator on label properties.
  • Fixed a bug with the code headers for the TrafficControl triggers.
  • Fixed a bug with the Passing drop-down list on the Network Properties window.
  • Fixed a bug with the Command Helper view not updating correctly in certain cases.
  • Fixed a crashing issue with a sampler in the Video Recorder window.
  • Fixed an issue with the Processor's Use Operator error message not appearing correctly.
  • Fixed a bug with tools deleting themselves on reset if created during a model run.
  • Fixed a bug with the initial positioning of curved network edge spline points.
  • Fixed an issue with the Script Console losing text when undocking a neighboring tab.
  • Network Nodes now highlight when hovered over in the 3D view.
  • Fixed a UI issue with units in dashboard chart Properties windows.
  • Fixed an issue with the Custom Chart collecting data beyond its max time interval.
  • Fixed Statistical Distributon popups not showing the submenu correctly.
  • Fixed a bug with transporting batches of flowitems not working properly in certain situations.
  • Fixed an issue with certain GUI Builder menu options not working properly.
  • Added a global preference for disabling auto-insert parentheses and quotes.

Process Flow

  • Fixed a bug with assigning a label to a task sequence with the Assign Labels activity.
  • Fixed a bug with adding Process Flow objects to user libraries.
  • Fixed a bug with the Wait For Event properties window.
  • Fixed a bug with tying an object with a TE/FR Process Flow to a Resource with a count greater than one.
  • Updated the Conditional picklists so they no longer evaluate both the true and false statement.
  • Fixed an issue on the List with having backorders with no pullers.
  • Fixed a bug with copy/pasting Zones.
  • Fixed a bug with chart time windows.

Conveyor

  • Fixed an issue with decision points and photo eyes not snapping to the conveyor in certain situations.
  • Fixed a bug with transfer statistics.
  • Fixed some drawing issues with invalid conveyors.
  • Fixed an issue with dragging multiple selected conveyors and decision points.
  • Fixed a bug with conveyor virtual length.
  • Fixed a bug in the accumulation gap calculation algorithm.

AGV

  • Fixed curved paths being draggable when path draw mode was set to clickable only.

FlexSim 17.0.3

  • Fixed a bug when compiling with Visual Studio 2015.
  • Fixed a bug with querying list partitions by their index.
  • Fixed a crashing issue with large arrays in tables.
  • Fixed an issue with fractions in the convert() command.
  • Fixed some issues with autocomplete and code highlighting.
  • Fixed bugs with certain FlexScript operations not working correctly with the Table's [][] operator.
  • Fixed adding lists from a user library.
  • Fixed an issue with exporting dashboards to html.
  • Fixed a bug in the Export Results to CSV File pick option.
  • Fixed some UI bugs in the Excel Interface window.
  • Fixed an issue with combined dashboard stats used as a performance measure.
  • Updated user libraries so that replaced time tables, mtbf/mttr, and lists retain their members and contents.
  • Fixed some bugs in the legacy conveyor's normals and texture coordinates.
  • Fixed a bug with saving/loading multi-dimensional arrays.
  • Fixed a crashing bug with accessing certain arrays out-of-bounds.

Process Flow

  • Added a message when trying to sample a Global List from a Push/Pull from List activity.
  • Fixed an issue that caused quick properties to sometimes update incorrectly.
  • Fixed an issue that caused tokens to not move through activities in certain circumstances.
  • Fixed the Assign Labels name fields so you can type in text that is the name of an object.
  • Fixed the edit fields so they properly handle all of the Token's properties.
  • Fixed the Token's instance property so it returns the correct object.
  • Added right-click options for assigning number or string data to Schedule Source label columns.

Conveyor

  • Added an error message if the target fill percent is too large for slug build conveyors.

AGV

  • Fixed a routing error where AGVs couldn't find a path in certain situations.
  • Fixed a bug with waypoints when using agredirect() to switch directions.
  • Fixed a bug with AGVs running over each other on an accumulating path after a preempt.
  • Fixed an exception in agvinfo(agv, AGV_ACCUM_AHEAD_AGV).
  • Fixed an issue with adding cp connections, then removing them and adding a different type of connection.

FlexSim 17.0.2 (February 2, 2017)

  • Fixed a memory leak that caused the views to crash unexpectedly.
  • Fixed assigning a table value directly to a property.
  • Fixed a bug with parenthesis matching when using string literals containing parentheses.
  • Fixed a bug with global table Clear on Reset not working properly in certain cases.
  • Fixed default datatype value of settablesize() in C++.
  • Fixed a bug with drawtext() default parameters in FlexScript.
  • Fixed Travel to Location pick option.
  • Fixed an issue with setting item state incorrectly when using lists in Send To Port.
  • Included fixes listed in 16.0.9 below.

Conveyor

  • Fixed a crash that could happen when transporting items between an exit and entry transfer.

AGV

  • Fixed an exception when listening to OnAGVAllocationFailed.
  • Fixed an issue involving AGVs with trailers not routing correctly in certain cases.

FlexSim 17.0.1 (January 19, 2017)

  • Fixed the updatekinematics() command.
  • Fixed a memory leak in the Table class.
  • Fixed a crash with executing certain switch cases, such as the Date/Time Text display.
  • Fixed a bug with the tonode(Variant) overload.
  • Fixed an issue with setting treenode properties in certain cases.
  • Fixed an issue with setting label properties on a Variant in certain cases.
  • Fixed some bugs with certain executetablecell() overloads.
  • Fixed the lognormalmeanstdev() command parameters.
  • Fixed the function_n() command definition.
  • Fixed a crash when updating some user libraries.
  • Fixed a bug with Navigator connections when adding TaskExecuters with the Experimenter.
  • Fixed a bug with autocomplete for current labels within code editors.
  • Updated the Event List view so it displays message parameters.
  • Fixed an issue with the Experimenter's Performance Measure charts again not displaying correctly when bad data was passed in.
  • Fixed issues with module dependencies not being asserted correctly.
  • Fixed some picklists to use Objects instead of treenodes where applicable.
  • Fixed the Precision field for Bar Charts.
  • Fixed an issue with flowitems without windowtitle attributes.
  • Fixed a bug in the Set Object Color pick option.
  • Fixed a bug in the Travel to a Home Location pick option.
  • Fixed event definitions for the Rack (Place In Bay/Level and Min Dwell Time).
  • Included fixes listed in 16.0.8 below.

Process Flow

  • Fixed the State property for the Delay activity.
  • Fixed the code headers for all the task sequence activity properties.
  • Fixed the Sub Flow Instance Creation option from Quick Properties.
  • Made the add button for attaching objects to instanced ProcessFlows more lenient.
  • Fixed edit fields to properly display the code for labels with spaces in the name.
  • Updated edit fields to more properly handle typing in token labels as opposed to code.

FlexSim 17.0.0 (December 12, 2016)

  • Improved FlexScript performance by compiling and executing it as machine code instead of interpreted bytecode.
  • Added new syntax to FlexScript for accessing objects' methods and properties, including dynamic label access.
  • Improved OpenGL compatibility by removing many deprecated function calls and adding support for the OpenGL Core Profile.
  • Added a mechanism for loading DWG data into the tree using the Model Background object.
  • Added a new Snap to Background setting on the 3D view for snapping to points loaded from a DWG file.
  • Upgraded the licensing system to Flexnet Publisher 2016 R1 (11.14).
  • Changed the network licensing system so that you can open multiple FlexSim instances using only one license seat.
  • Added a Quick Library popup to Dashboard views.
  • Added Travel to Location pick option to OnResourceAvailable.
  • Added Export Results to CSV pick option to the End of Experiment trigger.
  • Moved the Rank buttons in the General Properties panel of Quick Properties to the Node Properties panel.
  • Fixed a crashing bug with settablesize() on tables with bundle data.
  • Fixed some issues with auto-complete not displaying correctly.

Process Flow

  • Added functionality for snapping activities into the middle of a block.
  • Improved the Activities window, including renaming activities, better filtering options, and locating label references.
  • Added a Billboard setting for Text objects.
  • Added a right-click Edit Activity Visuals option.
  • Added an option to the Create Object activity for positioning an object at another object's location without moving into that object.
  • Added a Preserve Global Position checkbox to the Move Object activity.
  • Updated the Schedule Source table so that it can add labels.
  • Updated the Release Token activity to allow numbers and strings.
  • Added the ability to pass an object reference into the Resource(s) to Release property of the Release activity.
  • The new version of Flexnet Publisher requires network license servers to be upgraded. They need to use the latest vendor daemon and update the Flexnet Licensing Service. More information can be found in the license upgrade instructions at https://www.flexsim.com/ftp/LicenseServer/
  • Updated the Separator's order of events (executing OnEntry before Setup Time) to be consistent with the Processor.
  • Users of the mesh api should update usage of GL_QUADS to use GL_TRIANGLES instead. GL_QUADS is deprecated and will not work when using the OpenGL Core Profile.
  • Since the new FlexScript parser compiles to machine code, the order in which parameters are evaluated has changed to be aligned with the x86/x64 calling convention. This means models containing code where parameter evaluation order is important may have changed results. For example, the following code will have different results:

    myusercommand(duniform(1, 5), duniform(1, 10))

    In the x86/x64 calling convention, parameters are evaluated from last to first. In this case, the duniform(1, 10) call will be called first. Since this call changes the state of random stream 0, changing the order of parameter evaluation changes the result.
  • The new parser has a stricter grammar for the == and != comparison operators. The types of the operands must be the same or related. For example, the following code will now give compile errors because it is comparing unrelated types:

    double x = 0;
    treenode y = model();
    if (x == y) { }
  • This version introduces a new Array type, which is an array of variants, enabling a more feature rich array usage. In doing this, we are deprecating the old array types of doublearray, intarray, stringarray, and treenodearray. Specifically, the old array types are now just aliases for the standard Array type. This means that you can now, technically, put a string into a doublearray and vice versa, because they are all just Arrays. Hence we encourage you to just use Array in your code instead of the old array types.

    This change has also introduced a problem regarding the Variant type. In previous versions, the Variant could hold each of the four types of arrays, and it had a type value associated with each type, which you could get with the getvartype() command, comparing that value to one of VAR_TYPE_INTARRAY, VAR_TYPE_DOUBLEARRAY, VAR_TYPE_STRINGARRAY, or VAR_TYPE_TREENODEARRAY. Now, however, since we've merged all of those types into one, all of those values would theoretically be the same value, introducing issues if you had code that switches on getvartype(), or in some cases if you had a series of if/else compares on that value. Depending on the specific nature of that code, it would be hard to predict exactly how that code would behave going forward. Thus, we have decided to get rid of those old macros for each array type. Now there is just the macro VAR_TYPE_ARRAY.

    If you have existing code that uses the older macros, you will get compile errors when you open your model in version 17.0. We do this specifically so that you will be notified of code that needs to be updated. There are also several pick list options in the process flow module that use these older macros. Version 17 includes update scripts that will hopefully update all of those pick options in existing models to use the new VAR_TYPE_ARRAY macro instead of the old macros.
  • With the new FlexScript parser, there are now some differences with how the parser compares a null variant to 0. In the old parser, the following expressions applied:

    (nullvar == 0) is false
    (nullvar <= 0) is true
    (nullvar >= 0) is true

    In the new parser, the following expressions apply:

    (nullvar == 0) is false
    (nullvar <= 0) is false
    (nullvar >= 0) is false

    This brings the <= and >= operators inline with the == operator. However, old code will evaluate differently now. The following expressions apply in both the new and old parsers:

    (nullvar < 1) is true
    (nullvar > -1) is true
  • The param() command will now return nullvar if the parameter number is greater than the number of parameters passed to the function (previously it returned 0).

FlexSim 16.2.2 (November 8, 2016)

  • Included fixes listed in 16.0.7 below.

Process Flow

  • Fixed a bug where all of a process flow's connections were sometimes being deleted.
  • Fixed the TE Delay activity so it properly shows the delay progress in the view.
  • Changed ProcessFlow charts to always store the tracked variable's full history.

AGV

  • Made multiple AGV process flows share the same AGV work list.
  • Made the AGV path finder more adaptive on 90-degree turns.
  • Fixed a bug where sometimes AGVs would flip orientation incorrectly at certain transfer points.

FlexSim 16.2.1 (October 12, 2016)

  • Fixed a bug with the Font dialog not opening in Global Preferences.
  • Fixed an exception with using JOIN ON without a WHERE clause in SQL queries.
  • Fixed a bug with the number of child processes spawned by the Optimizer.
  • Fixed the Presentation Builder auto-keyframe button.
  • Fixed a bug with the Model Limit view staying open in loaded models.
  • Fixed a bug with undoing in the Global Table Quick Properties panel.
  • Fixed a bug in the date-based Time Table UI.
  • Fixed undo in the 3D View's Quick Library popup.
  • Fixed a bug with priority fields not accepting negative numbers.
  • Included fixes listed in 16.0.6 below.

Process Flow

  • Fixed a bug with not being able to click in the ProcessFlow view while debugging.
  • Fixed bugs with selecting tokens in stacked blocks under a Batch activity.
  • Fixed an issue with the text edit view not sizing correctly at certain zoom levels.
  • Fixed an issue with Send To Front and Send To Back not working with containers.
  • Fixed a bug with preemption in the Synchronize activity.
  • Fixed a bug with Zone partitions sometimes not working properly when using the query() command.
  • Fixed template instance objects resizing based upon the model units.
  • Improved draw speed when drawing many tokens within a single activity.
  • Fixed the Token(s) field on the Release Token activity to allow code.
  • Fixed a bug with arrows not correctly following the theme color.

Conveyor

  • Fixed a bug with the Conveyor Station drawing its red stopped squares incorrectly.

AGV

  • Fixed some bugs with AGV orientation.
  • Fixed a bug with AGVs sometimes stopping erroneously at a control point and not starting again.
  • Fixed some issues with continuation from non-zero end speed when deceleration would take you across a control point.
  • Fixed some bugs with the AGV template process flow.
  • Fixed an issue with clicking control points.
  • Fixed an issue with the navigator not rebuilding its routing information after deleting a path.
  • Fixed a bug with copying paths in visual tools.

FlexSim 16.2.0 (September 5, 2016)

  • Added support for STEP and IGES 3D shapes.
  • Added a Quick Library popup when you double-click on empty space or A/S Connect to empty space in the 3D view.
  • Improved object rotation manipulation in the 3D view.
  • Added sorting to toolbox for top level items.
  • Added the ability to use the query() command with partitioned lists, using ListName.$1 or ListName.PartitionIDStr syntax.
  • Added support for the ON clause in SQL queries using the query() command.
  • Added support for the ARRAY_AGG() aggregation function in SQL queries using the query() command, in the manner of PostgreSQL.
  • Added an "Allow Multiple Pushes Before Back Order Fulfillment" setting to lists.
  • Added a "Reevaluate All Values On Push" setting to lists.
  • Added a Date Based feature to gantt charts.
  • Updated the auto-numbering mechanism when naming new objects.
  • Updated file browse dialogs to remember the last used directory.
  • Changed the default directory for opening and saving user libraries to be within documentsdir().
  • Added a colors tab to the tracked variable dashboard chart.
  • Updated the Presentation Builder interface to make the timeline more useable.
  • Updated the Animation Creator interface.
  • Updated the Stop Time interface.
  • Added range and type validation to many edit fields.
  • Overhauled the FlexSim Web Server interface.
  • Added functionality to the Webserver to restrict access to certain models using Windows Authentication.
  • Fixed a bug with the window docking system that caused sizing to not work properly sometimes.
  • Fixed TimeTable Excel Import bug not working with Daily/Weekly Repeat table.
  • Fixed the Visual Studio project files so they don't give you the linker errors when you compile flexsimcontent.dll with Visual Studio.
  • Fixed a bug with cell heights and widths when inserting and deleting table rows or columns.
  • Fixed line charts continuing to collect data beyond their collect time.
  • Fixed the query() command so that it can be called within List fields.
  • Included fixes listed in 16.0.5 below.

Process Flow

  • Improved Process Flow view performance.
  • Added Split, Join, and Synchronize activities.
  • Added right-click options for re-ranking activities in a block and removing an activity from a block.
  • Added tooltips to activities that show you the activity type.
  • Added copy and paste options to the Process Flow right-click menu.
  • Populated field names of lists for SQL drop-down menu options.
  • Updated Text editing interface to be more user friendly.
  • Added an "Assign Event Object To" option to the Wait For Event and Event-Triggered Source.
  • Fixed a bug with Zone Partitions not being able to be graphed.
  • Fixed an issue with connectors losing their ranks when clicking and dragging them.
  • Fixed the List Back Order Reevaluation Events so you can listen to activity events.
  • Fixed the Experimenter duplicating TEs/FRs attached to Process Flow objects not properly duplicating the Process Flow instance.
  • Fixed Sub Flows that have Resources pointing to 3D objects in the model not properly creating/destroying copies of the 3D object.
  • Fixed Resources in Fixed Resource and Task Executer Process Flows losing their references when being updated by a user library.
  • Fixed a bug with the Pull from List where releasing the token and leaving the back order on the list would not give you all of the pulled results when using the 'Assign To' option.
  • Fixed a bug with capturing ProcessFlow views at resolutions larger than the window size.

AGV

  • Added new agvinfo() command options.
  • Updated paths so that they can be contained within visual tools.
  • Fixed issues with routing through path junctions where 3 or more paths connect.

Conveyor

  • Fixed an issue with manually moving a waiting item off a conveyor with a restart delay.

FlexSim 16.1.2 (August 5, 2016)

Process Flow

  • Fixed the Acquire Resource receiving a reference to the back order when acquiring using a query.

FlexSim 16.1.1 (August 2, 2016)

  • Included fixes listed in 16.0.3 below.
  • Fixed color and sizing issues with recording Dashboards using the Video Recorder.
  • Added a volume scale option to the FluidConveyor to adjust the visual display.
  • Fixed several issues with the FluidConveyor.

Conveyor

  • Fixed an issue with manually moving a waiting item off a conveyor with a restart delay.

Process Flow

  • Fixed a bug with Zone Partitions not being able to be graphed.
  • Fixed an issue with connectors losing their ranks when clicking and dragging them.
  • Fixed the List Back Order Reevaluation Events so you can listen to activity events.
  • Fixed the Experimenter duplicating TEs/FRs attached to Process Flow objects not properly duplicating the Process Flow instance.
  • Fixed Sub Flows that have Resources pointing to 3D objects in the model not properly creating/destroying copies of the 3D object.
  • Fixed a bug with capturing ProcessFlow views at resolutions larger than the window size.

FlexSim 16.1.0 (June 22, 2016)

  • Added group commands (groupaddmember(), groupmember(), groupnummembers(), groupremovemember()).
  • Global Lists will now update their Initial Content on reset when connected to a Group if the group's members change.
  • Added support for the UPDATE clause in SQL.
  • Added support for the RAND expression in SQL (uses stream 0 and will always be the same for a given query/row selection combo).
  • Improvements to speed and memory usage when performing SQL inner joins.
  • Tracked variables with type Categorical can now store arbitrary states.
  • Added a Kinetic Level tracked variable type (e.g. Battery Level).
  • You can now hold down the Alt key while clicking and dragging in the 3D view to ignore all objects.
  • You can now resize objects while maintain their aspect ratio by pressing both the left and right mouse buttons down on a sizer arrow.
  • Updated dashboard charts to support x-axis scaling.
  • Added OnStop and OnResume events to 3D objects for use with event listening objects (Wait for Event and Event-Triggered Source in Process Flow).
  • Video Recorder can now record Dashboards.
  • Time Tables, MTBF/MTTR and User Events can now be disabled. Experiment variables can be set to enable/disable these objects.
  • Fixed an issue with the VideoRecorder not loading properly.
  • Fixed issues with windows and popups not opening on the correct monitor when using a multiple monitor setup.
  • Fixed Fluid Conveyor throwing exceptions on reset.
  • Updated to OpenGL 3.1. Deprecated OpenGL functions, such as glBegin(), glEnd(), glVertex(), glNormal(), and glTexCoord(), may no longer work correctly on some graphics cards. You should instead use the mesh api.
  • Changed the way that fixed resources (except the Combiner) receive items when they are being transported in. Previously, when they were notified that an item was being transported in, they would close their inputs and create an event to receive the next item. This would cause problems if the upstream objects had multiple items to send because their routing strategy would work differently when transporting vs not transporting. We have fixed this so that routing strategies will work the same when transporting as when not transporting. This may change the way that old models work because it changes the events that are created, and, obviously, it fixes routing strategy logic.
  • menumain(), menubelow() and getviewmenu() have changed. Instead of returning a double, they now return a var. Any calls to these commands will need to be updated to use var or the value returned will be 0.
    double myMenu = getviewmenu();
    Changes to:
    var myMenu = getviewmenu();
  • Previously the Fluid Conveyor would stop conveying if no material was moved into it (ie inputs were closed). This was changed so that the Fluid Conveyor continues to convey the material in it whether any additional material is added or not. Set the conveyor speed to 0 in order to keep the same functionality that was in previous versions.

Conveyor

  • Added Ports to the Entry and Exit Transfers.
  • Added a Restart Delay setting to Conveyor Types.
  • Fixed the Join Conveyors Tool when connecting conveyors with a custom conveyor type.
  • Various bug fixes and improvements specifically with regards to items moving between conveyors and transfers.
  • Changed the way stopping a non-accumulating conveyor works when propogating stops to straddled conveyors. When a conveyor is stopped, it will act the same as if an item on the conveyor were stopped.

Process Flow

  • Added Preemption activities (Save Token Context, Release Token and Restore Token Context).
  • Added gettokens() and getbatch() commands.
  • Added Templates for Fixed Resource and Task Executer Process Flows.
  • Added a Token Data to Preserve option to the Sink and Finish activities. In the Tokens window you can view Dead tokens and explore their data.
  • Token Trace History is now stored as a label on the token.
  • Added a Speed Type and Repeat Type to the Run Animation activity.
  • A lot of improvements to the Zone.
  • Updated the evaluation of the Return Value from the Finish activity so that executesubflow() can get a return value from multiple Finish activities.
  • Added Activity Profiles to the token trace histories.
  • Fixed a bug causing the Wait for Event to evaluate its Max Wait Timer even if the token left the activity.
  • Fixed issues with the releasetoken(), createtoken(), and releasebatch() commands working differently when running vs stepping.
  • Changed the way that a token manually released (preempted) from waiting in a task sequence activity manages the task that it's waiting on. Now the task will be removed, and the task executer preempted if currently working on it. This may change older models that release tokens in task sequence activities.

AGV

  • Added Event info to AGVs and Control Points for use with event listening objects (Wait for Event and Event-Triggered Source in Process Flow).
  • Added AGV templates to Process Flow.
  • Fixed bug with way points not firing their OnArrival for redirected AGVs.
  • Fixed issue with arrival waypoints not firing correctly with non-zero end speed travel tasks.
  • Fixed the order by which AGV trailers are attached to their AGV. This will affect old model trailer ordering.

FlexSim 16.0.9 (February 2, 2017)

  • Fixed issues with table commands not working in C++ when the table has bundle data.
  • Fixed more bugs in time-scaled animations in various cases.

FlexSim 16.0.8 (January 18, 2017)

  • Fixed an issue with pushing an array to a list with static label fields.
  • Fixed a crash when a bundle used by a chart is destroyed.
  • Fixed a bug in time-scaled animations that was causing them to not update properly in some cases.
  • Fixed images in static text not showing when aligned to center.
  • Fixed a bug with the By Time of Day picklist on Send To Port.
  • Fixed several By Percentage picklists so that they work properly with 0%.
  • Fixed Global Variables being linked to Dashboard Radio Buttons.
  • Fixed an issue with selecting weeks in the Date Based Time Table.
  • Fixed module object context help options.
  • Fixed an issue with the Experimenter updating state values when a run is finished.
  • Fixed the event log not ignoring module events when you disabled them.
  • Fixed copying and pasting presentation slides.

Conveyor

  • Fixed some issues with floating point precision errors.
  • Fixed photo eyes not clearing when height > 0.
  • Fixed an issue with an entry transfer's pull strategy pulling from a list.
  • Fixed a bug in the Exit Area pickoption.

Process Flow

  • Fixed an issue where some charts didn't collect data if they weren't visible.
  • Fixed the Zone so you can view its tokens in the global process flow view of instanced process flows.
  • Updated some charts so they show the correct times when using a warmup time.
  • Fixed a bug with the batch when releasing multiple batches due to overflow when the batch quantities differed from the current batch and the new batches.
  • Fixed an issue with viewtofile() on the Process Flow view.

AGV

  • Fixed an issue with adding and removing different types of control point connections.

A*

  • Fixed the distancetotravel() command for A*.
  • Fixed issues with creating and drawing barriers in models set to units other than meters.

FlexSim 16.0.7 (November 8, 2016)

  • Fixed a bug with clearglobaltable() not always clearing the entire table.
  • Fixed bugs with addtablerow(), addtablecol(), movetablerow(), and movetablecol() on bundle tables.
  • Fixed a UI bug with large Partition IDs displaying incorrectly.
  • Fixed a UI bug with the user command code editor's default header.
  • Fixed a bug with animation durations when deleting animation clips.

Conveyor

  • Fixed conveyorsenditem() so that it works with Station objects.

Process Flow

  • Fixed the Create Object activity so creating something on an AGV control point sets the location to the control point.
  • Fixed referencing process flow variables so it throws an exception if the variable doesn't exist.
  • Fixed the Run Animation Wait for Complete check box to work with bone animations.

FlexSim 16.0.6 (October 12, 2016)

  • Fixed an exception when calling updatelocations() on TaskExecuterFlowitems directly under the model node.
  • Fixed a bug with multisorttable() not working correctly with string data.
  • Fixed a bug with querying lists using the $ parameter syntax.
  • Fixed a bug with state charts not properly accounting for the minimum collect time with the new stats structure.
  • Fixed an intermittent exception in gettenetnode() in the Travel to Home Location pick option.
  • Fixed an intermittent exception when pasting network nodes.
  • Fixed a bug with eventget(num, 4) throwing exceptions.
  • Fixed a bug with gettablecols(string) returning inconsistent values.
  • Fixed issues with the Optimizer not exporting string variables correctly.
  • Fixed a bug with the Optimizer not correctly running multiple replications with certain configurations.
  • Fixed a bug with Copy Visuals and Shape Factors not copying the shape factors correctly.
  • Fixed a UI bug in the MultiProcessor's Properties window that was renaming the first step.
  • Fixed the State Pie Chart so it correctly shows Totals and Averages of combined groups.
  • Fixed a bug in the State Pie Chart with "Combine All into One Pie" not showing the correct average totals.
  • Fixed some UI issues with sampling global tables.
  • Fixed the On Process Finish trigger for the MultiProcessor so Process Flow activities can listen to it.

Conveyor

  • Fixed a bug in the Entry Transfer's Pull Requirement code header that caused pull not to work correctly.
  • Fixed a UI bug with the Station's Use Operator fields.
  • Fixed the z-height of conveyors created in a container using click-click creation.

Process Flow

  • Greatly improved model run performance by removing some unnecessary destroyeventsofobject() function calls in the Sink activity.
  • Fixed issues with being able to wait for events on Tracked Variables and Fields.
  • Fixed the sampler in pick options in the Create Object activity properties.
  • Fixed a UI bug with the Visually Trace checkbox.
  • Fixed the token Labels view so you can select and copy label names.

A*

  • TaskExecuters that are travelling on the A* Network will now properly respond to stopobject() and resumeobject() calls and to preempting task sequences.

FlexSim 16.0.5 (September 5, 2016)

  • Fixed sin() command not displaying in the Command Helper.
  • Fixed a bug when shift-selecting entire rows and columns of global tables.
  • Fixed C++ Variant comparisons where the primitive is on the left side.
  • Fixed the return values for CURRENT_MINUTE, CURRENT_SECOND, and CURRENT_MILLISECOND in getmodelunit().
  • Fixed a bug with SQL parsing of FlexScript functions returning doubles in 32-bit FlexSim.
  • Fixed some pin buttons in the Stats window.
  • Fixed a bug in a Pull From List pick option.
  • Fixed Crane and Robot speeds not scaling with model units.
  • Fixed a bug with the From/To Lookup Table popup not putting quotes around table names.
  • Fixed a bug with exporting Custom Chart data as CSV sometimes not working.
  • Fixed some UI issues with the Edit Name box for User Libraries.
  • Fixed an exception in the Set Label trigger popup.

Conveyor

  • Fixed header for OnMessage trigger of Photo Eyes.
  • Fixed decision point rotation in a rotated container.
  • Fixed a bug with calculating the time that items will split off from each other when an ahead item speeds up.
  • Fixed a rare crashing issue with accumulated items.
  • Fixed an issue with resuming nonaccumulating conveyors that weren't stopped.

Process Flow

  • Fixed a UI bug with the process flow variable panel in Quick Properties when opening a model.
  • Fixed some instance references from showing just the name to now showing the path to better distinguish objects in containers.
  • Fixed an extra line being added in the token Shared Assets list when requesting a Zone.
  • Fixed the Quick Library so you can collapse sections.

AGV

  • Fixed issue with click-creating AGV control points before creating paths.
  • Fixed issue with calling stopobject() on an agv when it has arrived at a control point at (near) zero speed.

FlexSim 16.0.4 (August 5, 2016)

Process Flow

  • Fixed the Acquire Resource receiving a reference to the back order when acquiring using a query.

FlexSim 16.0.3 (August 2, 2016)

  • Fixed a performance issue with settablenum() when referencing a table by rank.
  • Fixed a bug in exporttable() not exporting the correct number of rows.
  • Fixed a bug in query() with $iter(1) in certain cases when inner-joining tables.
  • Fixed a rare crashing issue with the WRL importer.
  • Fixed some glitches with editing Chinese characters in code edit fields.
  • Fixed an issue with Chinese characters in some Dashboard charts.
  • Added a flag to listpull() to fix an issue involving backorders when using Unique Pullers or Unique Values.
  • Fixed a bug with custom state names in the State Chart.
  • Fixed an infinite loop caused by using long object names with some Dashboard charts.
  • Updated some picklist options to use more consistent default terms.
  • Fixed an issue with Code Snippet popups not resizing vertically.
  • Fixed a bug with adding all user commands to a user library.
  • Fixed a bug with some startup and load install options not working properly with user libraries.
  • Fixed a UI bug with the Excel progress bar.
  • Fixed a UI bug with certain spin boxes not updating their text when holding the mouse on their arrow buttons.
  • Fixed a bug with Excel Import starting row and starting column not always working correctly.
  • Fixed an HTML Frame Load Error for user accounts with Unicode characters by changing programdatadir() to again use ProgramData instead of AppData.
  • Fixed the convert() command to handle years after 2035.
  • Fixed a bug with the experimenter displaying blank results due to invalid data.
  • Fixed a bug with the experimenter not properly recording dashboard state charts with collect times defined.
  • Fixed an issue with pushing an array of values to a list when there are back orders waiting.

Process Flow

  • Fixed a bug with Pull from List not setting the pulled label when nothing was pulled.
  • Added conveyor pick options to the Custom Code activity.
  • Fixed a timing issue with the Resource at time 0 that sometimes allowed too many tokens to allocate it.
  • Fixed displaying Chinese characters in Text objects.
  • Fixed a bug with Zones throwing SQL errors when also using the query() command.
  • Fixed an infinite loop in the auto-naming of Split connectors.
  • Fixed an issue with certain time-weighted charts not calculating the average correctly.

A*

  • Fixed a repeatability issue with path finding in large models.

FlexSim 16.0.2 (June 28, 2016)

  • Fixed a bug with nodetopath() sometimes returning a path that starts with / when it should start with >.
  • Fixed a bug with exporting tables with bundle data as csv.
  • Fixed an issue with reading current bound-statistic values.
  • Fixed a bug with weight objectives in OptQuest.
  • Fixed a bug showprogressbar() not updating the text properly.
  • Fixed an issue with watch variables not working right with some arrays.
  • Fixed an issue with popups closing when you hover over a tab when using the sampler.
  • Fixed an exception with drawing connections and hidden objects in the 3D view.
  • Fixed a bug with 'station' not being correctly passed into the Load Time and Unload Time triggers on Task Executers.
  • Changed the number precision model setting so that it behaves in a more consistent manner.
  • Fixed a UI bug with the Display Current State Only checkbox.
  • Fixed Help Manual's Open in Browser button.
  • Fixed a bug with the Code Profiler closing when undocked from a tab pane.
  • Fixed a bug with opening the Properties window for some shapes in the Animator.
  • Fixed an issue with using multiple replications with OptQuest.
  • Fixed a UI bug in the Optimizer view.
  • Fixed an issue with operators getting stuck when preempted while finishing an unload task.
  • Fixed a bug with the Combiner components list sometimes not updating.
  • Fixed the Time Table Dated Based GUI so it works with all model time units.
  • Fixed some exceptions being thrown with dashboard state charts when setting an object to a state that is not listed on the state chart.

Conveyor

  • Fixed a UI bug with applying Decision Point and Photoeye triggers.
  • Fixed a bug with an operator picking up an item when it has transfered partially to the next conveyor.
  • Fixed an issue with an item exiting firing the accum stopped cleared event of upstream items.
  • Fixed some errors with clearing photo eyes on item exit.
  • Fixed a bug where items behind a side transfer were not notified of a speed driver change at a side transfer.
  • Fixed an issue that caused exceptions when items are removed while straddling multiple conveyors.
  • Fixed a binding issue with the OnSlugStart event.
  • Fixed a bug where re-routing was not working on a conveyor with a virtual length.

Process Flow

  • Fixed some exceptions in Push to List.
  • Fixed a Push to List bug where puller is not assigned to a label if the pushed value is not a token.
  • Fixed the Tokens popup throwing exceptions when the token you're viewing leaves.
  • Fixed a bug causing the Wait for Event to evaluate its Max Wait Timer even if the token left the activity.
  • Fixed some issues in the releasetoken(), createtoken(), and releasebatch() commands so that they work the same when running or stepping.
  • Changed Request and Require fields to not require integers.
  • Fixed some bar chart color bugs.
  • Fixed a precision issue in the Batch activity.
  • Fixed a UI bug with ProcessFlow chart Display Names.

AGV

  • Fixed a bug with way points not firing their OnArrival for redirected AGVs.
  • Fixed a bug with queryDistance().
  • Fixed an issue with arrival waypoints not firing correctly with non-zero end speed travel tasks.

FlexSim 16.0.1 (April 1, 2016)

  • 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 compatibility 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.
  • 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.
  • 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.
  • 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:
    1. 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.
    2. 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.
  • 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.
  • 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()
    The implications for these changes are as follows:

    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:
    1. return tonum(...);
      changes to:
      return (...);
    2. 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, (...), (...));
    However, the update script will NOT catch the following:

    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.

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.
  • 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.

A*

  • 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.

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.
  • 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.

A*

  • Added a picklist to the Transport Ref for adding TaskExecuter FlowItems to the A* Navigator.
  • Fixed an issue with attaching TaskExecuters to A* 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.
  • 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.

A*

  • 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 A* Navigator 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 A* 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 formatted descriptions.
  • 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.
  • 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.
  • 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.