Material Randomizer Script Download

Written March 12th, 2011
Categories: Downloads, Scripts
8 comments

This script will allow you to assign material IDs randomly to a selection of editable_poly objects in 3dsMax.  They must be editable_poly objects and it will replace the material of the objects.  Don’t worry- you can hit “undo” and it’ll reverse the assignment if you don’t like the outcome.  It’s a fast and easy way to assign random colors to your selection

  • By Object
  • By Sub-Object (element)
  • By Smoothing Group
  • By Polygon

To use the tool, just run the script from any location and it’ll pop up with the dialog window with your options.  Make sure you’ve selected the objects you want to assign random materials to!

Enjoy!

Click this link to download the Material-Randomizer-v0.84. To install, just download the zip file and decompress it into your plugins/std folder. You can also run it directly by running it from the Maxscript menu.

Wire Bundle Script

Written November 5th, 2010
Categories: Downloads, Scripts
18 comments

This is a simple script that you can use to create bundles of wires with ease in 3d Studio Max. Just drop the .MS file into your <3dsMax>/stdplugs/stdscripts folder. Then it’ll show up in your “Customize>Customize User Interface…” window, under the “Bluesummers” Category. Bind it up to a hotkey and you’re good to go!

Click this link to download the WireBundle_0.90.zip. To install, just download the zip file and decompress it into your <3dsMax>/stdplugs/stdscripts folder. You can also run it directly by running it from the Maxscript menu.

Creating Custom 3d Studio Max Rollouts

Written October 8th, 2010
Categories: Articles, Scripting / Programming
3 comments

In this quick tutorial, we’ll look at how you can create custom 3d Studio Max rollouts for your tools.  You can make custom floating or docked windows or toolbars that hold your tools and that make it easy to customize your workspace.  These tools are usually called “actions” and can be almost anything you imagine!  They can be

  • 3dsMax modifiers like bevel, extrude, etc,
  • actions like “Convert to Editable Poly…”, or
  • tools like align, hide, etc.

It can save you time and that’s part of what getting better at 3d is all about.

Step 1- Right click on an empty interface area

Right click on an empty interface area to get the interface customization menu.  Select “Customize…”  Otherwise, you can go to Customize > Customize User Interface… and select the “Toolbars” tab.

3dsmax-custom-rollouts-step-1

Step 1- Right click on an empty interface area, and select "Customize…"

Step 2- Create a new rollout

What you need to do is create a new rollout by clicking the “New…” button.

3dsmax-custom-rollouts-step-2

Step 2- Create a new rollout by clicking the "New…" button.

Go ahead and give your new rollout a name.  I’m calling mine “Common Tools”.

3dsmax-custom-rollouts-step-3

Assign your custom toolbar a name.

Step 3- Assign some actions to the new toolbar

Click and drag some actions into the new toolbar.  The vast majority of what you can do in 3d Studio Max can be assigned to buttons in toolbars.  Interestingly, all of these actions are also scriptable via MaxScript.

3dsmax-custom-rollouts-step-4

Select the actions that you want to appear in the new toolbar by click+dragging them over.

You now have a new custom toolbar.  You can access it using the right-click menu we used to start this process.  Right-click on an empty area of the UI and select your new “Custom Tools” toolbar.

3dsmax-custom-rollouts-step-6

You now have a custom toolbar!

BONUS: Assign custom actions to your toolbar using MaxScript

You can assign custom actions to your toolbar with the MaxScript Macro Recorder Window.  Press F11 or open the listener through MaxScript > MaxScript Listener…

3dsmax-custom-rollouts-step-7

Enable the MaxScript Macro Recorder from the Listener window.

Enable the MacroRecorder as shown.  This will record everything you do in 3d Studio Max in the pink window, and allow you to record a pre-defined set of actions.  This could be everything from making flower petals to building a skyscraper.

3dsmax-custom-rollouts-step-8

When you have your action recorded, drag the script to your toolbar.

When you have your action recorded, select all of the text in the pink window and drag it over to your toolbar.  If you have extra actions recorded, you may have to remove those.  Remember that everything you click or do is being recorded, so make sure you did what you want to record and nothing else.

You can right-click on the button that was created and select “Edit Button Appearance…” to change the image or text of your new button.

3dsmax-custom-rollouts-step-9

I gave mine a label and tool-tip so that I don't forget what it does.

MaxScript Rollouts

Written January 18th, 2010
Categories: Scripting / Programming, Videos
4 comments

Hey Everyone!

This week I’ve got a great episode that goes into how you can create floating dialog windows for your MaxScripts.  I’ll even go into how you can create a “Random Selection” utility in MaxScript.  Hope you enjoy it!

MaxScript Basics

Written January 12th, 2010
Categories: Scripting / Programming, Videos
3 comments

