Initializing 3D Canvas...

Overhangs & Supports

2 min read1 page

Critical Overhang Angle Detection: In additive manufacturing, molten filament or liquid resin cannot deposit onto empty air without sagging under gravity. By computing face normal dot products against the vertical build axis $Z$, any downward-facing surface exceeding the self-supporting threshold (typically $45^\circ$) is automatically tagged for sacrificial support column generation.

Overhang Angle Invariant:

1. Normal Dot Product: Downward inclination evaluated as n · [0, 0, 1] < -cos(90° - θ_crit). 2. Bridging Exception: Horizontal spans supported at both ends can bridge short distances without supports. 3. Part Orientation Optimization: Rotating the part in 3D can minimize total overhang area and surface scuffing.
python
1import numpy as np
2
3def classify_overhang_faces(faces, vertices, critical_angle_deg=45.0, build_dir=(0, 0, 1)):
4 """
5 Identifies mesh faces requiring temporary support structures.
6 A downward-facing face with normal n is critical if:
7 angle(n, -build_dir) < (90 - critical_angle_deg).
8 Equivalently: dot(n, build_dir) < -cos(radians(90 - critical_angle_deg)).
9 """
10 crit_rad = np.radians(90.0 - critical_angle_deg)
11 threshold = -np.cos(crit_rad)
12
13 overhang_indices = []
14 for idx, face in enumerate(faces):
15 v0, v1, v2 = vertices[face[0]], vertices[face[1]], vertices[face[2]]
16 normal = np.cross(v1 - v0, v2 - v0)
17 norm_len = np.linalg.norm(normal)
18 if norm_len < 1e-9:
19 continue
20 unit_norm = normal / norm_len
21
22 # Downward dot product check
23 if np.dot(unit_norm, build_dir) < threshold:
24 overhang_indices.append(idx)
25
26 return overhang_indices
Critical Angle (deg)
45.00
Part Tilt Angle (deg)
0.00
2 min read1 page

Tree Support Generation (Dendritic Scaffolding): Block or linear supports generate solid walls from bed to part, wasting enormous material and leaving harsh surface scars. Tree supports grow slender, organic branches upwards from the build plate, merging in mid-air to touch the model only at needle-point contact tips that snap off cleanly by hand.

Tree Support Topology:

1. Needle Contact Point: Conical tips touch the model with minimal contact cross-section. 2. Branch Clustering: Nearby support tips merge into thicker parent trunks as they descend. 3. Part Avoidance: Branches steer around protruding model geometry to anchor on the build plate.
python
1class TreeNode:
2 def __init__(self, pos):
3 self.pos = pos
4 self.parent = None
5 self.children = []
6
7def generate_tree_supports(overhang_points, bed_z=0.0, max_branch_angle=35.0):
8 """
9 Generates dendritic (tree) support structure merging downward towards the build bed.
10 Branches cluster together if their collision-free descent cones intersect.
11 """
12 import math
13 roots = []
14 # Cluster points hierarchically downwards
15 # Leaves are at overhang_points, trunk anchors to print bed at bed_z
16 return "Tree Support Hierarchy"
Overhang Contact Tips
4.00