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

FlexSim 2017 Beta Available

Contributed by:

FlexSim 2017 Beta is available. (updated 30 Nov 2016)

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

  • 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
  • Fixed some issues with auto-complete not displaying correctly.
  • Fixed a crashing bug with settablesize() on tables with bundle data.

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.

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

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

Great, thanks guys! Was very much looking forward to these features. @anthony.johnson could we also get the updated SDK please?

This looks great! Is there going to be documentation on how to use the new syntax within FlexScript?

You can refer to the FlexSim Coding section of the User Manual for information on using dot syntax. There is also a FlexScript Class Reference contained in that section as well.

I've pushed the latest to the SDK repository.

I am a problem in grasping the network license with the new version 2017 but not 2016. Not too sure if there is setting I missed out.

David

In order for server licensing to work correctly with 17.0, existing license servers will need to be updated with the latest vendor daemon (flexsim.exe and flexsim_libFNP.dll) from https://www.flexsim.com/ftp/LicenseServer/LicenseServer.zip

The flexsim.exe and flexsim_libFNP.dll are in: LicenseServer.zip\License Manager\licenses\flexsim

Also, the Flexnet Licensing Service will need to be updated on the server by running FlexSim ServerActUtil as an Administrator and then executing the menu option Tools > Licensing Service > Install anchor service.

This is explained in detailed step-by-step instructions in https://www.flexsim.com/ftp/LicenseServer/FlexSimLicenseServer_Upgrade.pdf

If you try to check out a license with the 17.0 software from a license server with an older version of the vendor daemon, the vendor daemon log shows the license features being checked out and then immediately checked in one at a time.

Also, if a license server that is using a dongle shows the error message “Can’t get hostid of type 15,” then they need to install the new dongle dlls on the license server. See LicenseServer.zip\License Manager\advanced\dongleFiles\FLEXID9_README.txt

@phil.bobo, should there be a backwards compatibility note regarding upgrading license servers? It might make it more visible to those affected by the change.

Good idea.

Great! The feature to snap to background is very interesting. I discovered that now the background stored many information extrapolated from autocad file. Where do I find some details on the organization of the variables "snapPoints" of FlexSimModelBackground? For example I believe that each entry of the node "Lines" contains a reference to two points stored in the node "Vertex Locations". Do you confirm it? Moreover is it possible to import only the information related to a specific layer? For example executing the command applicationcommand("storedwginfo",si,db,"FlexSim_Conveyor") where "FlexSim_Conveyor" is the name of a layer defined by the user directly in autocad.

@phil.bobo

I managed to run 17.0 with license finally. However I have the following message on the lmtools.

lmgrd is not running: Cannot connect to license server system. The license server manager (lmgrd) has not been started yet, the wrong port@host or license file is being used, or the port or hostname in the license file has been changed. Server name: User-PC License path: @User-PC; FlexNet Licensing error:-15,570 For further information, refer to the FlexNet Licensing documentation, available at "www.flexerasoftware.com".

By the way, I have updated to the latest lmtools and others files using the latest LANlicense.zip

Regards

David

@phil.bobo, perhaps with the upgraded FlexNet Publisher we need a new lmgrd and lmtools?

There is no detailed documentation on the contents of snapPoints. You are correct that each entry in the Lines bundle contains references to indexes in the Vertex Locations bundle.

The import will only import information related to the layers that are marked as visible. There is not a flexible API to get specific layers; what you see is what is available.

@david.chan, Could you please try these attached lmtools and lmgrd? Let me know if this fixes your problem. Thanks!

@Ben Wilson Thanks. I tried. There is error message, when I perform Status Enquiry. However FlexSim is unable to grasp the license.

Regards

David

Thanks @phil.bobo! These information are very useful to autobuild model or layout directly from autocad, any documentation will be very appreciated.

Unfortunately without the reference on layer everything is more complex. I am not familar with API to export info from dwg and I'm sorry for the stupid question, but: how do you obtain the list of all layers? Is it impossible to create another bundle which stores the link between points, circles, ... and the layer? My request to change the applicationcommand is only an idea, but I don't know the complexity. For the moment a bundle with the relation between layer and geometrical entity can be sufficient.

You should post these suggestions as ideas for future development of this feature.

Hi @david.chan, I was able to get it to work with the following procedure:

  1. downloaded the latest LicenseServer.zip
  2. extracted the .zip to a convenient location
  3. right click to run flexsimserveractutil.exe as an administrator
  4. uninstall the anchor service
  5. reboot the computer
  6. right click to run flexsimserveractutil.exe as an administrator
  7. install the anchor service
  8. use the new lmgrd and lmtools I linked to above to go through the rest of the steps

I get the same error you mention above ("lmgrd is not running...") when I Perform Status Inquiry from the Server Status tab. However, viewing the Log from the Config Services tab gives me all kinds of good info, shows the FlexSim features, the ports I'm using, etc, and shows features being checked in and out from my FlexSim software installation.

I don't know why the Perform Status Inquiry button doesn't work, but it is not to be trusted using our combination of lmgrd, lmtools, anchor service, etc. Instead trust the Vendor Daemon log (from the Config Services tab).

Let me know if you continue to have problems and we can work through it together.

@phil.bobo and @david.chan

Does the latest vendor daemon provided, work on my server config - WIndows Server 2003 Enterprise Edition Service Pack 2 32-bit?

I have already returned my earlier activation IDs and the new one (2017V) is not getting activated. How do I go back and make Flexsim work for the earlier version?

I have posted my problem in this post

https://answers.flexsim.com/questions/32056/license-installation-unable-to-activate-flexsim-17.html#...

Kindly help..

Look forward the new version! I suggest Version 2017 can update the Chinese Font Library which show in 3D view, In China, a lot of computer will show digital gibberish with Chinese in 2016, and some Chinese character can not show at all which bring some trouble to show it for local client.

Yeah! Long to support for utf-8!

@Ben Wilson , same as you that I am able to grasp the license but the error message from "Perform Status Enquiry". Looks like I just have to leave with it till there is some solution that that. Thanks. David

*cough* UTF-8 in FlexSim 2017 Update 1

@david.chan, can you reply and attach your Vendor Daemon log (from the Config Services tab)? If the only feature listed is "serverfeature", then the most likely problem is that the anchor service is not getting updated. Your lmgrd is not able to communicate with Trusted Storage to read out your other features. You can try updating your anchor service manually:

First delete the old anchor service(s). From an elevated command prompt, run the following commands.

  • sc delete "FlexNet Licensing Service"
  • sc delete "FlexNet Licensing Service 64"

Probably restart your computer now (not sure that's necessary, but why not :).

Let's try installing the anchor service from FlexSim itself. Download the two FlexSim 2017 .msi files (32 and 64 bit) from your Account's downloads area. Install them both. Right-click to run FlexSim as administrator. Do that with both 32 and 64 bit FlexSim. This should re-install the 2 licensing services. Check in Services view to confirm they are installed and running.

Check flexsimserveractutil.exe, Tools>View License Rights. Make sure that your license is still in place.

Then stop and restart your License service from lmtools.

Any luck?

@Ben Wilson

I am not clear about your instruction. Am I supposed to install both x64 and x86 of FlexSim in the same machine?

David

@Ben Wilson

I can't install both x64 and x86 on the same machine. So I re-install x64 on my machine. The message still appear. The following is the log file. It looks ok to me as there is no error message here.

error-log.txt