FlexSim Knowledge Base
Announcements, articles, and guides to help you take your simulations to the next level.

FlexSim 2017 Update 2 Beta Available

Contributed by:

FlexSim 2017 Update 2 Beta is available. (updated 22 August 2017)

To get the beta, log in to your account at www.flexsim.com, then go to the Downloads section, and click on More Versions. It will be at the top of the list.

If you have bug reports or other feedback on the software, please email dev@flexsim.com or create a new idea in the Development space.

Release Notes

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

Backwards Compatibility Note: the following changes may slightly change the way updated models behave.

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

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.

AStar

  • Added a bridge element to the AStar network.
  • Added functionality for collision avoidance.
  • Improved heat maps for analyzing AStar traffic.

Backwards Compatibility Note: the following changes may slightly change the way updated models behave.

  • Changed the path finding algorithm for the AStar navigator. When you tell an AStar 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.
Comments

Seems like a lot of useful new features. Really looking forward to this release!

Thanks guys, great feature list! Will definitely play with it test it next week.

In the mean time, could you please push the new headers to the Module SDK repository? Thanks.

Nice new manual,
I miss in Reference > 3D Objects > Fixed Resources > Combiner
Instead I get: System Console: "exception: HTML Frame Load Error 37 Encountered: Couldn't read a file:// file"

Just want to mention that I already love the statistics collector! Just a quick feature request: could you make a duplicate option for the event reference? I have an event with quick some settings and labels and would like to include another object with the same settings... I could have though about making the labels shared and just select the event again, but it would be easier if I could just hit the "Duplicate" button and just change the Object reference 🙂

Also, it would be nice if I could turn a property into a Shared property from the GUI 🙂

7768-duplicateevent.png

Thanks. Looks like somehow that file didn't get included in the installer.

Thanks for the suggestions.

@Mischa Spelt Sorry for the question but where do you pull from the statistics Collector window properties from?

@Matt Long I think there is a bug concerning Text elements in a Process Flow. See processflowtexts.fsm. If you open the process flow in that model then the text elements sometimes take focus when they shouldn't. It seems like the yellow box appears whenever the x-coordinates of the mouse match the textbox width, but the y-coordinates are not checked. This is quite annoying if you have a wide textbox 🙂

Thanks for the heads up! This should be fixed in the next beta.

To open the window: You can add a new Statistics Collector from the toolbox, like a List. You can double click the object in the toolbox to re-open the properties window.

How to use the window: We are making a tutorial that will come out in a future beta. Sorry it didn't make the first couple betas!

Ya currently any Process Flow with containers becomes completely unusable.. Turned out Visual Studio 2017 (which we recently switched to), was incorrectly optimizing a piece of code when building in release mode, so we didn't find it until after the first beta was released. Thanks.

Thanks for the new release, everything I reported is fixed / implemented! Small nitpick about the user manual: in the Process Flow Tutorials the numbering is jumping straight from 1 to 4 (will the next one be Tutorial 9? :-)).

Same for:
Tutorials/FlexSim Basic Tutorials/Task 1.2 - Build a Process Flow Model
in beta posted July 27.

Tutorials 2 and 3 are still under construction

Is it correct that the Process Flow Charts have been moved to the legacy section of the Dashboard library? Because the "Pin To Dashboard" buttons still create those instead of the new statistics collector charts.

Hi,

While clearing the global table using the right click option. I am getting the following error.

8079-clear-error.png

Thanks for pointing this out. We'll get it fixed.

Looks like they just haven't been updated yet to use the new stats collector.

@Matt Long Found another bug: Wait For Event complains when you try to wait for an event in an object group. It worked in 17.1 so probably related to the changes in Object Groups. waitforeventgroup.fsm

The quick help page for SQL queries is broken in the Process Flow query dropdown.

It says "There is no available help topic for the following page id: SQL_Quick_Start".

Thanks

Hi,

While dragging and dropping the conveyor objects, some error messages are thrown.

exception: Exception Caught in ObjectFunction235__project_library_FlexSimEventHandler_behaviour_eventfunctions_OnDraw object: /ConveyorSystem i: /ConveyorSystem class: /ConveyorSystem

exception: Exception caught in TreeNode::receivemessage()
exception: EditorSpatial::drawContent()

Regards,

Arun KR

Thanks for pointing this out. We will fix these exceptions and change the Conveyor Module to disable render mode when using a Generic OpenGL Context.

Seems in the latest beta, Process Flow's Object Group Resource is broken. Steps to reproduce: create an object group in the model, link a Process Flow Resource to it, hit reset --> "exception: FlexScript exception: MODEL:/Tools/ProcessFlow/ProcessFlow/Resource>variables/refCount".

Problem seems to be that the "reference" parameter in the refCount code is already a reference to the group (i.e. /Tools/ObjectGroups/ObjectGroup1) and putting that into a Group constructor in the last line returns null. Seems like "return Group(reference).length" should be "return reference.as(Group).length".

Thanks we'll get that fixed.

Great job! Dashboards are more flexible and following objects is easy.

I think that something could be improved when working with length measurement units different than meters. e.g. with millimeters the mouse wheel doesn't work to move objects in z axis, it works with conveyor but too slowly.

Could also be useful to me a quick table opening from a node / label. e.g. a key + click combination instead of doing right click > explore > as table. Because is something that can be done often.

Sorry for reporting this so close to the release date but I think I may have found an annoying bug that happens when I try to create some labels in the Run Subflow activity. I cannot change the label name, when the name field loses focus it goes back to LabelName and I get an exception

exception: FlexScript exception: string index out of range in call to string.substr() at VIEW:/active/MainPanel/BackPanel/SplitterXPane/TabPane~2/TabControl/ProcessFlow/RunSubFlow/AssignLabels/Scroll/Panel/Template743/EditName/EditCode>eventfunctions/coldlinkx c: VIEW:/active/MainPanel/BackPanel/SplitterXPane/TabPane~2/TabControl/ProcessFlow/RunSubFlow/AssignLabels/Scroll/Panel/Template743/EditName/EditCode i: MODEL:/Tools/ProcessFlow/ProcessFlow/Load items

Hopefully you'll still be able to fix this in time for the release!

Thanks for catching that! We've fixed it for the release.

We added both of these to the dev list. They won't make it in to the 17.2 release though.

Thanks! We fixed this so that it works if you use the sampler on the group, use the pick option or type it into the box. I found you can still get the error if you return a group from the code editor (so don't do this and it will work).