Script34_clipping.lua
-- Lua example for Autodesk Netfabb 2021.0
-- Demonstrates clip plane control
BoundingBox = tray.outbox
Dialog = application:createdialog()
Dialog.caption = "Clipping"
Dialog.translatecaption = false
Groupbox = Dialog:addgroupbox()
Groupbox.caption = "Clipping"
Groupbox.translate = false
Axis = Groupbox:adddropdown()
Axis.caption = "Axis"
Axis.translate = false
Axis.captionwidth = 100
Axis:additem("X", 0, 0, false)
Axis:additem("Y", 1, 1, false)
Axis:additem("Z", 2, 2, false)
Axis.onchange = "scrollbar_change"
HalfSpace = Groupbox:adddropdown()
HalfSpace.caption = "Halfspace"
HalfSpace.translate = false
HalfSpace.captionwidth = 100
HalfSpace:additem("None", 0, 0, false)
HalfSpace:additem("Both", 1, 1, false)
HalfSpace:additem("Positive", 2, 2, false)
HalfSpace:additem("Negative", 3, 3, false)
HalfSpace.onchange = "scrollbar_change"
Contour = Groupbox:addcheckbox()
Contour.caption = "Contour enabled"
Contour.translate = false
Space = Groupbox:adddropdown()
Space.caption = "Space"
Space.translate = false
Space.captionwidth = 100
Space:additem("Model", 0, 0, false)
Space:additem("World", 1, 1, false)
Space:additem("View", 2, 2, false)
Space.onchange = "scrollbar_change"
Distance = Groupbox:addscrollbar()
Distance.max = math.max(BoundingBox.maxx, BoundingBox.maxy, BoundingBox.maxz)
Distance.height = 25
Distance.onchange = "scrollbar_change"
Edit = Groupbox:addedit()
Edit.caption = "Distance"
Edit.translate = false
Edit.captionwidth = 100
Edit.text = "0"
Button = Groupbox:addbutton()
Button.caption = "Screenshot"
Button.translate = false
Button.onclick = "screenshot_click"
function scrollbar_change()
Edit.text = tostring(Distance.position)
local Axis = Axis.selecteditem
local Halfspace = hsNone
if HalfSpace.selecteditem == 1 then
Halfspace = hsBoth
elseif HalfSpace.selecteditem == 2 then
Halfspace = hsPositive
elseif HalfSpace.selecteditem == 3 then
Halfspace = hsNegative
end
local Space = csModel
if Space.selecteditem == 1 then
Space = csWorld
elseif Space.selecteditem == 2 then
Space = csView
end
Distance = Distance.position
Contour = Contour.checked
tray:setclipplane(Axis, Halfspace, Space, Distance, Contour)
end
function screenshot_click()
local FileName = system:showsavedialog("png")
if FileName ~= "" then
local Options = system:createjson()
Options:loadfromstring('{"show_horizontalruler":false,"show_coordsystem":false,"show_verticalruler":false}')
local Image = system:createscreenshot(1920, 1080, Options)
Image:saveto(FileName)
end
end
Dialog:show()