3.1 KiB
3.1 KiB
Module Reference
This file provides a mapping of modules to their primary responsibilities and key symbols.
Root
-
__init__.py:- Entry Point: Extension registration (
register,unregister). - Node Tree:
SLICETREE_NodeTreeclass. - Sockets: Definitions for all
SLICESOCK_*classes. - Nodes: Definitions for all
SLICENODE_*classes. - Evaluation Engine:
resolve_input(): Recursively evaluates linked sockets._resolve_output(): Computes node outputs with a caching system (_EvalCache) to avoid redundant calculations._follow_reroute(): Handles Blender's Reroute nodes during evaluation.
- Entry Point: Extension registration (
-
registry.py:- Auto-Registration: Utility to track classes decorated with
@register_class.
- Auto-Registration: Utility to track classes decorated with
-
blender_manifest.toml:- Metadata for the Blender Extension platform.
-
pyproject.toml:- Standard Python project configuration.
/core (Geometry & Slicing)
-
slice.py:slice_at_range(): Top-level slicing function that iterates through Z-heights.slice_at_z(): Vectorized plane-mesh intersection using NumPy.align_path_seam_sharpest(): High-performance vectorized heuristic that positions the start vertex (seam) of closed polygon loops at the sharpest concave angle (inner corner), with fallback to sharpest angle overall.SlicePaths.align_seams(): Method onSlicePathsto align path seams to sharpest concave angles while preserving per-vertex attributes and metadata.Pather: Class that converts toolpaths into G-code strings. Supports per-segment extrusion rates, feedrates, and custom extra attributes.segments_to_slice(): Utility to convert raw intersection segments into continuous paths (closed polygons are processed via Pyclipper, open paths remain open).link_segments(): Logic for joining loose segments into continuous paths.buffer_slice(): Offset utility using PyclipperOffset. Supports rotated offsetting.infill_slice(): Generates rotated grid or rectilinear infill patterns, ensuring layer-to-layer consistency.boolean_slice(): Performs 2D boolean operations (Union, Intersection, etc.) on slice sets.
-
geometry.py:- Geometry utility functions.
/core/pdf_exporter (PDF Export & Technical Marking Engine)
sa2_measures.py:render_sa2_measures_pdf(): ISO 129-1 technical marking engine.extract_slicing_object_features(): Feature detection for circular bores (Ø), arcs (R), chamfers (C), and steps.
writer.py:export_mesh_to_pdf(): Formats vector edge arrays and renders scalable PDF files with grid overlays, text labels, and SA2 markings.
/infra (Blender Integration)
-
blender_mesh_capture.py:SlicingObject: Represents a single mesh as a NumPy triangle array.capture_mesh_edges(): Extracts edges from a Blender mesh for path-based workflows. Supports capturing extra per-vertex attributes.
-
blender_slice_nodes_generic.py:- Base classes for NodeSlicer nodes (
SliceNode) and sockets (SliceNodeSocket). - Core evaluation logic (
resolve_input).
- Base classes for NodeSlicer nodes (