Guess who’s back from vacation?

Sorry for the delay on this video: I didn’t expect to be so demolished from 25 hours of flying yesterday.  Anyway, this week is slated with some great videos and great news!

I’ll be showing you how to do some basic automation in 3dsMax’s MaxScript scripting language.  It’s a lot easier than you think and can give you a real edge!  We’ll be looking at how you can manipulate some cubes using simple MaxScript operations, and I’ll show you how to use the Macro Recorder to automate almost any process in 3dsMax.  If you’re looking to get a little more practice with scripting, after the video you can follow my Scripted Clay Rendering tutorial.

I’m also going to get transcriptions for about 10 of my Monday Movies going back a few weeks, so keep an eye out for that.  Special thanks goes out to Devanie at VideoTranscriptions.net for doing a perfect job at…well…video transcriptions.

WeldTexVert 3dsMax Script

Written March 16th, 2009
Categories: Downloads, Scripts
2 comments

For the war effort, I’ve gone through my old script library and picked out some of the choicest bits I wrote back when I was still trying to be a tools programmer.  WeldTexVert is a modal window that’s automatically added to your UnwrapUVW menu bar that lets you interactively weld texture vertices in the same way you would with editable polygons.

The good news is that you can bind it to a hotkey so you never have to worry about the original weld vertex tool ever again.  The bad news is, you need to select the UVW vertices you want to weld before opening the window.  Sorry about that!

Either way, I hope you enjoy the tool.

Click this link to download the Weld Vertex Tool Script. Just unzip it to your desktop or somewhere on your hard drive and run it via the Maxscript command menu in 3dsMax.

Developing Scripted Utility

“Hello everyone, this tutorial will guide you to develop a scripted utility in 3DS MAX 9. This tutorial is for users with basic knowledge in max script or any other object oriented language. Here I explained everything step by step. Actually this coding is a part in my plug-in. Due to coding complexity, I cut shorted some and add only the few things. If time permits I will explain rest.”

Spread objects over a Surface

Written June 18th, 2008
Categories: Articles, Maya, Modeling, Offsite, Scripting / Programming
No Comments »

This tutorial will teach you how to place a large number of objects easily and quickly using a variety of automated methods.

MEL Shape Editor

Written June 18th, 2008
Categories: Articles, Maya, Offsite, Scripting / Programming
No Comments »

In this tutorial you will learn how to create a shape editor in MEL scripting language.

Maya ZDepth and Grayscale Representation

“This tutorial shows 3 different methods to create height and depth grayscale representations of a maya scene, which may be useful in many cases such as adding depth of field or fog in post production.”

Solar system in Maya

Written June 18th, 2008
Categories: Articles, Maya, Offsite, Scripting / Programming
No Comments »

This tutorial will explore using Maya’s particle system and instancer to simulate planets with several moons orbiting the Sun. With a few expressions you can control the positions and rotations of individual particles which can control geometry through Maya’s instancer.

Tick-Based UI Updating in MaxScript

Written May 9th, 2008
Categories: Articles, Scripting / Programming
No Comments »

This is going to make all you computer science buffs cringe, but today I learned a really dirty way of managing 3dsMax UI states in a Maxscript rollout or DotNet form. By hooking up a UI refresher to a timer object, you can have your front-end refresh dozens or hundreds of times per second- probably without a performance hit!

Consider the following script:

global hForm, mCheckbox, thisTimer
(
fn whenCheckboxIsPressed a b =
(
if MCRUtils.IsCreating Box
then (Max Select; try((hForm.controls.item(0)).checked = false) catch())
else Macros.run 26615
)

fn updateUI =
(
try
(
hForm.controls.item(0)).checked = MCRUtils.IsCreating Box
) catch()
)

--Create a DotNet Checkbox
mCheckbox = dotNetObject "System.Windows.Forms.Checkbox"
mCheckbox.appearance = (dotnetClass "System.Windows.Forms.Appearance").Button
mCheckbox.text = "Box Button"
mCheckbox.location = dotNetObject "System.Drawing.Point" 0 0

--Create a DotNet Form
global hForm = dotNetObject "System.Windows.Forms.Form"
hForm.topmost = true
hForm.controls.add mCheckbox --add the Button to the Form

thisTimer = dotNetObject "System.Windows.Forms.Timer"
thisTimer.interval = 10

--Add an Event Handler for the click event:
dotNet.addEventHandler mCheckbox "click" whenCheckboxIsPressed
dotNet.addEventHandler thisTimer "tick" updateUI

hForm.show() --show the Form with the Checkbox
thisTimer.start()
)

First, we declare our important Maxscript variables globally so that they can be accessed anywhere. This is a scoping issue; use this technique to taste.

