Sergo's script pack

73 votes
Date Updated: 
Author Name: 


- three scripts for easy, one-click rotating objects on 90, -90 and 180 degree around active axis and in current coordinate system. Scripts also rotate UVW Mapping gizmo and Slice sub-object.
- to rotate a copy of the object - press shift+script button on the toolbar

3PointScale - script for scaling separate objects by specifing 3 points. Like AutoCAD's 'scale by reference' command. Uniform scaling supported.

!take care of proper snap mode - for example, when scaling in top viewport for correct result 2.5d snap must be chosen
!take care of proper reference coordinate system mode - script only supports world, scene node and local system

3PointRotation - script for rotating objects and groups by specifing 3 points.
Like AutoCAD's 'rotate by reference' command
Angle spinner added- now you can set the custom angle while rotating about chosen point

!take care of proper snap mode - for example, when rotating in top viewport for correct result 2.5d snap must be chosen

TapeCoordSys - this tool helps you to create tape object and then select it for coordinate system object in one step. It turns on 3d snap mode automaticly and returns to old snap mode after exit.

 BuildingMaker - Script for creating simple building models from splines

StripesTexture - Script for creating random or regular stripe texture

TransformationJitter - Apply random transformations to selected objects

WhiteVPBackground - Toggle change viewport background color to white or to the default (125,125,125) to change default VP color to your settings, edit the script.
Very handy for printing viewport screenshots.

Additional Info: 

Version 1.4.9 Update

  • 3PointRotation and 3PointScale fixed to show snapping markers on 3ds max 2019

Version 1.4.8 Update

  • The only update is the new installer - script pack comes in the form of MZP archive which you need to drag-n-drop onto the max window or run via Scripts->Run script command. Should work on all versions of max. I've checked on 2016 and 2017.

Version 1.4.7 Update

  • 3PointRotation and 3PointScale scripts have been updated to use maxscript mouse tools instead of pickpoint function. This update fixes the "drag" bug discribed here.
  • prerender script has been deleted.

Version 1.4.6 Update
-Rotation of UVW gizmo and Slice plane added to rotateXXX commands

Version Update
-fixed some bugs

Version 1.4.5 Update
-Rotation on active axis added to rotateXXX commands

Version 1.4.4 Update
-fixed some bugs in TransformationJitter script. Now scaling units are strictly relative to the object's scale
-to the TransformationJitter script "affect only parent objects" mode added
-to the TransformationJitter script absolute scale mode added. Now it's possible to specify absolute scale unites

Version 1.4.3 Update
-fixed some small bugs in 3PointScale and 3PointRotation. No more exceptions with "Unable to convert from x to y" when user cancels operation

Version 1.4.2 Update:
-to 3PointScale script added non-uniform scale option to 3PointScale script
-to 3PointScale script added ability to work in different coordinate systems (world, scene node, local)

Version 1.4 Update:
-TapeCoordSys script added
-angle spinner added to 3PointRotation scripts
-copying added to RotateXXX scripts

Version 1.3 Update:
-added function to exclude children from selection set. it's fixed problem with linked object rotation - now all rotate command rotates only parent objects in selection set.
-added scaling of objects sets to 3pointScale script.
-fixed some small bugs

Drag-n-drop mzp file on the max window or run mzp file via Scripts->Run Script command, then go to the 'Customize User Interface' -> 'Toolbars' - browse to category 'Sergo Pogosyan' and add buttons to the toolbar or to the menu.

Version Requirement: 
8-9, 2008-2019
sergoscripts_1_4_9_dragdrop.mzp14.64 KB


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
shopkeeper's picture

Hey thanks again. Is there a

Hey thanks again.

Is there a way to make the 'move with keyboard' script work with the 'TapeCoordSys' script?

When I create a tape and select it as the reference cordinate system using the TapeCoordSys, any object moved using the keyboard shortcuts for the 'move with keyboard' script don't move along the axis of the newly created tape helper. Hope that makes sense.

sergo's picture

Normally you should unzip

Normally you should unzip archive to 3ds max root folder and restart max.

If you unzipped archive in some other folder then put SergoScripts folder to the 3dsmaxroot/Scripts folder and Icons and Macroscripts folder to the 3dsmaxroot/UI folder.

shopkeeper's picture

How do I install these

How do I install these scripts please?

Could you give me a step by step guide as to which files/folders go where when the download file is unzipped, as I keep getting maxs script errors no matter what I try. Using maxs design 2010.


japanji's picture

Goodnight Like in Autocad:


Like in Autocad:
The first point was the axis rotation, second was origin point and the third destination point.
I realized some tests and you are right. Errors happen when the snap3D is activated; with snap2.5D the script work perfectly.
In these test my solution not work correctly. Nevermind my previous comment.


sergo's picture

Thank you japanji! I think

Thank you japanji!

I think the error in rotation script happens not because of the wrong formula but because of 3d snapping - script grabs the points that don't lay on the construction plane. This is what happens in my case occasionally. Could you provide the steps to reproduce the error?

BTW, thank you for the formula, you've made me think how little I remember of the school math course.

japanji's picture

In max 2010

Great pack!! I look for for this a long time.
I use max 2010 and the 3 point rotate not work correctly. I change the mode calculate of "theAngle" for solve this problem.

/* original mode
-- vectors
v1 = originalPoint - basePoint
v2 = referencePoint - basePoint
--angle from 'dot'-function
theAngle = acos(dot (normalize v1) (normalize v2))

coefAB = (originalPoint[2] - basePoint[2])/(originalPoint[1] - basePoint[1])
coefAC = (referencePoint[2] - basePoint[2])/(referencePoint[1] - basePoint[1])
theAngle = atan coefAB - atan coefAC

thanks for the scripts.

sergo's picture

I tested this pack under 3ds

I tested this pack under 3ds max 2010 and it works ok, except  WhiteVPBackground script. I should use SetUIColor function instead of setVPortBGColor.

my scripts and tips/tricks:

titane357's picture

yes, please !!! :-))

yes, please !!! :-))

sergo's picture

Didn't test under 2010 yet,

Didn't test under 2010 yet, sorry. Will try very soon, next week probably.


my scripts and tips/tricks:

fajar's picture

hey sergo thank you very

hey sergo thank you very much! it s save me time very much!!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.