----------------------------------------------------------------------------------------------------------------------
SPLINE CLEANER V2.03 - 3dsMax script
----------------------------------------------------------------------------------------------------------------------

Script Name:	Spline Cleaner

Version:	2.03

Compatible:	3dsMax 2012 and up

Release date:	December 5, 2016

Last update:	October 6, 2026

Code by:	Hernan A. Rodenstein

Released by:	Spline Dynamics

Website:	www.splinedynamics.com


Revision History:

- v 1.01	- Fixed a particular installation/activation bug.
		- In 'Normalize' tool: the maximum value for Distance spinner was increased to 10000.
- v 1.02	- Security update.
- v 1.03	- Changed machine ID recognition method for licensing.
- v 1.04	- Added automatic product update checking every 15 days.
		- Solved problem getting machine UUID from DOS command prompt.
- v 1.50	- Added Smart Normalize feature.
		- New filter for 'Action by Filter': open/closed
- v 1.60	- Added support for materials and material IDs in all operations.
		- Splines Info Dialog:
		- 1. New realtime data: No.of materials; No.of Single/sub materials.
		- 2. Button 'Show vertex ticks' was replaced with 3 buttons for exposing data on the active viewport:
		- A. Vertex ticks  B. Vertex Numbers  C. Material IDs
		- 'Show vertex ticks' property was moved to the bottom of 'Basic Parameters' rollout.
- v 1.65	- Added Change spline direction feature: CW/CCW
- v 1.67	- Change spline direction: Fixed CCW button action.
		- Smart Normalize tool: now selects the proper shapes after performing the action.
		- Solved minor issue with Weld Vertices tool.
- v 1.68	- Replaced dotNet dateTime functions for maxscript custom functions.
		- Solved issue with 'Fix Extrusion Axis' tool.
- v 1.70	- Change spline direction CW/CCW tools now work properly on straight lines.
		- Fixed an issue with the 'Explode to splines' function.
- v 1.71	- Fixed small bug in Optimize tool. The first vertex in a closed spline was not being affected by this function.
- v 1.73	- Fixed error appearing when closing the script in 3dsMax 2019 update 1.1
- v 1.75	- Updated to new licensing system
- v 1.77	- Updated for new security protocol on license activation.
- v 1.79	- Changed internal method for getting machine ID to validate license.
		- Solved an issue in license validation for certain .NET versions.
- v 1.85	- Added new action by filter: select/delete overlapping splines/segments.
- v 1.86	- Fixed an issue that occurred when deleting overlapping splines.
- v 1.87	- Implemented dual temporary/lifetime license
- v 1.89	- Improved tools to correct the direction of extrusion in splines.
- v 1.90	- Added support for OCIO color management.
- v 1.91	- Updated trial version.
- v 1.92	- Added Quick Start Help screen.
		- Updated trial version.
- v 1.93	- Fixed and improved operations for overlapping splines.
		- Improved performance for several tools.
- v 1.94	- Fixed license validation issue caused by a Windows 10 update.
- v 2.00	- Fully redesigned UI with friendly icon tabs. No more scrolling needed.
		- New 'Expose Loose Ends' (displays red markers at the ends of open splines)
		- New 'Expose Overlapping Vertices'.
		- Adjustable marker size at Expose settings.
		- Error Detection Settings and Expose Settings are now remembered between sessions.
		- Improved Overlapping Vertices Detection function.
		- Tons of small improvements on UI texts, titles and feedback messages for the user.
- v 2.01	- Connect Vertices now always joins the closest loose ends, and neither Connect Vertices nor Close Splines will close a straight spline onto itself.
- v 2.02	- Expose Settings and Error Detection Settings merged into a single Settings dialog, available from both Settings icons.
- v 2.03	- Action by Filter > Delete overlapping splines no longer deletes both copies of a duplicated segment, keeps closed splines closed, no longer reports shared corners as overlaps, and in 'objects only' mode leaves duplicates inside a single shape untouched.
		- Fixed curve sampling in the encrypted build, which affected overlap detection, similar-shape detection and bounding-box calculations on curved splines.