Then we declare the function for when the checkbox is pressed, and accept the sender and event args in a and b respectively. In this function, we dive into the hForm.controls collection and retrieve the control to set it’s “checked” parameter. We set a Try()Catch() block around it because the timer will continue for a short while after the window is closed. Without this expression, you’ll get an error 100 times per second and you’ll have to restart 3dsMax.

The second function is the UI update. In this case, we just set the “checked” parameter equal to a Boolean expression checking to see if the user is engaged in some activity. In this case, we want to know if the user is creating a box. For more of these cases, read the Macroscripts included in 3dsMax and you can derive all sorts of neat “Is the user doing this” type expressions.

The rest is fairly self explanatory. We just create the checkbox, and assign it the visual characteristics we need. We create the DotNet form and assign the checkbox to it, and then create the timer and give it an interval rate of 10 (that is, 1000/10 or 100x per second).

We then link up the two event handlers to functions we declared earlier (button click and update ui), and create the form.

Ta da! The button walks, talks, and acts like a macroscript button, but it’s actually being controlled by DotNet functionality. This means

  1. More robust visual design for UI items,
  2. More robust code options and possibly faster performance, and
  3. When you use my library some day, you’ll be able to get native macroscripts to work alongside your own snazzy code!

3dsMax Tab UI

Written March 7th, 2008
Categories: Articles, Scripting / Programming
No Comments »

In an effort to avoid doing homework, I’ve decided to write out a quick explanation of how you can modify 3dsMax to use UI tabs. It seems the usual solution online is to upload your UI scheme without discussion, which usually leads to people saying “Eh, I guess this’ll do.” However, this is a dangerous way of doing things because some UIs may be poorly constructed and over-write access to new features (i.e. using a Max 7 UI set up in Max 9 will deny you access to stuff like paint selection).

Let’s go through and talk about what makes tabs, and how you can make them into whatever you want!

For starters, open your defaultUI.cui or MaxStartUI.cui file in notepad or your favorite text editor. You’ll see a long list of names and values like “WindowCount=8″. Now you don’t have to know what all of these mean; just the important ones like rank, item#, and the stuff in brackets.

To begin, your’s should look something like this:

[CUIData]
WindowCount=9
[CUIWindows]
F000=S:Command Panel
...
[Command Panel]
Rank=0
SubRank=0
Hidden=0
...
[Main Toolbar]
Rank=0
SubRank=0
Hidden=0
...
...

What this file is doing is defining all the buttons, pull-downs, and toggles in your interface setup. What you want to do is define a new bar that will contain your tabs. To do this you would insert the tabs code between the end of [command panel] and the start of [Main Toolbar]. Make sure to change the values in Rank=# so that they are a) in order, and b) give a lower number to the tab panel than to the main toolbar. If the main toolbar is a higher rank, it will appear above the tabs, and vice versa.

Here’s where you would insert it:

[Command Panel]
Rank=0
SubRank=0
Hidden=0
FRect=673 182 865 1089
DRect=1204 39 1388 770
DRectPref=2147483647 2147483647 -2147483648 -2147483648
DPanel=8
Tabbed=0
TabCt=0
CurTab=-1
CurPos=8 1204 39 1388 770
CType=4
[TAB_BAR_STUFF]
Rank=1
SubRank=0
Hidden=0
...
...
[Main Toolbar]
Rank=2
SubRank=0
Hidden=0
FRect=1109 212 1181 271
DRect=0 0 1315 39
DRectPref=2147483647 2147483647 -2147483648 -2147483648
DPanel=1
Tabbed=0
TabCt=0
CurTab=-1
CurPos=1 0 0 1315 39
CType=1
ToolbarRows=1
ToolbarType=3
ItemCount=43
...

