What's New in MAXScript in 3ds Max 2018

This topic will give you a quick overview of the MAXScript language changes and improvements in 3ds Max 2018. For details on each feature, please follow the links to the respective documentation pages.

NOTE:

New additions to MAXScript in 3ds Max 2018 are marked with NEW in 3ds Max 2018:... throughout the MAXScript Reference. The word NEW links back to this page.

Highlights

     

Materials, Shaders and Maps:

  • You can now determine if a material (or any other MAXWrapper) is used in a scene using isUsedInScene(), and whether a material or texture is used in a material using isMtlUsedInSceneMtl().
  • The Scene Material Library (sceneMaterials collection) can be forced to update using UpdateSceneMaterialLib(). In some cases this collection can get out of date and contain materials not currently used in the scene, such as when a node gets deleted.
  • The DirectX_9_Shader now exposes the .parentMaterial property.
  • The vector_map now exposes the .finiteResolution and .resType properties.

Scripted Plug-ins:

  • Scripted Plug-ins now support new parameter types of #paramBlock2 and #point2.
  • Scripted Plug-ins now support new parameter event handlers preSet and postSet that are guaranteed to use the original and new parameter value respectively.
  • Scripted MAXtoA plug-ins can now be created for Arnold nodes.

TrackView:

  • There are new filter flags for TrackView: #activeLayer and #unlockedTracks. There is a new method to test flags, testFilter().
  • The Mixin Interface trackviews.current.ui now exposes the getToolbarObjectName method to retrieve the non-localized toolbar name. By contrast, the getToolbarName method returns a localized string.

     

Geometry Objects Type-in Properties:

Chamfer Quad Intersection Mode: The following boolean properties have been added to control the quad intersection mode. Enabling this mode attempts to preserve the quad structure of the faces participating in the chamfered edges.

BooleanClass Comparison:

  • BooleanClass values can now be compared to Integer values, with 0 equivalent to false and all other values equivalent to true.

What's New in 3ds Max 2018 Update 2

This section covers enhancements and changes in 3ds Max 2018 Update 2.

Spline Enhancements Several new objects and modifiers in the Spline Tools feature are exposed in MAXScript:
Dump file creation The systemTools struct now exposes some functions to control how dump files are created and what they contain. These are GenerateMiniDumpAndContinue(), SetMiniDumpContents() and SetBigMiniDumpContents().
Previously Undocumented Items Several previously undocumented items are now documented:

What's New in 3ds Max 2018 Update 3

This section covers enhancements and changes in 3ds Max 2018 Update 3.

Fluid Simulation New objects that support fluid simulation are exposed in MAXScript:

What's New in 3ds Max 2018 Update 4

This section covers enhancements and changes in 3ds Max 2018 Update 4.

Missing Path Monitor Cache

The new missing path monitor cache is exposed in MAXScript with the new missingPathCache interface.

.NET Support

Improved support for conversion between C# and MAXScript values.

  • Conversion for C# built-in type names
  • Conversion for Point2, Point3, Point4, Quat, EulerAngles and Matrix3 to .NET arrays.

See MAXScript / DotNet Value Conversions.

MeshOp Methods

New methods in the MeshOp struct take list parameters: meshOp.getFace(), meshOp.getFaces() and meshOp.getVerts().

PolyOp Methods

New versions of existing methods in Editable_Poly that take lists instead of a single index, and return arrays:

  • polyop.getEdgesVerts()
  • polyop.getEdgesFaces()
  • polyop.getFacesVerts()
  • polyop.getFacesEdges()
  • polyop.getVerts()
PRT Export

Enhanced PRT file export for fluids is exposed in a new interface, PRTExport.

Symbolic Path Names

A new symbolic path name #pageFile is added to match the system directory global $pageFile.

Several path names and system directory names introduced in 3ds Max 2017 that were previously undocumented are now documented.

3ds Max Batch

Some additions have been made to support the improved version of 3ds Max Batch introduced in this update:

  • New quiet:<bool> and exitcode:<int> arguments to the quitMax() function.
  • New mxsCmdLineArgs member of mxsOps contains a dictionary of values passed from 3dsmaxbatch.exe via the -mxsString and -mxsValue parameters.
Callbacks

The callbacks.show() method has a new to:<stream> argument to specify a stream value that the method can send output to.

Scene Converter

The SceneConverter interface has a new property and two new methods for dealing with missing legacy assets on file load or merge:

  • sceneconverter.AutoRemoveMissingLegacyAssets
  • sceneconverter.GetMissingLegacyAssetsName()
  • sceneconverter.RemoveMissingLegacyAssetsFromScene()

Enhancements and Changes

mental ray and iray

By default, mental ray and iray are no longer installed with 3ds Max. All corresponding classes and interfaces have been removed, though the names have been reserved and appear as "undefined" if inspected with apropos() or showclass().

   
Ray and Matrix3 Values

Ray Values and Maxtrix3 Values now support comparisons using the == and != operators.

   
Try Expression

Try expressions, You can now use getErrorSourceFileName(), getErrorSourceFileLine(), and getErrorSourceFileOffset() to obtain more information about the location of an error in a catch block. This can be useful if running external scripts via fileIn().

   
XRefScene Values

XRefScene has new parameters, root and owner, both of which return the owning root node for the XRefScene.

 

A root node can now be coerced to an XRefScene value using <RootNode> as XRefScene.

   
Alembic

AlembicFloat controller exposes the visibility track for imported Alembic objects.

 

The Alembic_Export and Alembic_Import plugins now expose a .ShapeName boolean property to control whether or not the "Shape" string suffix is trimmed from imported and exported objects.

   
Unwrap_UVW Modifer - Edit UVWs Floater

The addFloater(), ShowFloater() and DeleteFloater() methods for Unwrap_UVW are removed.

   
Grid Helper

The Grid Helper now exposes the .activeColor and .displayPlane properties

   
cui.RegisterDialogBar

The maxSize parameter for cui.RegisterDialogBox is deprecated and no longer has any effect on the dialog box size.

   
maxops Core Interface

The maxops Core Interface now exposes the settings for Motion Paths (previously known as Trajectories in the user interface).

 

The maxops Core Interface now also exposes the isRibbonSupportEnabled property to check if the ribbon has been deactivated.

   
Exchange Store Package Manager Core Interface

The ExchangeStorePackageManager Core Interface now exposes the following method to process custom install directories based on a filepath: ProcessCustomInstallDirectory.

   
HelpSystem Core Interface

HelpSystem Core Interface can now be used to open the Python and MaxScript help, and to open an arbitrary .CHM file on disk.

   
AssetUser Mixin Interface

The AssetUser Mixin Interface now exposes the Reset method to relinquish its reference to the underlying asset.

   
PFlow and CFD Simulation

The AirFlow_Node and AirFlow_Spline operators import CFD data for simulating air flows using Particle Flow.

   

What's New Previous

Review new features in previous releases.

Icon made by Freepik from www.flaticon.com.