This is a short, helpful maxscript snippet I wrote a few months back.
Without a script like this, the Max UI only exposes a face’s Diagonal through the “Turn” and “edit triangulation” tools, both of which offer cumbersome, multi click interfaces to turn edges.
Often an artist will need to turn quads’ diagonals quickly, so I wrote this script to quickly and easily toggle the diagonal rotation of every currently selected face.
fn turnDiagonals =
(
local exitcode
if(classof (modPanel.getCurrentObject()) == Editable_Poly) then
(
selectedArray = (polyop.getFaceSelection $) as array
if (selectedArray.count >= 1) then
(
undo "turn selected faces" on
(
for f = 1 to selectedArray.count do
(
-- Formula to get the number of diagonals --
diagCount = (polyop.getFaceEdges $ selectedArray[f]).count - 3
--Turn every diagonal in the face --
for d = 1 to diagCount do
(
$.TurnDiagonal selectedArray[f] d
)
)
)
local exitcode = (selectedArray.count as string) + " Face(s) turned"
)
else (exitcode = "Please select one or more faces.")
)
else (exitcode = "Please select a single editable poly")
print exitcode
)
turnDiagonals()
[HERE] is the script in .MCR format if you’d like to bind it to a hotkey or add it to your UI. It should show up under “Js_misc”.

