Sphere¶
In one sentence: Create a parametric sphere (or spherical segment) whose radius and angular extents can be changed at any time.
Overview¶
Workbench: Part · Menu: Part → Primitives → Sphere
Toolbar: Part Primitives · Shortcut: none
The Sphere primitive creates a full sphere or a portion of a sphere defined by two latitude angles and a longitude sweep. The radius is a live parameter.
Intuition¶
Full spheres appear less often than cylinders in mechanical work but are common in mould-making, ergonomic grips, optical components, and ball joints. The partial sphere parameters (Angle1, Angle2, Angle3) let you create caps, segments, and sectors without any Boolean operations.
When to use it¶
- Ball or dome shapes.
- Convex end caps for pressure vessels.
- Decorative hemispherical features.
Parameters¶
| Parameter | Type | Default | Description |
|---|---|---|---|
| Radius | Distance | 5 mm | Sphere radius |
| Angle1 | Angle | −90° | Start latitude (−90° = south pole) |
| Angle2 | Angle | 90° | End latitude (90° = north pole) |
| Angle3 | Angle | 360° | Longitude sweep (360° = full sphere) |
| Placement | Placement | Identity | Position and orientation |
Latitude angles (Angle1, Angle2)¶
Angle1 = −90°,Angle2 = 90°→ full sphereAngle1 = 0°,Angle2 = 90°→ upper hemisphereAngle1 = −90°,Angle2 = 0°→ lower hemisphere- Any range in between → a spherical zone (band)
Longitude angle (Angle3)¶
360°→ full revolution (no cut face)180°→ half-sphere sector (one flat face on the cut plane)
Step-by-step walkthrough¶
- Part → Primitives → Sphere.
- A 5 mm radius sphere appears at the origin.
- In the Data panel, set Radius to your value.
- Leave Angle1/Angle2/Angle3 at defaults for a full sphere.
- Adjust Placement as needed.
Common mistakes and pitfalls¶
Centre at origin, not tangent to plane
The sphere centre is at the Placement origin. To rest the sphere on the XY plane (touching it at the south pole), set Placement Z to +Radius.
Python API¶
import FreeCAD as App
doc = App.newDocument()
# Full sphere
sph = doc.addObject("Part::Sphere", "Ball")
sph.Radius = 10.0 # mm
doc.recompute()
print(f"Volume: {sph.Shape.Volume:.2f} mm³") # ≈ 4188.79
# Upper hemisphere
hemi = doc.addObject("Part::Sphere", "Hemisphere")
hemi.Radius = 10.0
hemi.Angle1 = 0.0 # start at equator
hemi.Angle2 = 90.0 # end at north pole
doc.recompute()
print(f"Hemisphere volume: {hemi.Shape.Volume:.2f} mm³") # ≈ 2094.40
See also¶
- Cylinder — cylindrical primitive
- Torus — ring-shaped primitive
- Primitives dialog — less common shapes (ellipse, wedge, …)