# make_cycloidal_disc_rsolid ## API Definition ```python def make_cycloidal_disc_rsolid(n_lobes: int, ring_pin_pitch_radius: float, roller_radius: float, eccentricity: float, gear_height: float = 6.0, *, bore_radius: float = 0.0, output_pin_count: int = 0, output_pin_pitch_radius: float = 0.0, output_pin_clearance_radius: float = 0.0, output_pin_phase: float = 0.0, sample_count_per_lobe: int = 33, spline_tolerance: float = 0.005, max_control_points: int = 20) -> Solid ``` *Source: std/gear.py* ## Import Surface - standard library: `import simplecadapi as scad` then `scad.std.gear.make_cycloidal_disc_rsolid(...)`; direct submodule import: `from simplecadapi.std.gear import make_cycloidal_disc_rsolid` ## Description Create a cycloidal reducer disc for a one-tooth-difference pin ring. This is a single-disc geometric standard part. Real compact reducers often stack two identical-lobe discs to balance output-pin side loads. In that assembly-level pattern, separate two concepts that are easy to confuse: - Place the two input eccentric cam centers 180 degrees apart, for example ``(+e, 0)`` and ``(-e, 0)``, so their orbit loads oppose each other. - Tooth-index the second cycloidal profile by half a lobe, not by a full 180 degree shape rotation. For a disc with ``n_lobes`` lobes, that geometric body phase is ``180 / n_lobes`` degrees. A 10-lobe disc rotated by 180 degrees is exactly five full lobe pitches and is visually and mechanically equivalent to no tooth-index phase change. If output-pin clearance holes must stay aligned to one shared output pin set, compensate the second disc's ``output_pin_phase`` by subtracting the same body phase before rotating the finished disc body. ## Parameters ### n_lobes - **Type**: `int` - **Description**: Number of cycloidal lobes. The matching fixed pin ring has ### ``n_lobes + 1`` pins and gives a single-stage ``n_lobes - **Description**: 1`` reduction. ### ring_pin_pitch_radius - **Type**: `float` - **Description**: Radius of the fixed ring pin centers in mm. ### roller_radius - **Type**: `float` - **Description**: Radius of the fixed ring pins or rollers used to offset the profile. ### eccentricity - **Type**: `float` - **Description**: Input crank eccentricity in mm. ### gear_height - **Type**: `float, default 6.0` - **Description**: Disc thickness / extrusion height along Z in mm. ### bore_radius - **Type**: `float, default 0.0` - **Description**: Optional central bore radius. Zero leaves the disc unbored. ### output_pin_count - **Type**: `int, default 0` - **Description**: Optional number of circular output-pin clearance holes. ### output_pin_pitch_radius - **Type**: `float, default 0.0` - **Description**: Radius of the output-pin clearance hole centers in mm. ### output_pin_clearance_radius - **Type**: `float, default 0.0` - **Description**: Radius of each output-pin clearance hole in mm. ### output_pin_phase - **Type**: `float, default 0.0` - **Description**: Angular phase of the first output-pin clearance hole in degrees, in the unrotated disc's local frame. When a finished disc is rotated to create a tooth-index phase in a twin-disc stack, subtract that same rotation from ``output_pin_phase`` if the clearance holes should remain aligned to the same global output pins. ### sample_count_per_lobe - **Type**: `int, default 33` - **Description**: Number of analytic samples fitted into each lobe B-spline segment. ### spline_tolerance - **Type**: `float, default 0.005` - **Description**: Cubic B-spline fit tolerance in mm. ### max_control_points - **Type**: `int, default 20` - **Description**: Maximum poles allowed for each fitted lobe segment.