Share

3S Script objects

[3S]

The 3S Lua implementation is accessible as the 3S "script" function and its API only contain the functions documented in this chapter. No other Netfabb API calls are available in this implementation. Vice versa, the 3S API functionality is only available in the 3S module and nowhere else.

LUAStructure

Commands for the Lua Structure class

Properties

Property Read/write Type Description
cellcount read-only number cell.cellcount
simulateafterexecution read/write Boolean structure.simulateafterexecution=true;
surfacedatacount read-only number surface.surfacedatacount
volumedatacount read-only number volume.volumedatacount

Methods

Name Syntax Description
executescript structure:executescript(name: string); Executes script, no return value
findcell Cell:LUABaseCell = structure:findcell(name:string);
findvolumedata Volumedata:LUAVolumeData = structure:findvolumedata(name:string);
findsurfacedata Surface: LUASurfaceData = structure:findsurfacedata("surface");
getcell Cell:LUABaseCell structure:getcell(index:number);
getsurfacedata Surfacedata: LUASurfaceData = structure:getsurfacedata(index:Number);
getvolumedata Volumedata: LUAVolumeData = structure:getvolumedata(index:Number);

LUAVolume Data

Commands for the LUAVolume class

Properties

Property Read/write Type Description
fragmentcount read-only number volume.fragment
groupcount read-only number volume.groupcount
name read-only string volume.name="volume";
originx read-only number volume.originx
originy read-only number volume.originy
originz read-only number volume.originz
rastersizex read-only number volume.rastersizex
rastersizey read-only number volume.rastersizey
rastersizez read-only number volume.rastersizez
sizex read-only number volume.sizex
sizey read-only number volume.sizey
sizez read-only number volume.sizez
visible read/write Boolean volume.visible=true/false;

Methods

Name Syntax Description
addgroup Group: LUAVolumeDataGroup = volumedata:addgroup(name:String);
addmeshtoraster Part: LUAVolumeDataFragment = volumedata:addmeshtoraster();
addsurfacedata Volume: LUAVolumeDataFragment = volumedata:addsurfacedata(surfacefragment: SurfaceFragment, [xyoffset:Number, zoffset:Number]);
cleanup volumedata:cleanup(); No return value
findfragment Part: LUAVolumeDataFragment = volumedata:findfragment(name:String);
findgroup Group: LUAVolumeDataGroup = volumedata:findgroup(name:String);
getfragment Part: LUAVolumeDataFragment = volumedata:getfragment(name:String);
getgroup Group: LUAVolumeDataGroup = volumedata:getgroup(index:Number);
merge Part: LUAVolumeDataFragment = volumedata:merge(part1: LUAVolumeDataGroup LUAVolumeDataFragment, [...]);
reset volumedata:reset(); No return value
resize Part: LUAVolumeDataFragment = volumedata:resize(plusx, plusy, plusz, minusx, minusy, minusz:all Number);

LUAVolumeDataFragment

Commands for the LUAVolumeDataFragment class

Properties

Property Read/write Type Description
cell read/write object part.cell;
color read/write number 49906=part.color; part.color=49906;
name read/write string "part1"=part.name; part.name="part1";
rastercount read-only number part.rastercount;

Methods

Name Syntax Description
createexpansion part1: LUAVolumeDataFragment = part2:createexpansion(minusx:number, minuxy:number, minuxz:number, plusx:number, plusy:number, plusz:number, celloverride:Boolean);
createhull Skin: LUAVolumeDataFragment = part:createhull(minusx:number, minuxy:number, minuxz:number, plusx:number, plusy:number, plusz:number);
createprojection part1: LUAVolumeDataFragment = part1:createprojection(type:number, celloverwrite:Boolean); projection(number). 1 = +x, 2 = -x, 3 = +y, 4 = -y, 5 = +z ,6 = -z
divideblocks Blocks: LUAVolumeDataFragment = part:divideblocks(blocksizex:Number, blocksizey:Number, blocksizez:Number, translationx: Number, translation: Number, translationz:Number, fillblocks:Boolean);
generatechessboard part1: LUAVolumeDataFragment = part2:generatechessboard(blocksizex:Number, blocksizey:Number, blocksizez:Number, translationx: Number, translation: Number, translationz:Number)
movetogroup Ret:Boolean = volume:movetogroup(group1:LUAVolumeDataGroup);
randomize part1: LUAVolumeDataFragment = part2:randomize(blocksizex:Number, blocksizey:Number, blocksizez:Number, translationx: Number, translation: Number, translationz:Number, probability:Number)
remove part:remove();

