-- The Daily Grind Toolset by GaryDave.com -- Big thanks goes to Garp over at Maxforums.org -- Also John Pope because I ripped a bit of your pivot code, waste not want not! macroScript DailyGrind category:"DavesTools" buttonText:"Daily Grind" toolTip:"Daily Grind Toolset" Icon:#("Containers",9) ( rollout DGT "Daily Grind Toolset V1.0" ( group "Fixes" ( button weldv "Weld Verts" width:80 height:16 align:#left tooltip:"Welds Vertices Within the Defined Threshold" spinner autoweld width:50 height:16 range:[0.1,999.9,0.1] align:#right offset:[-30,-21] button fnorm "Flip Normals" width:80 height:16 align:#left across:2 tooltip:"Flips the Normals." button quad "Quadrify" width:80 height:16 align:#right tooltip:"Attempts to Remove Triangulation" button cnorm "Clean Normals" width:80 height:16 align:#left across:2 tooltip:"Resets Normal Data" button origin "Move to Origin" width:80 height:16 align:#right tooltip:"Moves Selection to 0,0,0" button s_shot "Snapshot" width:80 height:16 align:#left across:2 tooltip:"Takes a Snapshot of the Mesh" checkbox keepOrig "Keep Original" checked:true align:#right offset:[7,0] button resetx "Reset XForm" width:80 height:26 tooltip:"Resets XForm and Collapses Stack" button matid "Material ID" width:80 height:16 align:#left tooltip:"Assigns Material ID to Selection" spinner matidno width:40 height:16 range:[1,999,1] type:#integer align:#right offset:[-40,-21] button grey "Grey Material" width:80 height:16 align:#left across:2 tooltip: "Assigns a standard material to the selection" button mwipe "Wipe Material" width:80 height:16 align:#right tooltip: "Removes assigned materials" ) group "Object Pivot" ( button pivc "Center" width:80 height:20 offset:[-40,0] tooltip: "Centers Pivot" radiobuttons minmax labels:#("Min", "Max") default:1 offset:[-40,0] button rpiv "Reset" width:60 height:60 align:#right offset:[-5,-45] tooltip: "Resets Pivot to Original Position" button pivx "X" width:20 height:16 across:3 offset:[-14,-20] button pivy "Y" width:20 height:16 offset:[-38,-20] button pivz "Z" width:20 height:16 offset:[-62,-20] ) on weldv pressed do ( -- Script for vert welding ------------------------------------------------------------------------------------- addModifier selection (vertexWeld threshold:autoWeld.value) collapseStack selection ) on fnorm pressed do ( -- Script for flipping normals --------------------------------------------------------------------------------- addModifier selection (normalModifier flip:true) convertTo selection editable_poly ) on quad pressed do if selection.count != 1 then messagebox "Quadrify currently only works with one object selected" else ( -- Script for Quadrify ----------------------------------------------------------------------------------------- PolyBoost.ValidEPbasemacro() PolyBQuadrify keyboard.shiftpressed keyboard.altpressed ) on cnorm pressed do if selection.count != 1 then messagebox "Clean Normals currently only works with one object selected" else ( -- Script for cleaning normals --------------------------------------------------------------------------------- nameholder = $.name b = convertToMesh(Box()) s = $ move b $.pivot meshop.attach b s select b meshop.deletefaces b #{1..12} update $ $.name = nameholder convertToPoly selection ) on origin pressed do ( -- Script for moving to root- ---------------------------------------------------------------------------------- for obj in selection do obj.pos = [0,0,0] ) on s_shot pressed do if selection.count != 1 then messagebox "Snapshot currently only works with one object selected" else ( -- Script for snapshot ----------------------------------------------------------------------------------------- holder = selection[1] mySnapshot = snapshot selection[1] if keepOrig.checked == false then ( delete holder ) select mySnapshot convertTo selection editable_poly ) on resetx pressed do ( resetxform selection collapseStack selection ) on matid pressed do ( -- Script for Material ID -------------------------------------------------------------------------------------- addModifier selection (Materialmodifier materialID:matidno.value) convertTo selection editable_poly ) on grey pressed do ( local myMtl -- holds the value 'undefined' for m in sceneMaterials where m.name == "GrayLord" do ( myMtl = m exit -- no need to keep looping ) if myMtl == undefined do myMtl = standardMaterial name:"GrayLord" diffuse:gray for obj in selection do obj.material = myMtl ) on mwipe pressed do ( -- Script for removing material ---------------------------------------------------------------------------------- for i in selection do i.material = undefined ) -- Pivot Script ---------------------------------------------------------------------------------- on pivc pressed do ( CenterPivot selection ) on rpiv pressed do ( ResetPivot selection ) on pivx pressed do for obj in selection do ( minPiv = obj.min maxPiv = obj.max oldPiv = obj.pivot newPiv = oldPiv if minmax.state == 1 do ( newPiv.x = minPiv.x) if minmax.state == 2 do (newPiv.x = maxPiv.x) obj.pivot = newPiv ) on pivy pressed do for obj in selection do ( minPiv = obj.min maxPiv = obj.max oldPiv = obj.pivot newPiv = oldPiv if minmax.state == 1 do (newPiv.y = minPiv.y) if minmax.state == 2 do (newPiv.y = maxPiv.y) obj.pivot = newPiv ) on pivz pressed do for obj in selection do ( minPiv = obj.min maxPiv = obj.max oldPiv = obj.pivot newPiv = oldPiv if minmax.state == 1 do ( newPiv.z = minPiv.z) if minmax.state == 2 do (newPiv.z = maxPiv.z) obj.pivot = newPiv ) label end "Dave@GaryDave.com" ) createDialog DGT 190 295 )