miauu's Mini Transform Type-In
Script for 3dsMax 2009+ that changes the default Transform Type-In dialog to mini TTI. The miniTTI is placed over the title bar of the default TTI. The script file can be placed in maxroot/scripts/startup folder so when you run 3dsMax the default TTI will be automatically transformed to mini TTI and will be placed at the last used position of the TTI(default and mini).
In the video you can see how to use the script.
Special thanks to Denis Trofimov for his help.
Attachment | Size |
---|---|
miauuminitti_startup_10.ms | 6.44 KB |
macro_miauuminitti_secondruncloseui.mcr | 6.71 KB |
macro_miauuminitti_secondruncloseui_chinise.ms | 6.68 KB |
miauuminitti_startup_chinise_10.ms | 6.42 KB |
miauuminitti_12.mcr | 6.63 KB |
Comments
close the dialogue box with the same shortcut key
hi miauu
thanks for the newer version
Could you Please do this for this script
thanks for your time again
this is the script
(
--FUNCTIONS
fn createAssembly =
(
str="using System;\n"
str+="using System.Runtime.InteropServices;\n"
str+="namespace Win32Helper\n"
str+="{\n"
str+=" class Win32HelperClass\n"
str+=" {\n"
str+=" [DllImport(\"user32.dll\")]\n"
str+=" [return: MarshalAs(UnmanagedType.Bool)]\n"
str+=" public static extern bool SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);\n"
str+=" [DllImport(\"user32.dll\")]\n"
str+=" public static extern IntPtr SetFocus(IntPtr hWnd);\n"
str+=" }\n"
str+="}\n"
local csharpProvider = dotnetobject "Microsoft.CSharp.CSharpCodeProvider"
local compilerParams = dotnetobject "System.CodeDom.Compiler.CompilerParameters"
compilerParams.ReferencedAssemblies.addRange #("System.dll")
compilerParams.GenerateInMemory = on
local compilerResults = csharpProvider.CompileAssemblyFromSource compilerParams #(str)
for er = 0 to compilerResults.errors.count-1 do print (compilerResults.errors.item[er].tostring())
return compilerResults.CompiledAssembly.createInstance "Win32Helper.Win32HelperClass"
)
local win32Helper = createAssembly()
fn verifyTransformCommandMode =
(
local validCommandModes = #(#move, #Rotate, #scale, #nuscale, #uscale, #squash)
if findItem validCommandModes toolmode.commandMode == 0 do
(
toolMode.commandMode = #move
)
)
fn getInputString =
(
/*case toolMode.commandMode of
(
#Rotate: (str += "{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}")
default: (str += "{TAB}{TAB}{TAB}{TAB}")
)*/
local tabs = case toolMode.axisConstraints of
(
#x:4
#y:5
#z:6
#xy:4
#yz:5
#zx:4
)
local str = ""
for i = 1 to tabs do str += "{TAB}"
str
)
fn showTTI =
(
max tti
local hWnd = (for w in windows.GetChildrenHwnd 0 parent:#max where w[4] == "#32770" and \
matchPattern w[5] pattern:"*ransform Type-In" collect w[1])[1]
local hWndIntPtr = dotNetObject "System.IntPtr" hWnd
local pos = mouse.screenPos
win32Helper.setWindowPos hWndIntPtr 0 pos[1] pos[2] 0 0 1
win32Helper.SetFocus hWndIntPtr
(dotnetClass "SendKeys").sendWait (getInputString())
)
on execute do
(
verifyTransformCommandMode()
showTTI()
)
)
.
Try the version _SecondRunCloseUI.
Tools and Scripts for Autodesk 3dsMax
close the dialogue box with the same shortcut key
hi miauu
thnks for the nice script it would be better if i can close the dialogue box after pressing the same hotkey not th close button
appreciate your work i will be highly obliged if you do this beacause we use this extensively
thanks
viki
just a small tips
if you don't like the position of the miniTTI and also don't want to reset 3dsMax you could press F12 if you haven't change the hotkey for F12. It will give you the default TTI.
it works on 3dsMax2015
Bump
Would it be possible to have a fix for this. Sorry. It always catches me out tabbing. (I go backwards) :P
.
Watch the video carefuly. When the default TTI is shown move it and run the script. The default TTI will be replaced by the miniTTI. If you don\t like the position of the miniTTI reset 3dsMax and make default TTI visible. Move the TTI again and run the script. Repete the steps until the miniTTI is on the right place.
Tools and Scripts for Autodesk 3dsMax
nice but
an immovable pop window on max center lol
how to get move?
Would it be possible to have
Would it be possible to have one panel with all 3 transform types? This would help to avoid switching a lot.
AutoCAD
I'm coming from an AutoCAD background but have been using max on/off for the last 4/5 years. It's only in the last 8months I have been using it most if not all evenings and weekends after work. Even after all this time I find it hard to understand why the type of option isn't available below.
When you select something be it in ACAD or sketchup you can then move it towards the direction of placement THEN type in your value then hit the enter key. Just be nice to have say a toggle built into max where you could have the option of this. Hope you understand. This could work for object & sub-object level.
-------------------------------------------------------------------
Oh. I can't tell you how much I like this script. I have a little suggestion for it if you don't mind me saying.
Would it be possible to have 3 boxes for (X,Y,Z) for the actual dimension of the object/s? This would allow very accurate scaling of object/s in there respective planes.
.
can you describe how exactly that script must works?
Tools and Scripts for Autodesk 3dsMax