Upgrading to ExtendSim 2024
Upgrading to ExtendSim 2024
Just ask us! Request your upgrade to ExtendSim 2024 here.
If your Maintenance & Support Plan (MSP) is current, we will send you a new Activation Key and details on downloading the appropriate installer file for ExtendSim 2024 package.
If your MSP has expired, you will need to request a quote to bring your MSP up-to-date.
You cannot copy objects in models (graphics, text, hierarchical blocks, databases, etc.) directly from an older release of ExtendSim directly into a newer release. Instead you must open the model file in the new release. Then, ExtendSim will convert it to the current release file type.
ExtendSim 2024 is upwardly compatible and will read in models built in legacy ExtendSim versions 10, 9, 8, and 7.
If you want to open a model that requires a custom library created in a legacy version, before opening the model, open the custom library. From within ExtendSim, go to Library > Library Tools > Compile Libraries... Select your custom library and click Compile Selected Libraries. This will recompile the library creating an ExtendSim 2024 library with a .lbr extension. Then, open the model.
Note: ExtendSim is not backwardly compatible. Models and blocks you build in ExtendSim 2024 cannot be read by earlier versions, such as ExtendSim 10 or ExtendSim 9.
Before using ExtendSim 2024 to open a custom library or open any model that uses custom blocks created in prior releases prior, note the following:
If your custom blocks have external source code
- First remove the external code using the release used to build the custom library.
- Then COPY your custom libraries (with the external source code removed) into the ExtendSim\Libraries folder.
If your blocks use includes you’ve developed from scratch
- Copy your custom includes into the ExtendSim\Extensions\Includes folder.
If your blocks use the includes that shipped with ExtendSim 10 or earlier
- For includes that shipped with an earlier release, you don’t have to change block code or include suffixes (e.g. change “Distributions v10.h” to “Distributions v2024.h”) until you want to.
- For includes shipped with ExtendSim releases prior to 9.3, rename copies of those includes, put those renamed includes into the ExtendSim\Extensions\Includes\Legacy folder, and change your block code to use those includes.
NOTE: Before opening any models, use the ExtendSim Library menu to open custom libraries and test that you've properly made the above changes!
Other Things to be Aware of When Converting Custom Blocks
- The first time you open custom libraries in ExtendSim 2024 or open models that use custom blocks, the libraries will automatically convert to 2024, recompile, and get saved as copies with the extension “.lbr”. That process also protects your prior-release libraries from being overwritten.
- The right-click-connect feature for adding and connecting blocks is database-based and can be adapted for your custom blocks. You can increase the number of common blocks, add your custom blocks, and so forth. If you have any questions, initiate a Support ticket.
- If any of your blocks are based on an ExtendSim equation-based block and was created prior to ExtendSim 10:
- Line break and line feed changes in 10 required that you alter your code. For assistance, see the “12/21/2016” comment in the Equation.h include file.
- Since ExtendSim is a 64-bit application, the external applications that your custom blocks exchange data with, as well as the drivers used to exchange that data, must be 64-bit compatible. This primarily applies to external applications using ODBC and ADO.
- Regarding DLLs or Shared Libraries:
- DLLs or Shared Libraries called by ExtendSim must be built for 64-bit execution. Either recompile your current 32-bit DLL as a 64-bit DLL or obtain a 64-bit version of the DLL from the vendor.
- If your code calls a DLL or Shared Library that returns a pointer, you need to change the code to save the returned value to a pointertype. See the Technical Reference for more information.
- The procedure address returned by DLLmakeProcInstance and similar functions is NOT a 64-bit pointertype variable. Instead, it is a 32-bit (4-byte) integer index that points to a pointer internal to ExtendSim. This means the 32-bit block code used in previous releases is compatible with the 64-bit code of ExtendSim.
- DLLLongCFunction, DLLLongPascalFunction, and DLLLongStdCallFunction all call a DLL that returns a 64-bit integer that can be saved as either a ModL integer (32-bit) or, if needed, a pointertype (64-bit integer/pointer).
- Each animation object has a Properties dialog that allows you to see the object’s zOrder, exactly positioning it within the layers of animation objects.
- Use the Icon Positioner if model connection lines are misaligned:
- When models that were built prior to ExtendSim 10 are converted to ExtendSim 2024, the position of the model’s blocks could be slightly different, causing connection lines to be unaligned. In those cases, the Icon Positioner can be used to adjust the relative location of the icon within the Icon tab so that the connection lines to the block are correctly aligned. This adjustment has already been made in the current ExtendSim libraries, but you may want to use the Positioner for any custom blocks that have been converted from earlier versions.
- The Show icon positioner checkbox, located in the Icon tab of the block’s structure, hides and shows the Icon Positioner. By default, the Icon Positioner is located at the upper leftmost position of the icon’s graphic items. The Reset Icon Positioner button resets the location of the Icon Positioner to the default.
- To use the Icon Positioner, first determine approximately how many pixels and in what direction the icon needs to move so that the connection lines are aligned. Then in the Icon tab select the Icon Positioner and move it with the cursor or the keyboard arrow keys.
- There is also a ModL function, blockAdjustPosition, that uses the location of the Item Positioner to shift the location of the block by the offset of the positioner location.
- DateToString, TimeToString, and CalcDate are no longer supported. See instead the EDDateToString and EDCalcDate functions in the Technical Reference.
- There are EColor functions that store the color information as a single integer, rather than using RGV or HSV. (Legacy functions that use and support the old color information are still working in ExtendSim.)
- As of release 10, ExtendSim no longer supports Dynamic Data Exchange (DDE). It is an outmoded approach that's incompatible with many IT setups, is no longer recommended for use, and is not really being supported by Microsoft. Use instead any of the other IPC capabilities ExtendSim supports, such as OLE.