2.6 KiB
2.6 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.
- Error Handling:
NodeExceptionfor user-facing evaluation errors.
- Entry Point: Extension registration (
-
registry.py:- Auto-Registration: Utility to track classes decorated with
@register_class. - Resource Management: Logic for dynamic icon and timer registration.
- Auto-Registration: Utility to track classes decorated with
-
blender_manifest.toml:- Metadata for the Blender Extension platform.
- Lists required wheels (Shapely, PyClipper) for different platforms.
-
pyproject.toml:- Standard Python project configuration.
- Lists development and runtime dependencies.
/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.Pather: Class that converts toolpaths into G-code strings. Handles layer change comments and extrusion calculations.segments_to_slice(): Utility to convert raw intersection segments into closed loops using Pyclipper and the Even-Odd fill rule.link_segments(): Logic for joining loose segments into continuous paths.buffer_slice(): Offset utility using PyclipperOffset. Groups paths by Z-height to ensure independent buffering of layers.
-
geometry.py:crc32_array(): High-performance checksum generation for NumPy arrays, used for internal caching and data validation.
/infra (Blender Integration)
-
blender_mesh_capture.py:SlicingObject: Represents a single mesh as a NumPy triangle array. Computes bounding boxes and checksums.SlicingCollection/SlicingGroup: Hierarchical wrappers for managing multiple meshes and their metadata (e.g., Wipe Tower location).objects_to_tris(): Performance-critical function that extracts mesh data from Blender objects into NumPy arrays usingforeach_get. Handles world-space transformation and unit scaling.
-
blender_bridge.py:- Hierarchy Utilities: Helpers like
get_all_children()for traversing Blender's object tree.
- Hierarchy Utilities: Helpers like