Share

Script47_MinimizeBoundingBox.lua

-- Lua example for Autodesk Netfabb 2025.0

-- This script demonstrates minimizing the bounding box

insertMeshesIntoTable = function(meshgroup, Outtable)
    for mesh_index = 0, meshgroup.meshcount - 1 do
        local traymesh = meshgroup:getmesh(mesh_index)
        table.insert(Outtable, traymesh)
    end
    for group_index = 0, meshgroup.groupcount - 1 do
        subgroup = meshgroup:getsubgroup(group_index)
        insertMeshesIntoTable(subgroup, Outtable)
    end
end

-- Get root meshgroup from tray
root = tray.root

-- Collect meshes in the tray
meshes = {}
insertMeshesIntoTable(root, meshes)

-- Iterate over meshes in tray
for i, traymesh in pairs(meshes) do
    group = traymesh.parent

    local luamesh = traymesh.mesh
    luamesh:applymatrix(traymesh.matrix)

    -- Minimize Outbox Options
    -- 1) Volume
    -- 2) VolumeFlat
    -- 3) HeightBase
    luamesh:minimizeoutbox("Volume")

    -- Creates a new mesh
    newmesh = group:addmesh(luamesh, traymesh.name, tonumber(traymesh.color, 16))
    removemesh = group:removemesh(traymesh)
end

Was this information helpful?