----------------------------------------------------------------------------------------------------------------------

DESCRIPTION

Spline Cleaner for 3dsmax is a powerful toolset for cleaning and repairing multiple splines in no time.


VERSION REQUIREMENTS:

3dsmax 2012 and higher.


LICENSE:

This license is valid for either 1 year or lifetime, depending on the option you purchased. Please check your order details for more information.

The license is strictly personal, belongs exclusively to the purchaser, and is linked to the email address used at the time of purchase.

This is a node-locked license. It includes two license keys, allowing installation on multiple workstations.

- Regular License: up to 2 workstations

- Corporate License: up to 10 workstations

You can find the first license key in the purchase confirmation email.
The remaining license keys can be generated from your user account at www.splinedynamics.com


The license includes free customer support.

Free updates for the same major version of the product will be available at:
https://www.splinedynamics.com/product-updates/

SplineDynamics will announce updates and other news on the main website and also on its Facebook page:
https://www.facebook.com/splinedynamics/

If you have any questions or need assistance, please contact us at:
contact@splinedynamics.com


----------------------------------------------------------------------------------------------------------------------

INSTALLATION:

1. Drag the .mzp file onto any 3ds Max viewport.
(All required files will be automatically extracted and installed.)

2. A dialog window will appear, asking whether you want to continue using the trial version or activate your license.
To activate, enter your license key in the provided text field (sent to you by email after purchase).
If the license key is valid, the script will start automatically.

3. To add the script icon to a toolbar, go to: Customize -> Customize User Interface...

4. Open the Toolbars tab and select the category "Spline Dynamics".

5. Drag 'SplineCleaner2' onto a toolbar. Done!

If you wish to inspect the contents of the .mzp file manually, you can unzip it just like a standard ZIP file.

----------------------------------------------------------------------------------------------------------------------

INFO:

Website: https://www.splinedynamics.com

Product Page: https://www.splinedynamics.com/product/spline-cleaner/

Script Manual: https://www.splinedynamics.com/spline-cleaner-manual/

Tutorials: https://www.splinedynamics.com/category/tutorials/spline-cleaner/

Support: contact@splinedynamics.com

----------------------------------------------------------------------------------------------------------------------

The following files are copied to your system:

Spline Dynamics-SplineCleaner2.mcr            >> $userMacros
SplineCleaner2.mse                            >> $userScripts\SplineDynamics\SplineCleaner2\
spline_cleaner2.ini                           >> $plugcfg
Icons\SplineCleaner2_16i.bmp                  >> $userIcons
Icons\SplineCleaner2_24i.bmp                  >> $userIcons
images\SplineCleaner_banner.jpg               >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\icon_help.png                          >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\icon_less.png                          >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\icon_plus.png                          >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\icon_refresh.png                       >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\icon_settings.png                      >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\icon_thumbup.png                       >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\icon_warning.png                       >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\quickStartHelp.jpg                     >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\sc2_icons.png                          >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\sc_help_actionbyfilter.jpg             >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\sc_help_connect.jpg                    >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\sc_help_errors.jpg                     >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\sc_help_explode.jpg                    >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\sc_help_filter_container.jpg           >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\sc_help_filter_double_splines.jpg      >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\sc_help_filter_layer.jpg               >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\sc_help_filter_length.jpg              >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\sc_help_filter_open_splines.jpg        >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\sc_help_filter_overlapping_splines.jpg >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\sc_help_filter_proximity.jpg           >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\sc_help_filter_similar.jpg             >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\sc_help_filter_size.jpg                >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\sc_help_filter_vertices.jpg            >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\sc_help_filter_wirecolor.jpg           >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\sc_help_normalize.jpg                  >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\sc_help_optimize.jpg                   >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\sc_help_reduce_vertices.jpg            >> $userScripts\SplineDynamics\SplineCleaner2\images\
images\sc_help_weld.jpg                       >> $userScripts\SplineDynamics\SplineCleaner2\images\