LUAVolumeDataGroup

Commands for the LUAVolumeDataGroup class.

Properties

Property Read/write Type Description
fragmentcount read-only number volume.fragmentcount
name read/write string "volume1"=volume.name; volume.name="volume1";
subgroupcount read-only number Volume.subgroupcount

Methods

Name Syntax Description
addgroup Group: LUAVolumeDataGroup = volumedata:addgroupname:String);
findfragment Fragment: LUAVolumeDataFragment = volumedata:findfragment(name:string);
findgroup Group: LUAVolumeDataGroup = volumedata:findgroup(name:string);
getfragment Fragment: LUAVolumeDataFragment = volumedata:getfragment(index:number);
getgroup Group: LUAVolumeDataGroup = volumedata:getgroup(number:index);
movetogroup Ret:Boolean = part:movetogroup(group1: LUAVolumeDataGroup);

LUASurfaceData

Commands for the LUASurfaceData class.

Properties

Property Read/write Type Description
fragmentcount read-only number surface.fragmentcount
groupcount read-only number surface.groupcount
name read-only string "surface"=surface.name;
visible read/write Boolean surface.visible=true/false

Methods

Name Syntax Description
addgroup Group: LUASurfaceDataGroup = surfacedata:addgroup(group1:String);
addmesh Surface: LUASurfaceDataFragment = surfacedata:addmesh();
classifydownsides part=surfacedata:classifydownsides(angle:Number, minsizearea:Number, samplecomponents: Boolean);
classifyupsides part=surfacedata:classifyupsides(angle:Number, minsizearea:Number, samplecomponents: Boolean);
cleanup surfacedata:cleanup();
findfragment Surface: LUASurfaceDataFragment = surfacedata:findfragment("surface1:String");
findgroup Group: LUASurfaceDataGroup = surfacedata:findgroup("group1":String);
getfragment Surface: LUASurfaceDataFragment = surfacedata:getfragment(index:Number);
getgroup Group: LUASurfaceDataGroup = surfacedata:getgroup(index:Number);
reset surfacedata:reset();

LUASurfaceDataFragment

Commands for the LUASurfaceDataFragment class

Properties

Property Read/write Type Description
color read/write number 49906=surface.color; surface.color=49906;
name read/write string "Surface1"=surface.name; surface.name="Surface1";

Methods

Name Syntax Description
movetogroup Ret:Boolean = surface:movetogroup(group1: LUASurfaceDataGroup);

LUASurfaceDataGroup

Commands for the LUASurfaceDataGroup class

Properties

Property Read/write Type Description
fragmentcount read-only number surface.fragmentcount
name read/write string "surface1"=surface.name; surface.name="surface1";
subgroupcount read-only number surface.subgroupcount

Methods

Name Syntax Description
addgroup Group: LUASurfaceDataGroup = surfacedata:addgroup("group1":string);
findfragment Surface: LUASurfaceDataFragment = surfacedata:findfragment("fragment":String);
findgroup Group: LUASurfaceDataGroup = surfacedata:findgroup("group1":String);
getfragment Surface: LUASurfaceDataFragment = surfacedata:getfragment(index:Number);
getgroup Group: LUASurfaceDataGroup = surfacedata:getgroup(index:Number);
movetogroup Ret:Boolean = surface:movetogroup(group1: LUASurfaceDataGroup);

LUABaseCell

Commands for the LUABaseCell class

Properties

Property Read/write Type Description
name read-only string "cell"=cell.name;
sizex read-only number cell.sizex
sizey read-only number cell.sizey
sizez read-only number cell.sizez

Methods

None.

Was this information helpful?