About this site
ScriptSpot is a diverse online community of artists and developers who come together to find and share scripts that empower their creativity with 3ds Max. Our users come from all parts of the world and work in everything from visual effects to gaming, architecture, students or hobbyists.
Comments
Try this. This script will
Try this. This script will select all objects whose positions are visible from the current orhtographic viewport. Use this as a starter and feel free to ask questions.
Hope this helps
Mobeen
--Author: Muhammad Mobeen Movania
--Last Modified: May 04 2007 10:28 pm PST
--Tested on 3dsmax5
--This script selects all objects that intersect the current
--orthographic viewport limits
try( destroydialog r_Test)
catch()
rollout r_Test "Select Visible to Viewport"
(
fn fnFindMinMax pts &minX &maxX &minY &maxY =
(
minX = pts[2].x
minY = pts[2].y
if (pts[1].x <= minX) then
(
minX = pts[1].x
maxX = pts[2].x
)
else
(
maxX = pts[1].x
)
if (pts[1].y <= minY) then
(
minY = pts[1].y
maxY = pts[2].y
)
else
(
maxY = pts[1].y
)
)
button bSelect "select"
on bSelect pressed do
(
--Get the active viewport size
local vpSize = getViewSize()
--Get the view bounds
local pts = #([0,0], vpSize)
--This will contain the viewport points in world coordinates
local tfm = #()
--Transform viewport points into the world positions
for p in pts do
(
append tfm (mapScreenToCP p)
)
local minX = 0
local minY = 0
local maxX = 0
local maxY = 0
fnFindMinMax tfm &minX &maxX &minY &maxY
print ("Min " + minX as string + ","+minY as string) print ("Max " + maxX as string + ","+maxY as string)
--Remove previous selections
clearSelection()
--Loop through all geometry and find if the geometry is inside the
--viewport limits
for g in geometry do
(
if ( g.pos.x >= minX and g.pos.x <= maxX and
g.pos.y >= minY and g.pos.y <= maxY) then
(
--add to selection
selectMore g
)
)
)
)
createdialog r_Test 200 40
Proud to be a PAKISTANI.