3.1 KiB
make_ball_bearing_rassembly
API Definition
def make_ball_bearing_rassembly(bore_diameter: float, outer_diameter: float, bearing_width: float, ball_diameter: float, ball_count: Optional[int] = None, raceway_clearance: float = 0.02, edge_chamfer: float = 0.0, assembly_id: str = 'ball_bearing', drive_angle_degrees: Optional[float] = None) -> Assembly
Source: std/bearing.py
Import Surface
- standard library:
import simplecadapi as scadthenscad.std.bearing.make_ball_bearing_rassembly(...); direct submodule import:from simplecadapi.std.bearing import make_ball_bearing_rassembly
Description
Create a parameterized radial ball bearing assembly.
This factory returns an Assembly, not a merged Solid, because a bearing
has useful internal structure. The returned assembly contains stable
component ids outer_ring, inner_ring, and ball_00, ball_01, ... .
The inner and outer rings each carry an axis connector, and the assembly
includes one revolute constraint named inner_outer_revolute between those
two axes. Use bearing.get_component("inner_ring").item.body to access
the inner-ring geometry directly, or use connector refs such as
make_connector_ref_rconnectorref("inner_ring", "axis") when adding shaft
or housing constraints to the same assembly.
The returned bearing assembly also forwards public assembly-level connectors
inner_axis and outer_axis from inner_ring.axis and outer_ring.axis.
Parent assemblies can constrain to those connectors without depending on the
bearing's internal component structure. These public axes are offset to the
bearing center plane.
The returned bearing is not grounded. Ground the parent assembly's housing,
shaft, or fixture components explicitly; the standard bearing assembly does
not emit GroundedJoint objects that would lock a parent mechanism.
Parameters use explicit SDK-style names rather than compact catalog labels:
bore_diameter maps to common id, outer_diameter maps to od,
bearing_width maps to axial bearing thickness, ball_diameter maps to
ball size, raceway_clearance maps to print clearance around the balls, and
edge_chamfer maps to edge break/chamfer. There is intentionally no
Python keyword-only * separator in this signature so the function remains
callable with either positional or keyword arguments.
ball_count=None lets the factory infer a conservative visual ball count
from the pitch circle. Explicit ball_count is accepted when you need to
match a real bearing or a printed cage design. Balls are direct sphere
primitive solids, and the inner and outer rings are revolved from arc-groove
profiles to create continuous toroidal raceway grooves. Balls are visual
rolling elements fixed at their authored positions; the currently modeled
kinematic degree of freedom is only the inner-ring-to-outer-ring revolute
joint.
For printable bearings, the classic checks from many parametric generators
are still useful: ((outer_diameter - bore_diameter) / 2) - ball_diameter
should leave enough radial wall thickness, and bearing_width - ball_diameter
should be positive so balls do not protrude axially.