activeType

173 votes
Version: 
0.36
Date Updated: 
07/27/2015



Summary of changes for activeType 0.36

- removed spacewarp mods query (it was causing a bit of slowdown)
- disabled subobject, pflow and slate modes
(More detailed info on changes at the History notes below)

Activetype is a quick way to work around 3dsmax. It gives you a context sensitive input box that generates a list of items that you can use to create geometry, assign modifers, access properties, execute scripts and custom commands.

 

Additional Info: 

 

Youtube - Usage Video

Credits:
* This script was largely inspired by Houdini's intuitive TAB Menu.
* Thanks to Jordan Walsh for the bit regarding .classes!
* Thanks to Daniel Santana (4+Arquitectos, Lda) for the User Commands/Object Parameters/Script Execution ideas!
* Thanks to Sergo Pogosyan for the History List idea!
* Thanks to Martin Breidt for the max commands ini file! (Download his activtypeCommands.ini below)
* Thanks to Arnon Marcus for the bit about adding "Locals"

Notes:

  • Run the script file, it will create commands inside your "Customize User Interface" dialog called ActiveType and ActiveType Preferences under the category Terabyte.
  • When running the script for the first time, the preferences window will pop-up. Here are the options:

    • Exit Token: If you type this text on ActiveType, it will exit the script. It is recommendable that you use the same character/text for your shortcut and your Exit Token.
    • Command Token: This key will invoke the Custom Commands list. (0.35)
    • Box Width: The width of the ActiveType box.
    • Max Items: The maximum number of items that will be displayed.
    • History List: The maximum number of items that can be displayed in the history list. (0.32)
    • Initialize on Startup:  This will create a startup script on your scripts\startup folder. Whenever 3dsmax starts, it will run activeType invisibly to pre-compile the dotNet classes being used, essentialy speeding up loading on first-run. (0.35)
    • Spaces as Wildcards: Will convert blank spaces (pressing the spacebar) into wildcards (*).
    • Windows Start Menu Bar: If you have the start menu always visible, check this option to offset the ui size overflow. (0.30)
    • Custom Colors: Set the colors for the pop-up UI.
    • Open INI File: Opens the activeType.ini file found in your PlugCfg folder. (0.29)
    • Open Commands File: Opens the activeTypeCommands.ini file found in your PlugCfg folder. (0.29)
  • This script is intended to be assigned as a short-cut using non-alphabetic characters. (Right now, it won't work inside the quad menu)
  • This will also save counters for each class that you select on the list, enabling the script to populate the list with the most commonly used classes first.
  • The script is using some dotNet controls, so it might lag the first time you run it. (Enable 'Initialize on Startup' to alleviate this)
  • This can also display a History List of previously selected items whenever invoking activeType. (0.31~0.32)
  • To exit activeType, do one of the following:
    • Press Enter (will execute highlighted item).
    • Click on an item in the list (will execute the picked item).
    • Type in the "Exit Text".
    • Click anywhere outside the input box.
    • Press the ESC button.


0.35 New Features

  • Limited Edit\Editable Mesh / Poly / Spline / Patch Support
    • To invoke the feature, simply be in sub-object mode.
    • The script will work on both Editable and Modifier flavors.
    • Edit Poly in particular, is slightly different. The names will have suffixes for Commands, Buttons, and Pick Buttons.
    • Sadly, Edit\Editable Poly sometimes are unable to execute a command, thus the 'Limited' tag. (You may look at the listener for reports of unexecuted commands)
    • Some of the commands are unfiltered. A command for a sub-object polygon may appear on a vertex sub-object list.
    • This feature does not trigger if you are editing two or more objects. (no yet)
    • The option "Spaces as wildcards" greatly helps to quickly narrow down your list:
      • e.g. On a sub-object Edit_Poly, you may type "t" followed by space (whicih is automatically converted to "*", then type "w" to quickly narrow the list to "TargetWeld"
  • Customizable key for invoking the Custom Commands.
    • Now defaults to the "~" (tilde). Old hotkey was "#".
    • I've also added a Custom Commands INI file on th elinks below.
      • It's a long list of Max Commands courtesy of by Martin Breidt. Simple copy it to your \AppData\Local\Autodesk\3dsMax\2013 - 64bit\ENU\en-US\plugcfg folder.


0.33 & 0.34 New Features

  • Limited Slate Support (for max2013 only)
    • You can only create nodes inside the Slate Material Editor if:
      1. The Slate Window is open.
      2. There is a selection inside the Graph View
        *** Just remember to unselect a node inside the Slate if your list is still showing maps and materials ***
    • The created nodes will appear at an offset to the Left of the selected node, and will be selected.
    • Lists will be filtered depending on the current active renderer.
    • Note that you may see un-creatable Material/Maps on the list. 3dsMax may have automatic safegaurds preventing those to be created via Maxscript.
  • Pre-Load on Start-up
    • There is now an option called 'Initialize on Startup' to pre-load activeType in order to defer the lag (caused by DotNet) whenever launching the script for the first time.
  • The input textbox is now displayed with a cursor and a selectable text.


0.32 New Features:

  • Limited PFlow Support
    • You can only create Operators when you have an Operator/Event selected inside Particle View.
    • ActiveType will switch to PFlow mode only if it detects that the Particle View is the current active window, your mouse cursor is inside the Particle View work area AND you have an operator/event selected.

 

0.31 New Features:

 History List:

  • A list of previously used geometries/modifiers/operators can be visible whenever invoking activeType.
  • You may disable the history list by setting the count to 0 (zero) from the preferences dialog.

 

0.30 New Features:


  • The UI will now automatically expand based on the text width, and list height.
  • The UI will also reposition itself whenever it detects that the size will overflow off the screen.

 

0.29 New Features:


  • User Commands
    • To enter user commands, type "#" as the first character. --> Changed to "~" (tilde) by default on version 0.35
    • To add more commands, edit the activeTypeCommands.ini found in the plugcfg folder.
  • Object Parameters
    • To list the parameters for the active modifier in the stack, type "." as the first character.
    • You can then press the TAB or ENTER key to complete the text. (You can also click the item)
    • Supported parameter classes are Integers, Floats, Strings, & Booleans.
  • Script Execution
    • To execute a one-liner script, type "=" as the first character.

 

History:

[0.36]
2015-06-11
- fixed command mode not working
- found part of the cause of the slowdown whenever querying modifiers:
   - removed spacewarp mods query, it was causing the slowdown
   - the speed at which activetype will query modifiers will be the same as the speed at which
     the modifier dropdown on the command panel appears.
   - i may have to build my own modifier cache to query from to speed things up a bit more.
- added "local" to variables to avoid liekly errors against other scipts (Thanks to Arnon Marcus)
- disabled subobject mode as this changed the way activeType initially worked
  - will update this to use capitalization in order to invoke sub-object mode.
- disbaled pflow and slate modes (I will need to look for better methods on detecting the dialogs)

[0.35]
2013-03-17
- fixed alt-press on opening ini files for win7
- disabled custom color checkbox - it was kinda redundant to have the switch
- added (limited) support for subobject mesh/poly/spline/patch modeling
2013-03-19
- updatead the Preferences UI and some functionalities
- added customizable Custom commands token string
- reworked the pre-load feature

[0.34]
2012-10-03
- added startup pre-loading
- restructured some code
- modified textbox to have selectable text
2012-10-04
- added (limited) support for the Slate Material Editor for max2013

[0.33]
2012-07-10
- improved Custom Commands listing (as requested by Martin Breidt)
- upon opening the activeType Preferences, it will auto-create a sample Commands File if it doesnt exist
- under the activeType Preferences, pressing [ALT]+[Open INI/Commands files] will open windows explorer to show the file and is selected.
2012-08-11
- fixed Pflow Dialog Detection using a much simpler method

[0.32d]
2011-12-06
- fixed PFlow Dialog Detection checking error

[0.32c]
2011-12-05
- fixed History List not initialized properly
- fixed PFlow Dialog Detection at index 1-3
- fixed blank "Exit Text" quick exit

[0.32b]
2011-11-30
- fixed Pflow creating ghost operators
- fixed "Color Hisroty BG" typo for INI file
- fixed history list - valid modifiers filtering

[0.32]
20011-11-29
- added clean-up for pflow creating unnecessary Display Ops [2012]
2011-11-26~27
- reintegrated/simplified the pflow functionality
- added max2009 check for UIAccessor
2011-09-06
- initial tests for pflow support
- added PFlow support (pfview check and creation methods)
- added classPFExemptions
- added krakatoaClasses

[0.31]
2011-11-25~26
- added class history list
- internally renamed some variables

[0.30]
2010-01-27
- added auto extend width
- added offset UI on screen edge overflow
- added "windows menu bar" checkbox to control overflow at the bottom

[0.29b]
2010-01-27
- fixed max2010 on japanese win vista list height
- added preferences as a built in command
- fixed TAB error if no text entered
2010-01-26
- fixed TAB key error

[0.29]
2010-01-25
- code clean-up
- fixed parameter list will now work on multiple base objects
- added open INI file button
- added open Commands INI file button
- separate INI file for the commands list
- added enter key on parameter list to complete
- added parameter and command counters/ranking
- added one line script execution using "="
- added ESC key to exit
- added click an item on the parameters list to complete

[0.28]
2009-12
Daniel Santana added a couple of neat features:
- added support for user commands using "#"
- added support for object properties (integer, float, bool and string) using "."
- added tab key on parameter list to complete

[0.27b]
- fixed error with japanese characters inside the script

[0.27]
2009-11-04
- fixed error on max9 with spaces as wildcards on
- I was using the function substituteString which isn't available in max9
- another fix for the dynamic UI height
- fixed for English/Japanese OS inconsistency
- adjusted width of the list for cosmetic reasons

[0.26]
2009-09-13
- fixed dynamic UI width/height
- max 2010 was showing inconsistent list height
- custom colors checkbox

[0.25]
2009-09-11
- disabled mouse checking within the UI
- fixed small UI size discrepancy
2009-09-10
- added custom colors
- added max items
- added spaces as wildcards

[0.24]
2009-08-14
- UI - colors
- UI - max height
- UI - spaces as wildcards
2009-08-12
- added spacewarp modifiers
- fixed preferences bug

[0.23]
2009-08-11
- a quick fix to exit activeType if it looses focus.
- added notes on how to exit the script.

[0.22]
2009-08-10
- removed internal timer
- added preferences

[0.21]
2009-08-10
- converted listbox to dotnet

[0.20]
- added all creatable classes
- switched editText to dotNet for up/down keypress detection
- added up/down keypress
- fixed listbox height calculation

[0.10]
- initial build

Version Requirement: 
3ds Max 2008 to 3ds Max 2016
AttachmentSize
activetypecommands.ini - by Martin Breidt2.53 KB
activetype_0.36.ms63 KB

Comments

Comment viewing options

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

re:

demmaone:
Hi, that is odd.. is there a chance that you could test the script on another computer with max2012 installed? I'm guessing that there must be something else in your setup that is in conflict with activetype. The error that you posted seems to be trying to set the "Use NURMS Subdivision" of an Editable Poly. Activetype doesn't have functions to do these. I'll try to do another round of tests for 2012 when I get time at the office.

harumscarum:
1. Thanks for the UI suggestions, seems doable.. I'll try to insert options for border size and color next time.
2. Yup, I will be building a an interface exactly for that, plus options to add custom commands more easily.. soon.
3. Hmm.. I'll look into options on how to disable my internal filtering so that all the modifiers will appear on the list.
Thank you very much for the insightful suggestions!

Sergo:
Material Editor/Slate: Yup, It's on the top of my next endeavors for this script :)

pit3ds:
I'm terribly sorry.. and I really appreciate the effort, but I still can't wrap my head around what you're trying to suggest. I hope this doesn't come out as offensive. :)

demmaone's picture

Problem with 2012 version

Hi, I had this script running perfectly on 2011 but now that I have it on 2012 I had errors went I try to apply a modifier to a selected object (box, spheres, etc):

--Unknown property: "surfSubdivide" in $PolyMesh:001 @ -7.822121, 19.366165, 0.000000

If I try to create an object without anything selected it work fine.
I installed the SP1 and I tried .30 and 0.32d and both have the same issue.

If I close the alert and try again and then close it again I can select from the list a modifier or another action so I suppose that the script works...

Thanks in advance for your help and congratulations for your work.

sergo's picture

That would be super cool!

>>any chance to add SlateMaterialEditor support (maps, materials, etc)?
That would be super cool!

harumscarum's picture

slate material editor

any chance to add SlateMaterialEditor support (maps, materials, etc)?

sergo's picture

Jeff, script is just ideal,

Jeff, script is just ideal, thank you one more time. History list is perfect! It's pity I can't add scriptspot points more than once.

The other thing I'm thinking about now is how to make script remember modifiers' and objects' settings that user entered last time. I think it could be done by remembering object/modifier properties on some 'deselect' event handler and then reapplying them somehow.

harumscarum's picture

Hi Jeff! thank you very much

Hi Jeff! thank you very much for efforts improving script - cannot live without it now )
1. here i attach PNG with some interface suggestions
2. and could be any option to assign custom names for modifiers? (for example "Normalize Spline" instead of "Normalize_Spl" or "Delete Spline" instead of "DeleteSplineModifier")
3. i'd love custom exclude filter (for example it is possible to assign smooth or methsmooth modifier to spline, but in fact never need it)