Before you proceed, some words of caution!Before you proceed, some words of caution!

  • Fudging with this file could wreck your UI. Make sure to back up your UI file before you work on it.
  • Make sure there is no space between the blocks: the UI code doesn’t like blank lines!
  • This code-block is for 3dsMax 9. Some features will not work for Max 8, and it will not really be suitable for Max2008 or 2009. Remember that this needs to be customized for you!
  • Regardless of what 3dsMax does, make sure the UI elements in each tab are in order of item number (i.e. item#=…). Keep things neat and tidy.
  • You absolutely, positively, must change the ItemCount variable to the number of items in the tab, or 3dsMax will cut off whatever other UI elements remain after that number. If you find stuff not showing up for some reason, this is a likely culprit.

If you need to add buttons that do not yet exist in the bar, you can do so through [3dsM]>Customize>Customize User Interface. Under the “Toolbars” tab, you can search for functionality (like “create spotlight” or “turbosmooth modifier”) and drag them into the tabs bar. If you need to rearrange items, access features not available through the UI editor, or do deep structural changes (like add tabs) you do so through the .cui file.

Now for the code. What you see below is the block of code to insert into your CUI file. It contains the various tabs (denoted with names like [Tab Panel__0]) and their buttons, images, and some other (irrelevant) data. Take this block and insert it between the two blocks like I described above:

[Tab Panel]
Rank=1
SubRank=0
Hidden=0
FRect=2147483647 2147483647 -2147483648 -2147483648
DRect=0 0 1280 57
DRectPref=2147483647 2147483647 -2147483648 -2147483648
DPanel=1
Tabbed=1
TabCt=10
CurTab=3
CurPos=1 0 0 1280 57
CType=1
[Tab Panel__0]
TabName="Objects"
ToolbarRows=1
ToolbarType=3
ItemCount=30
Item0=3|6|16|31|1
Item1=3|6|16|31|1
Item2=3|6|16|31|1
Item3=3|6|16|31|1
Item4=2|0|0|31|3|647394|Box`Objects Primitives|0|0|"Box"|"Box"|-1|
Item5=2|0|0|31|3|647394|Sphere`Objects Primitives|0|0|"Sphere"|"Sphere"|-1|
Item6=2|0|0|31|3|647394|Cylinder`Objects Primitives|0|0|"Cylinder"|"Cylinder"|-1|
Item7=2|0|0|31|3|647394|Torus`Objects Primitives|0|0|"Torus"|"Torus"|-1|
Item8=2|0|0|31|3|647394|Teapot`Objects Primitives|0|0|"Teapot"|"Teapot"|-1|
Item9=2|0|0|31|3|647394|Cone`Objects Primitives|0|0|"Cone"|"Cone"|-1|
Item10=2|0|0|31|3|647394|GeoSphere`Objects Primitives|0|0|"GeoSphere"|"GeoSphere"|-1|
Item11=2|0|0|31|3|647394|Tube`Objects Primitives|0|0|"Tube"|"Tube"|-1|
Item12=2|0|0|31|3|647394|Pyramid`Objects Primitives|0|0|"Pyramid"|"Pyramid"|-1|
Item13=2|0|0|31|3|647394|plane`Objects Primitives|0|0|"Plane"|"Plane"|-1|
Item14=3|6|16|31|1
Item15=2|0|0|31|3|647394|Hedra`Objects Primitives|0|0|"Hedra"|"Hedra"|-1|
Item16=2|0|0|31|3|647394|ChamferBox`Objects Primitives|0|0|"ChamferBox"|"Chamfer Box"|-1|
Item17=2|0|0|31|3|647394|OilTank`Objects Primitives|0|0|"Oil Tank"|"Oil Tank"|-1|
Item18=2|0|0|31|3|647394|Spindle`Objects Primitives|0|0|"Spindle"|"Spindle"|-1|
Item19=2|0|0|31|3|647394|Gengon`Objects Primitives|0|0|"Gengon"|"Gengon"|-1|
Item20=2|0|0|31|3|647394|RingWave`Objects Primitives|0|0|"RingWave"|"RingWave"|-1|
Item21=2|0|0|31|3|647394|Prism`Objects Primitives|0|0|"Prism"|"Prism"|-1|
Item22=2|0|0|31|3|647394|Torus_Knot`Objects Primitives|0|0|"Torus Knot"|"Torus Knot"|-1|
Item23=2|0|0|31|3|647394|ChamferCyl`Objects Primitives|0|0|"Chamfer Cylinder"|"Chamfer Cylinder"|-1|
Item24=2|0|0|31|3|647394|Capsule`Objects Primitives|0|0|"Capsule"|"Capsule"|-1|
Item25=2|0|0|31|3|647394|L_Ext`Objects Primitives|0|0|"L-Extrusion"|"L-Extrusion"|-1|
Item26=2|0|0|31|3|647394|C_Ext`Objects Primitives|0|0|"C-Extrusion"|"C-Extrusion"|-1|
Item27=2|0|0|31|4|647394|Hose`Objects Primitives|0|0|"Hose"||8|FileLinkActionItems
Item28=3|6|16|31|1
Item29=2|0|0|31|3|647394|Foliage`Objects AEC|0|0|"Foliage"|"Foliage"|-1|
[Tab Panel__1]
TabName="Shapes"
ToolbarRows=1
ToolbarType=3
ItemCount=12
Item0=3|6|16|31|1
Item1=2|0|0|31|3|647394|Lines`Objects Shapes|0|0|"Line Shape"|"Line"|-1|
Item2=2|0|0|31|3|647394|Rectangle`Objects Shapes|0|0|"Rectangle Shape"|"Rectangle"|-1|
Item3=2|0|0|31|3|647394|Circle`Objects Shapes|0|0|"Circle Shape"|"Circle"|-1|
Item4=2|0|0|31|3|647394|Ellipse`Objects Shapes|0|0|"Ellipse Shape"|"Ellipse"|-1|
Item5=2|0|0|31|3|647394|Arc`Objects Shapes|0|0|"Arc Shape"|"Arc"|-1|
Item6=2|0|0|31|3|647394|Donut`Objects Shapes|0|0|"Donut Shape"|"Donut"|-1|
Item7=2|0|0|31|3|647394|Ngon`Objects Shapes|0|0|"NGon Shape"|"NGon"|-1|
Item8=2|0|0|31|3|647394|Star`Objects Shapes|0|0|"Star Shape"|"Star"|-1|
Item9=2|0|0|31|3|647394|Text`Objects Shapes|0|0|"Text Shape"|"Text"|-1|
Item10=2|0|0|31|3|647394|Helix`Objects Shapes|0|0|"Helix Shape"|"Helix"|-1|
Item11=2|0|0|31|3|647394|Section`Objects Shapes|0|0|"Section Shape"|"Section "|-1|
[Tab Panel__2]
TabName="Compounds"
ToolbarRows=1
ToolbarType=3
ItemCount=12
Item0=2|0|0|31|3|647394|Morph`Objects Compounds|0|0|"Morph Compound Object"|"Morph"|-1|
Item1=2|0|0|31|3|647394|Conform`Objects Compounds|0|0|"Conform Compound Object"|"Conform"|-1|
Item2=2|0|0|31|3|647394|Boolean`Objects Compounds|0|0|"Boolean Compound Object"|"Boolean"|-1|
Item3=2|0|0|31|3|647394|Loft`Objects Compounds|0|0|"Loft Compound Object"|"Loft"|-1|
Item4=2|0|0|31|3|647394|Scatter`Objects Compounds|0|0|"Scatter Compound Object"|"Scatter"|-1|
Item5=2|0|0|31|3|647394|Connect`Objects Compounds|0|0|"Connect Compound Object"|"Connect"|-1|
Item6=2|0|0|31|3|647394|ShapeMerge`Objects Compounds|0|0|"ShapeMerge Compound Object"|"ShapeMerge"|-1|
Item7=2|0|0|31|3|647394|Terrain`Objects Compounds|0|0|"Terrain Compound Object"|"Terrain"|-1|
Item8=2|58|0|31|3|647394|BlobMesh`Objects Compounds|0|0|"BlobMesh Compound Object"|"BlobMesh "|-1|
Item9=2|43|0|31|3|647394|Mesher`Objects Compounds|0|0|"MesherCompound Object"|"Mesher"|-1|
Item10=2|0|0|31|3|647394|ProBoolean`Objects Compounds|0|0|"ProBoolean Compound Object"|"ProBoolean"|-1|
Item11=2|0|0|31|3|647394|Procutter`Objects Compounds|0|0|"ProCutter Compound Object"|"ProCutter"|-1|
[Tab Panel__3]
TabName="Lights & Cameras"
ToolbarRows=1
ToolbarType=3
ItemCount=15
Item1=2|0|0|31|3|647394|Target_Spotlight`Lights and Cameras|0|0|||-1|
Item2=2|0|0|31|3|647394|Free_Spotlight`Lights and Cameras|0|0|||-1|
Item3=2|0|0|31|3|647394|Omni_Light`Lights and Cameras|0|0|||-1|
Item4=2|0|0|31|3|647394|Directional_Light`Lights and Cameras|0|0|||-1|
Item5=2|0|0|31|3|647394|Target_Directional_Light`Lights and Cameras|0|0|||-1|
Item6=3|6|16|31|1
Item7=2|0|0|31|3|647394|Light_Include`Lights and Cameras|0|0|||-1|
Item8=2|0|0|31|3|647394|Light_List`Lights and Cameras|0|0|||-1|
Item9=3|6|16|31|1
Item10=2|0|0|31|3|647394|Target_Camera`Lights and Cameras|0|0|||-1|
Item11=2|0|0|31|3|647394|Free_Camera`Lights and Cameras|0|0|||-1|
Item12=3|6|16|31|1
Item13=2|71|0|31|3|647394|AreaOmni`Lights and Cameras|0|0|"mental ray Area Omni"|"mr Area Omni"|-1|
Item14=2|69|0|31|3|647394|AreaSpot`Lights and Cameras|0|0|"mental ray Area Spot"|"mr Area Spot"|-1|
Item15=2|69|0|31|3|647394|AreaSpot`Lights and Cameras|0|0|"mental ray Area Spot"|"mr Area Spot"|-1|
Item0=3|6|16|31|1
[Tab Panel__4]
TabName="Particles"
ToolbarRows=1
ToolbarType=3
ItemCount=8
Item0=2|105|0|31|3|647394|PFSource`Objects Particle Systems|0|0|"Particle Flow Source Particle System"|"Particle Flow Source"|-1|
Item1=3|6|16|31|1
Item2=2|0|0|31|3|647394|Spray`Objects Particle Systems|0|0|"Spray Particle System"|"Spray"|-1|
Item3=2|0|0|31|3|647394|Snow`Objects Particle Systems|0|0|"Snow Particle System"|"Snow"|-1|
Item4=2|0|0|31|3|647394|Blizzard`Objects Particle Systems|0|0|"Blizzard Particle System"|"Blizzard"|-1|
Item5=2|0|0|31|3|647394|PArray`Objects Particle Systems|0|0|"PArray Particle System"|"PArray"|-1|
Item6=2|0|0|31|3|647394|PCloud`Objects Particle Systems|0|0|"PCloud Particle System"|"PCloud"|-1|
Item7=2|0|0|31|3|647394|SuperSpray`Objects Particle Systems|0|0|"Super Spray Particle System"|"Super Spray"|-1|
[Tab Panel__5]
TabName="Helpers"
ToolbarRows=1
ToolbarType=3
ItemCount=12
Item0=3|6|16|31|1
Item1=3|6|16|31|1
Item2=2|0|0|31|3|647394|Dummy`Objects Helpers|0|0|"Dummy"|"Dummy"|-1|
Item3=2|0|0|31|3|647394|Grid`Objects Helpers|0|0|"Grid"|"Grid"|-1|
Item4=2|0|0|31|3|647394|Point`Objects Helpers|0|0|"Point"|"Point"|-1|
Item5=2|0|0|31|3|647394|Tape`Objects Helpers|0|0|"Tape Measure"|"Tape Measure"|-1|
Item6=2|0|0|31|3|647394|Protractor`Objects Helpers|0|0|"Protractor"|"Protractor"|-1|
Item7=2|0|0|31|3|647394|Compass`Objects Helpers|0|0|"Compass"|"Compass"|-1|
Item8=3|6|16|31|1
Item9=2|0|0|31|3|647394|Boxgizmo`Objects Helpers|0|0|"Box Gizmo (Atmospheres)"|"Box Gizmo"|-1|
Item10=2|0|0|31|3|647394|SphereGizmo`Objects Helpers|0|0|"Sphere Gizmo (Atmospheres)"|"Sphere Gizmo"|-1|
Item11=2|0|0|31|3|647394|CylGizmo`Objects Helpers|0|0|"Cylinder Gizmo (Atmospheres)"|"Cylinder Gizmo"|-1|
[Tab Panel__6]
TabName="Space Warps"
ToolbarRows=1
ToolbarType=3
ItemCount=24
Item0=2|0|0|31|3|647394|Motor`Objects Space Warps|0|0|"Motor Space Warp"|"Motor"|-1|
Item1=2|0|0|31|3|647394|Push`Objects Space Warps|0|0|"Push Space Warp"|"Push"|-1|
Item2=2|38|0|31|3|647394|Vortex`Objects Space Warps|0|0|"Vortex Space Warp"|"Vortex"|-1|
Item3=2|0|0|31|3|647394|Drag`Objects Space Warps|0|0|"Drag Space Warp"|"Drag"|-1|
Item4=2|0|0|31|3|647394|Path_Follow`Objects Space Warps|0|0|"Path Follow Space Warp"|"Path Follow"|-1|
Item5=2|0|0|31|3|647394|Pbomb`Objects Space Warps|0|0|"PBomb Space Warp"|"PBomb"|-1|
Item6=2|0|0|31|3|647394|Displace`Objects Space Warps|0|0|"Displace Space Warp"|"Displace"|-1|
Item7=2|0|0|31|3|647394|Gravity`Objects Space Warps|0|0|"Gravity Space Warp"|"Gravity"|-1|
Item8=2|0|0|31|3|647394|Wind`Objects Space Warps|0|0|"Wind Space Warp"|"Wind"|-1|
Item9=3|6|16|31|1
Item10=2|0|0|31|3|647394|FFD_Box`Objects Space Warps|0|0|"FFD(Box) Space Warp"|"FFD(Box)"|-1|
Item11=2|0|0|31|3|647394|FFD_Cyl`Objects Space Warps|0|0|"FFD(Cyl) Space Warp"|"FFD(Cyl)"|-1|
Item12=2|0|0|31|3|647394|Wave`Objects Space Warps|0|0|"Wave Space Warp"|"Wave"|-1|
Item13=2|0|0|31|3|647394|Ripple`Objects Space Warps|0|0|"Ripple Space Warp"|"Ripple"|-1|
Item14=2|0|0|31|3|647394|Displace`Objects Space Warps|0|0|"Displace Space Warp"|"Displace"|-1|
Item15=2|0|0|31|3|647394|SpaceConform`Objects Space Warps|0|0|"Conform Space Warp"|"Conform"|-1|
Item16=2|0|0|31|3|647394|Bomb`Objects Space Warps|0|0|"Bomb Space Warp"|"Bomb"|-1|
Item17=3|6|16|31|1
Item18=2|0|0|31|3|647394|SpaceBend`Objects Space Warps|0|0|"Bend Space Warp"|"Bend"|-1|
Item19=2|0|0|31|3|647394|SpaceSkew`Objects Space Warps|0|0|"Skew Space Warp"|"Skew"|-1|
Item20=2|0|0|31|3|647394|SpaceNoise`Objects Space Warps|0|0|"Noise Space Warp"|"Noise"|-1|
Item21=2|0|0|31|3|647394|SpaceTaper`Objects Space Warps|0|0|"Taper Space Warp"|"Taper"|-1|
Item22=2|0|0|31|3|647394|SpaceTwist`Objects Space Warps|0|0|"Twist Space Warp"|"Twist"|-1|
Item23=2|0|0|31|3|647394|SpaceStretch`Objects Space Warps|0|0|"Stretch Space Warp"|"Stretch"|-1|
[Tab Panel__7]
TabName="Modifiers"
ToolbarRows=1
ToolbarType=3
ItemCount=36
Item0=2|0|0|31|3|647394|Bend`Modifiers|0|0|||0|standard_modifiers
Item1=2|0|0|31|3|647394|Taper`Modifiers|0|0|||1|standard_modifiers
Item2=2|0|0|31|3|647394|Skew`Modifiers|0|0|||2|standard_modifiers
Item3=2|0|0|31|3|647394|Twist`Modifiers|0|0|||3|standard_modifiers
Item4=2|0|0|31|3|647394|Stretch`Modifiers|0|0|||4|standard_modifiers
Item5=2|0|0|31|3|647394|Noise`Modifiers|0|0|||6|standard_modifiers
Item6=2|0|0|31|3|647394|Wave`Modifiers|0|0|||7|standard_modifiers
Item7=2|0|0|31|3|647394|Melt`Modifiers|0|0|||19|standard_modifiers
Item8=2|0|0|31|3|647394|Spherify`Modifiers|0|0|||21|standard_modifiers
Item9=2|0|0|31|3|647394|Ripple`Modifiers|0|0|||8|standard_modifiers
Item10=2|0|0|31|3|647394|FFDBox`Modifiers|0|0|||9|standard_modifiers
Item11=2|0|0|31|3|647394|FFDCyl`Modifiers|0|0|||10|standard_modifiers
Item12=2|0|0|31|3|647394|XForm`Modifiers|0|0|||30|standard_modifiers
Item13=2|0|0|31|3|647394|Flex`Modifiers|0|0|||26|Standard_Modifiers
Item14=3|6|16|31|1
Item15=2|0|0|31|3|647394|Morpher`Modifiers|0|0|||23|standard_modifiers
Item16=2|0|0|31|3|647394|Skin`Modifiers|0|0|||25|standard_modifiers
Item17=2|0|0|31|3|647394|Displace`Modifiers|0|0|||17|standard_modifiers
Item18=2|0|0|31|3|647394|Optimize`Modifiers|0|0|||33|standard_modifiers
Item19=2|0|0|31|3|647394|Smooth`Modifiers|0|0|||22|standard_modifiers
Item20=2|0|0|31|3|647394|Cap_Holes`Modifiers|0|0|||28|standard_modifiers
Item21=2|0|0|31|3|647394|Linked_xform`Modifiers|0|0|||31|standard_modifiers
Item22=2|0|0|31|3|647394|Push`Modifiers|0|0|||35|standard_modifiers
Item23=2|0|0|31|3|647394|Vertex_Paint`Modifiers|0|0|||36|standard_modifiers
Item24=2|0|0|31|3|647394|MeshSmooth`Modifiers|0|0|||18|Standard_Modifiers
Item25=3|6|16|31|1
Item26=2|0|0|31|3|647394|Volumeselect`Modifiers|0|0|||3|Max_Edit_Modifiers
Item27=2|0|0|31|3|647394|Mesh_Select`Modifiers|0|0|||2|Max_Edit_Modifiers
Item28=2|0|0|31|3|647394|Edit_Mesh`Modifiers|0|0|||0|Max_Edit_Modifiers
Item29=2|0|0|31|3|647394|Edit_Patch`Modifiers|0|0|||1|Max_Edit_Modifiers
Item30=2|0|0|31|3|647394|Edit_Spline`Modifiers|0|0|||10|Max_Edit_Modifiers
Item31=2|0|0|31|3|647394|Spline_Select`Modifiers|0|0|||9|Max_Edit_Modifiers
Item32=3|6|16|31|1
Item33=2|0|0|31|3|647394|Uvwmap`Modifiers|0|0|||3|Material_Modifiers
Item34=2|0|0|31|3|647394|Unwrap_UVW`Modifiers|0|0|||5|Material_Modifiers
Item35=2|0|0|31|3|647394|Material_ID`Modifiers|0|0|||1|Material_Modifiers
[Tab Panel__8]
TabName="Modeling"
ToolbarRows=1
ToolbarType=3
ItemCount=23
Item0=3|6|16|31|1
Item1=2|0|0|31|3|647394|Edit_Spline`Modifiers|0|0|||10|Max_Edit_Modifiers
Item2=2|0|0|31|3|647394|Extrude`Modifiers|0|0|||12|standard_modifiers
Item3=2|0|0|31|3|647394|Lathe`Modifiers|0|0|||13|standard_modifiers
Item4=2|0|0|31|3|647394|Bevel`Modifiers|0|0|||16|standard_modifiers
Item5=2|0|0|31|3|647394|Bevel_Profile`Modifiers|0|0|||15|Standard_Modifiers
Item6=3|6|16|31|1
Item7=2|0|0|31|3|647394|CrossSection`Modifiers|0|0|||0|surface_tools
Item8=2|0|0|31|3|647394|Surface`Modifiers|0|0|||1|Surface_tools
Item9=2|0|0|31|3|647394|Edit_Patch`Modifiers|0|0|||1|Max_Edit_Modifiers
Item10=2|0|0|31|3|647394|Relax`Modifiers|0|0|||20|standard_modifiers
Item11=3|6|16|31|1
Item12=3|6|16|31|1
Item13=2|0|0|31|3|647394|Edit_Mesh`Modifiers|0|0|||0|Max_Edit_Modifiers
Item14=2|0|0|31|3|647394|Mesh_Select`Modifiers|0|0|||2|Max_Edit_Modifiers
Item15=2|0|0|31|3|647394|Volumeselect`Modifiers|0|0|||3|Max_Edit_Modifiers
Item16=2|0|0|31|3|647394|Face_Extrude`Modifiers|0|0|||4|Max_Edit_Modifiers
Item17=2|0|0|31|3|647394|Affect_Region`Modifiers|0|0|||14|standard_modifiers
Item18=2|0|0|31|3|647394|Push`Modifiers|0|0|||35|standard_modifiers
Item19=2|0|0|31|3|647394|MeshSmooth`Modifiers|0|0|||18|standard_modifiers
Item20=2|0|0|31|3|647394|FFDBox`Modifiers|0|0|||9|standard_modifiers
Item21=3|6|16|31|1
Item22=3|6|16|31|1
[Tab Panel__9]
TabName="Rendering"
ToolbarRows=1
ToolbarType=3
ItemCount=16
Item0=3|6|16|31|1
Item1=2|72|0|31|4|0|40029|0|0|"Environment Dialog"|"Environments"|-1|Maintoolbar
Item2=3|6|16|31|1
Item3=2|41|0|31|4|0|40367|0|0|"Render Effects"|"Effects"|-1|Maintoolbar
Item4=3|6|16|31|1
Item5=2|46|0|31|4|0|40033|0|0|"Make Preview"|"Preview"|-1|Maintoolbar
Item6=3|6|16|31|1
Item7=2|64|0|31|4|0|40403|0|0|"RAM Player"|"RAM Player"|-1|Separator
Item8=3|6|16|31|1
Item9=2|0|0|31|4|0|40312|0|0|"Material/Map Browser"||5|Material_Modifiers
Item10=2|0|0|31|4|0|50048|0|0|"Material Editor"||64|Maintoolbar
Item11=3|6|16|31|1
Item12=2|0|0|31|4|0|60010|0|0|"Render Scene"||66|Maintoolbar
Item13=2|0|0|31|4|0|50031|0|0|"Quick Render (Production)"||70|Maintoolbar
Item14=2|0|0|31|4|0|50030|0|0|"Render Last"||68|Maintoolbar
Item15=2|0|0|31|4|0|40701|0|0|"ActiveShade Floater"||8|Render

Text editing provides you with some pretty good control over the interface that you wouldn’t have from within the program. You can change “double-wide” separators to “single-wide”, which you cannot do through the UI editor in 3dsMax. You can also do stuff like change the order of buttons and add new toolbars like tabbed interfaces. However, you cannot easily change a button’s logo from the text side- you should only do that from within 3dsMax.

For the curious, single-wide separator is

Item#=3|6|16|31|1

while double-wide separator is

Item14=2|0|0|31|3|647394|Separator`Separator|0|0|"Separator"|"Separator"|-1|

That’s it for now!  Enjoy!

Designed by Alejo "Mr. Bluesummers" Grigera"
©2012 MrBluesummers.com