19 KiB
19 KiB
| 1 | Type | Category | Node Name | Class Name | File | Archetype | First Input Socket | Other Input Sockets | Output Socket(s) | First Input Shape | Output Shape | Single Item Behavior | List Behavior |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | Object | List Joiners (New) | Objects to List | SLICENODE_ObjectsToList | core/nodeslicer/nodes/inputs.py | List Joiner | Multi-input NodeSocketObject (Object) | None | NodeSocketObject (Objects) | Standard / LIST | Fixed LIST | Wraps single item into a 1-element list [Obj1] | Flattens incoming lists and combines all objects into list[bpy.types.Object]. Output appearance is LIST. |
| 3 | Mesh | List Joiners (New) | Meshes to List | SLICENODE_MeshesToList | core/nodeslicer/nodes/mesh.py | List Joiner | Multi-input SLICESOCK_Mesh (Mesh) | None | SLICESOCK_Mesh (Meshes) | Standard / LIST | Fixed LIST | Wraps single mesh into a 1-element list [Mesh1] | Flattens incoming lists and bundles all meshes into list[SlicingCollection]. Output appearance is LIST. |
| 4 | Path | List Joiners (New) | Paths to List | SLICENODE_PathsToList | core/nodeslicer/nodes/path.py | List Joiner | Multi-input SLICESOCK_Paths (Paths) | None | SLICESOCK_Paths (Paths) | Standard / LIST | Fixed LIST | Wraps single path into a 1-element list [Path1] | Flattens incoming lists and bundles all toolpaths into list[SlicePaths]. Output appearance is LIST. |
| 5 | Gcode | List Joiners (New) | Gcodes to List | SLICENODE_GcodesToList | core/nodeslicer/nodes/gcode.py | List Joiner | Multi-input NodeSocketString (Gcode) | None | NodeSocketString (Gcode) | Standard / LIST | Fixed LIST | Wraps single G-code string into a 1-element list [Gcode1] | Flattens incoming lists and bundles all G-code blocks into list[str]. Output appearance is LIST. |
| 6 | Mesh | Existing Joiners | Join Mesh Parts | SLICENODE_JoinMesh | core/nodeslicer/nodes/mesh.py | Data Joiner (Flattener) | Multi-input SLICESOCK_Mesh (Mesh) | None | SLICESOCK_Mesh (Mesh) | Dynamic (Displays LIST if linked to list) | Standard (CIRCLE) | Merges multiple mesh inputs into one SlicingCollection | Flattens incoming lists when joining (e.g. [M1, M2] + M3 -> M1 + M2 + M3). Output is a single merged mesh (CIRCLE). |
| 7 | Mesh | Existing Joiners | Join Mesh Groups | SLICENODE_JoinMeshGroups | core/nodeslicer/nodes/mesh.py | Data Joiner (Flattener) | Multi-input SLICESOCK_Mesh (Mesh) | None | SLICESOCK_Mesh (Mesh) | Dynamic (Displays LIST if linked to list) | Standard (Group) | Bundles multiple SlicingCollections into a SlicingGroup | Flattens incoming lists of collections into a single SlicingGroup. |
| 8 | Gcode | Existing Joiners | Join Gcode | SLICENODE_JoinGcode | core/nodeslicer/nodes/gcode.py | Data Joiner (Flattener) | Multi-input NodeSocketString (Gcode) | None | NodeSocketString (Gcode) | Dynamic (Displays LIST if linked to list) | Standard (CIRCLE) | Concatenates multiple G-code strings with newline '\n' | Flattens incoming G-code lists and strings, concatenating all sequentially into a single G-code string (CIRCLE). |
| 9 | Object | Geometry & Mesh | Get Mesh | SLICENODE_GetMesh | core/nodeslicer/nodes/mesh.py | Element-wise Operator | NodeSocketObject (Object) | include_children (prop) | SLICESOCK_Mesh (Mesh) | Dynamic (Changes to LIST if input is list) | Dynamic (Changes to LIST if input is list) | Converts single Object into SlicingCollection | First input is list [Obj1, Obj2, ...]. Converts each element into SlicingCollection. Output is [Mesh1, Mesh2, ...]. Both sockets switch to LIST. |
| 10 | Object | Path Processing | Get Paths | SLICENODE_GetPaths | core/nodeslicer/nodes/path.py | Element-wise Operator | NodeSocketObject (Object) | Extrusion/Feedrate/Extra Attributes (cannot be list) | SLICESOCK_Paths (Paths) | Dynamic (Changes to LIST if input is list) | Dynamic (Changes to LIST if input is list) | Extracts mesh edges as SlicePaths | First input is list [Obj1, Obj2, ...]. Extracts toolpaths for each object using the same attribute settings. Output is [Paths1, Paths2, ...]. Both sockets switch to LIST. |
| 11 | Mesh | Geometry & Mesh | Rename Mesh | SLICENODE_RenameMesh | core/nodeslicer/nodes/mesh.py | Element-wise Operator | SLICESOCK_Mesh (Geometry) | NodeSocketString Name (cannot be list) | SLICESOCK_Mesh (Geometry) | Dynamic (Changes to LIST if input is list) | Dynamic (Changes to LIST if input is list) | Renames geometry using name template | First input is list [Mesh1, Mesh2, ...]. Renames each mesh using the same name template. Output is [Renamed1, Renamed2, ...]. Sockets switch to LIST. |
| 12 | Mesh | Geometry & Mesh | Transform Geometry | SLICENODE_TransformGeometry | core/nodeslicer/nodes/mesh.py | Element-wise Operator | SLICESOCK_Geometry (Geometry) | Translation, Rotation, Scale (cannot be list) | SLICESOCK_Geometry (Geometry) | Dynamic (Changes to LIST if input is list) | Dynamic (Changes to LIST if input is list) | Transforms single Mesh or Paths by T, R, S | First input is list [G1, G2, ...]. Transforms each item using the same T, R, S values. Output is [T(G1), T(G2), ...]. Sockets switch to LIST. |
| 13 | Mesh | Geometry & Mesh | Drop Geometry | SLICENODE_DropGeometry | core/nodeslicer/nodes/mesh.py | Element-wise Operator | SLICESOCK_Mesh (Mesh) | NodeSocketFloat Z (cannot be list) | SLICESOCK_Mesh (Mesh), NodeSocketVector (Translation) | Dynamic (Changes to LIST if input is list) | Dynamic (Both outputs change to LIST if input is list) | Translates mesh to target minimum Z; outputs dropped mesh and (0,0,dz) | First input is list [Mesh1, Mesh2, ...]. Drops each mesh independently to the same target Z. Outputs are [Dropped1, Dropped2, ...] and [T1, T2, ...]. Sockets switch to LIST. |
| 14 | Mesh | Geometry & Mesh | Separate Mesh | SLICENODE_SeparateMesh | core/nodeslicer/nodes/mesh.py | Element-wise Operator | SLICESOCK_Mesh (Mesh) | Attribute (String), Value (Float) (cannot be list) | Selection (Mesh), Inverted (Mesh) | Dynamic (Changes to LIST if input is list) | Dynamic (Both outputs change to LIST if input is list) | Splits collection into Selection and Inverted based on attribute condition | First input is list [Mesh1, Mesh2, ...]. Applies separation to each mesh using same attribute/value. Outputs are Selection: [Sel1, Sel2, ...] and Inverted: [Inv1, Inv2, ...]. Sockets switch to LIST. |
| 15 | Mesh | Geometry & Mesh | Separate Mesh by Range | SLICENODE_SeparateMeshByRange | core/nodeslicer/nodes/mesh.py | Element-wise Demux | SLICESOCK_Mesh (Mesh) | Attribute, Start, End (cannot be list) | Dynamic numeric sockets '0', '1', ... | Dynamic (Changes to LIST if input is list) | Dynamic (All outputs change to LIST if input is list) | Splits single mesh into multiple output sockets across integer range Start..End | First input is list [Mesh1, Mesh2, ...]. For each range output socket, delivers list of matching parts across all meshes: e.g. socket '0' gets [Mesh1_0, Mesh2_0, ...]. Outputs switch to LIST. |
| 16 | Mesh | Geometry & Mesh | Arrange Slicing Group | SLICENODE_ArrangeMesh | core/nodeslicer/nodes/mesh.py | Multi-Entity Packer | SLICESOCK_Mesh (Slicing Group) | Bed X, Bed Y, Spacing, Method, Allow Rotations (cannot be list) | SLICESOCK_Mesh (Slicing Group) | Dynamic (Changes to LIST if input is list) | Dynamic (Changes to LIST if input is list) | Nests collections in SlicingGroup on build plate using libnest2d | First input is list [Mesh1, Mesh2, ...]. Packs all meshes in the list simultaneously on the build plate without collisions. Output is [Mesh1_packed, Mesh2_packed, ...]. Sockets switch to LIST. |
| 17 | Mesh | PDF Exporter | Assign PDF Properties | SLICENODE_AssignPdfProperties | core/nodeslicer/nodes/mesh.py | Element-wise Operator | SLICESOCK_Mesh (Geometry) | Line Width, Line Color, Show Name (cannot be list) | SLICESOCK_Mesh (Geometry) | Dynamic (Changes to LIST if input is list) | Dynamic (Changes to LIST if input is list) | Attaches stroke line width and color metadata to geometry | First input is list [G1, G2, ...]. Attaches the same stroke properties to each item in the list. Output is [G1', G2', ...]. Sockets switch to LIST. |
| 18 | Mesh | PDF Exporter | Assign PDF Object Properties | SLICENODE_AssignPropertyToObject | core/nodeslicer/nodes/mesh.py | Element-wise Operator | SLICESOCK_Mesh (Geometry) | Settings (cannot be list) | SLICESOCK_Mesh (Geometry) | Dynamic (Changes to LIST if input is list) | Dynamic (Changes to LIST if input is list) | Attaches property callouts to geometry for PDF drawing tables | First input is list [G1, G2, ...]. Attaches property callouts to each item in the list. Output is [G1', G2', ...]. Sockets switch to LIST. |
| 19 | Mesh | Path Processing | Slice Shells | SLICENODE_SliceShells | core/nodeslicer/nodes/path.py | Element-wise Operator | SLICESOCK_Mesh (Mesh) | Layer Height, First Layer Height, Rotation, Ignore Holes (cannot be list) | SLICESOCK_Paths (Paths) | Dynamic (Changes to LIST if input is list) | Dynamic (Changes to LIST if input is list) | Slices single mesh into 2D SlicePaths polygons | First input is list [Mesh1, Mesh2, ...]. Slices each mesh independently using the same layer parameters. Output is [Paths1, Paths2, ...]. Sockets switch to LIST. |
| 20 | Mesh | PDF Exporter | Mesh to PDF | SLICENODE_MeshToPdf | core/nodeslicer/nodes/output.py | Batch Sink | SLICESOCK_Mesh (Geometry) or SLICESOCK_Paths (Paths) | Folder, Settings, Template, Header, Margins (cannot be list) | Execution Link | Dynamic (Displays LIST if input is list) | Standard Execution Link | Renders orthographic 1:1 scale vector PDF drawing | First input is list [Geom1, Geom2, ...]. Renders and exports a separate PDF file for each item using the same settings and naming template. |
| 21 | Path | Path Processing | Buffer Shells | SLICENODE_BufferShells | core/nodeslicer/nodes/path.py | Element-wise Operator | SLICESOCK_Paths (Paths) | Distance, Rotation, Miter (cannot be list) | SLICESOCK_Paths (Paths) | Dynamic (Changes to LIST if input is list) | Dynamic (Changes to LIST if input is list) | Offsets 2D closed polygon boundaries by distance | First input is list [P1, P2, ...]. Buffers each path block using the same distance. Output is [Buf(P1), Buf(P2), ...]. Sockets switch to LIST. |
| 22 | Path | Path Processing | Buffer Curve | SLICENODE_BufferCurve | core/nodeslicer/nodes/path.py | Element-wise Operator | SLICESOCK_Paths (Paths) | Distance, Cap Style, Join Style, Single Sided, Rotation (cannot be list) | SLICESOCK_Paths (Paths) | Dynamic (Changes to LIST if input is list) | Dynamic (Changes to LIST if input is list) | Dilates open or closed curves by distance | First input is list [P1, P2, ...]. Buffers each curve using the same parameters. Output is [Buf(P1), Buf(P2), ...]. Sockets switch to LIST. |
| 23 | Path | Path Processing | Offset Curve | SLICENODE_OffsetCurve | core/nodeslicer/nodes/path.py | Element-wise Operator | SLICESOCK_Paths (Paths) | Distance, Join Style, Rotation (cannot be list) | SLICESOCK_Paths (Paths) | Dynamic (Changes to LIST if input is list) | Dynamic (Changes to LIST if input is list) | Generates parallel offset curves using Shapely | First input is list [P1, P2, ...]. Offsets each curve using the same distance. Output is [Off(P1), Off(P2), ...]. Sockets switch to LIST. |
| 24 | Path | Path Processing | Path Offset | SLICENODE_PathOffset | core/nodeslicer/nodes/path.py | Element-wise Operator | SLICESOCK_Paths (Paths) | Offset Vector (cannot be list) | SLICESOCK_Paths (Paths) | Dynamic (Changes to LIST if input is list) | Dynamic (Changes to LIST if input is list) | Translates toolpaths by 3D XYZ vector | First input is list [P1, P2, ...]. Translates each path set by the same vector. Output is [P1 + V, P2 + V, ...]. Sockets switch to LIST. |
| 25 | Path | Path Processing | Rotate Path | SLICENODE_RotatePath | core/nodeslicer/nodes/path.py | Element-wise Operator | SLICESOCK_Paths (Paths) | Angle, Center (cannot be list) | SLICESOCK_Paths (Paths) | Dynamic (Changes to LIST if input is list) | Dynamic (Changes to LIST if input is list) | Rotates toolpaths around Z axis at center point | First input is list [P1, P2, ...]. Rotates each path set by the same angle around the center. Output is [Rot(P1), Rot(P2), ...]. Sockets switch to LIST. |
| 26 | Path | Path Processing | Buffer Shells Multiple | SLICENODE_BufferShellsMultiple | core/nodeslicer/nodes/path.py | Element-wise Operator | SLICESOCK_Paths (Paths) | Distance, Width Step, Count, Rotation, Miter (cannot be list) | Paths, Outermost Path, Innermost Path | Dynamic (Changes to LIST if input is list) | Dynamic (All 3 outputs change to LIST if input is list) | Generates multiple concentric perimeter passes, plus outermost and innermost boundaries | First input is list [P1, P2, ...]. Computes concentric passes per item using same distance/step/count. Outputs are [Passes1, Passes2, ...], [Out1, Out2, ...], [In1, In2, ...]. All outputs switch to LIST. |
| 27 | Path | Path Processing | Infill | SLICENODE_Infill | core/nodeslicer/nodes/path.py | Element-wise Operator | SLICESOCK_Paths (Paths) | Density, Infill Rotation, Layer Rotation, Infill Type (cannot be list) | SLICESOCK_Paths (Paths) | Dynamic (Changes to LIST if input is list) | Dynamic (Changes to LIST if input is list) | Generates infill pattern clipped to boundary paths | First input is list [P1, P2, ...]. Generates infill for each boundary block using the same density and rotation. Output is [Inf(P1), Inf(P2), ...]. Sockets switch to LIST. |
| 28 | Path | Path Processing | Overhang Mask | SLICENODE_OverhangMask | core/nodeslicer/nodes/path.py | Element-wise Operator | SLICESOCK_Paths (Paths) | Tolerance (cannot be list) | SLICESOCK_Paths (Paths) | Dynamic (Changes to LIST if input is list) | Dynamic (Changes to LIST if input is list) | Calculates downward accumulated overhang mask across layers | First input is list [P1, P2, ...]. Calculates overhang mask for each path set using the same tolerance. Output is [Mask(P1), Mask(P2), ...]. Sockets switch to LIST. |
| 29 | Path | Path Processing | Simplify Paths | SLICENODE_SimplifyPaths | core/nodeslicer/nodes/path.py | Element-wise Operator | SLICESOCK_Paths (Paths) | Tolerance, Preserve Topology (cannot be list) | SLICESOCK_Paths (Paths) | Dynamic (Changes to LIST if input is list) | Dynamic (Changes to LIST if input is list) | Simplifies toolpath vertices using Douglas-Peucker algorithm | First input is list [P1, P2, ...]. Simplifies each path set using the same tolerance. Output is [Simp(P1), Simp(P2), ...]. Sockets switch to LIST. |
| 30 | Path | Path Processing | Seam Placement | SLICENODE_SeamPlacement | core/nodeslicer/nodes/path.py | Primary-List Operation | SLICESOCK_Paths (Paths) [Can be a list] | SLICESOCK_Mesh (Cutting Mesh), Seam Staggering, Mode, Acquire Transforms [Cannot be a list] | SLICESOCK_Paths (Paths) | Dynamic (Changes to LIST if input is list) | Dynamic (Changes to LIST if input is list) | Repositions start seams of closed paths to intersection points with cutting mesh | First input is list [P1, P2, ...]. Other inputs cannot be a list. The seam placement operation is done for each element P_i of the list using the same cutting mesh and parameters. Output is [P1', P2', ...]. Sockets switch to LIST. |
| 31 | Path | Path Processing | Path Operations | SLICENODE_PathOperations | core/nodeslicer/nodes/path.py | Primary-List Operation | Input 0: SLICESOCK_Paths (Paths) [Can be a list] | Inputs 1..N: SLICESOCK_Paths (Paths), connect_along_boundary [Cannot be a list] | SLICESOCK_Paths (Paths) | Dynamic (Changes to LIST if input is list) | Dynamic (Changes to LIST if input is list) | Performs Zip, Extend, Max Coverage (Union), Min Coverage, Intersect, Subtract, or XOR across inputs | The first input can be a list [P1, P2, ...], and the other inputs cannot be a list (Q1, Q2...). The operation (Zip, Extend, Union, Subtract, Intersect, etc.) is done for each element of the list using the same other inputs: [op(P1, Q...), op(P2, Q...), ...]. Output is [R1, R2, ...]. Sockets switch to LIST. |
| 32 | Path | G-code Processing | Paths to Gcode | SLICENODE_PathsToGcode | core/nodeslicer/nodes/gcode.py | Element-wise Operator | SLICESOCK_Paths (Paths) | SLICESOCK_Intrinsics (Intrinsics), Header (cannot be list) | NodeSocketString (Gcode) | Dynamic (Changes to LIST if input is list) | Dynamic (Changes to LIST if input is list) | Converts single SlicePaths into standard G-code string via Pather | First input is list [P1, P2, ...]. Converts each toolpath block into a G-code string using the same intrinsics. Output is [Gcode1, Gcode2, ...]. Sockets switch to LIST. |
| 33 | Gcode | G-code Processing | Gcode Regex Replace | SLICENODE_GcodeRegexReplace | core/nodeslicer/nodes/gcode.py | Element-wise Operator | NodeSocketString (Gcode) | Find, Replace (cannot be list) | NodeSocketString (Gcode) | Dynamic (Changes to LIST if input is list) | Dynamic (Changes to LIST if input is list) | Runs regex find & replace on G-code string | First input is list [G1, G2, ...]. Runs regex search and replace on each G-code string using the same pattern. Output is [G1', G2', ...]. Sockets switch to LIST. |
| 34 | Gcode | Action & I/O | Gcode to File | SLICENODE_GcodeToFile | core/nodeslicer/nodes/output.py | Batch Sink | NodeSocketString (Gcode) [Can be a list or multi-input] | Folder, Name (cannot be list) | Execution Link | Dynamic (Displays LIST if input is list) | Standard Execution Link | Saves G-code string to .gcode or .bgcode file on disk | First input is list [G1, G2, ...]. Saves a separate file for each element using the same folder/name template with zero-padded numbering (Part00.gcode, Part01.gcode) or metadata names. |
| 35 | Gcode | Action & I/O | Gcode to Text Block | SLICENODE_GcodeToTextBlock | core/nodeslicer/nodes/output.py | Batch Sink | NodeSocketString (Gcode) [Can be a list] | Text Block Name (cannot be list) | Execution Link | Dynamic (Displays LIST if input is list) | Standard Execution Link | Writes G-code string to an active Blender text editor data-block | First input is list [G1, G2, ...]. Writes separate numbered Blender text blocks (NodeSlicer_00.gcode, NodeSlicer_01.gcode) using the base name. |
| 36 | Gcode | Action & I/O | Start Print | SLICENODE_StartPrint | core/nodeslicer/nodes/output.py | Batch Sink | NodeSocketString (Gcode) [Can be a list] | SLICESOCK_Printer (cannot be list) | Execution Link | Dynamic (Displays LIST if input is list) | Standard Execution Link | Uploads and starts print on network printer | First input is list [G1, G2, ...]. Sequentially queues and sends each G-code print job to the target printer using the same printer configuration. |
| 37 | Gcode | Action & I/O | Baserow Submit | SLICENODE_BaserowSubmit | core/nodeslicer/nodes/output.py | Batch Sink | NodeSocketString (Gcode) [Can be a list or multi-input] | Settings, Host, Token, Table ID, Record ID (cannot be list) | Execution Link | Dynamic (Displays LIST if input is list) | Standard Execution Link | Uploads G-code attachment and creates/updates row in Baserow database | First input is list [G1, G2, ...]. Submits each G-code as a separate record and attachment in Baserow using the same database credentials. |
| 38 | Gcode | Action & I/O | Airtable Submit | SLICENODE_AirtableSubmit | core/nodeslicer/nodes/output.py | Batch Sink | NodeSocketString (Gcode) [Can be a list or multi-input] | Settings, PAT File, Base ID, Table ID, Record ID (cannot be list) | Execution Link | Dynamic (Displays LIST if input is list) | Standard Execution Link | Uploads G-code attachment and creates/updates row in Airtable base | First input is list [G1, G2, ...]. Submits each G-code as a separate record and attachment in Airtable using the same database credentials. |
| 39 | Gcode | Action & I/O | Gcode to Preview Mesh | SLICENODE_GcodeToMesh | core/nodeslicer/nodes/preview.py | Batch Sink | NodeSocketString (Gcode) [Can be a list or multi-input] | Name, show_e_0 (cannot be list) | Execution Link | Dynamic (Displays LIST if input is list) | Standard Execution Link | Decodes toolpaths and reconstructs 3D wireframe preview mesh object in Blender | First input is list [G1, G2, ...]. Generates a separate preview mesh object in the scene (Preview00, Preview01, ...) for each G-code in the list. |
| 40 | Gcode | Action & I/O | Printer List | SLICENODE_PrinterList | core/nodeslicer/nodes/system.py | Batch Sink | Dynamic G-code sockets per printer [Can be a list] | Config File JSON (cannot be list) | Execution Link | Dynamic (Displays LIST if input is list) | Standard Execution Link | Sends G-code to corresponding printer defined in config JSON | If a printer socket receives a list [G1, G2, ...], queues and dispatches all jobs for that printer. |