i hope it could be easily implemented through existing INI file which everyone could edit on their own
thanks

AttachmentSize
activtype.png 11.29 KB
pit3ds's picture

My native language is

My native language is Russian.
version 1
I suggest to leave only to check the "You can only create Operators when you have an Operator / Event selected inside Particle View.". The second item of the list suggest to remove it.

To work with geometry related subjects propose to remove the selection from the selected node.
version 2
propose to remove this item from the scan, "Particle View is the current active window, your mouse cursor is inside the Particle View work area"
that would not work with activetype Particle View window within the Particle View propose to remove the selection from the selected node. (select none)

How would propose to remove the part responsible for checking when the mouse cursor in the window, Particle View and is the current active window. I think in this part of the code is the problem and the script stops working and it will be easier.

I want to reiterate that the script works through time. And I think this is due to the chosen instrument "move" or "rotation" or "select object" and to check - "Particle View is the current active window, your mouse cursor is inside the Particle View work area".

Jeff Lim's picture

I honestly don't fully

I honestly don't fully understand what you're trying to convey :)
Any chance you could tell me you're native language? I may be able to interpret chinese/japanese :D

pit3ds's picture

can then do a background check only on selected node

can then do a background check only on selected node (if the chosen node then the script works. If there is no effect.) I think it would be better to comply with a rule-if you want a script that would work is allocated node, or if you want to work with related subjects is allocated in an empty area of ​​the particles . I hope you understand me))

Jeff Lim's picture

Thanks

Glad to hear that it was working. A selection is needed because I can't find maxscript access on where the mouse is inside the Particle View work area.

Comment viewing options

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