Read this model as text
A parametric car-style rim: a barrel the tyre grips, a flange at each edge to keep it there, and a closed face disc with a centre bore, a ring of lug holes and round vents. No spokes, this is the pressed-steel look.
The image shows the solid OpenSCAD renders at rim_diameter 34 · width 22 · face_thickness 4 · bore_diameter 8 · lug_count 5 · lug_circle 18 · lug_hole 4.6 · vent_count 5 · vent_diameter 5 · wall 2.4 · flange 1.2 · smoothness 96 · color_rim Silver.
Parametric car rim
mick/parametric-rim@1.0.1
Report
For a legal or policy problem: a license violation, personal data, somebody else’s work republished as their own. A model that prints badly is a comment, not a report.
Parameters
from sourceDescription
What is this
A parametric car-style rim: a barrel the tyre grips, a flange at each edge to keep it there, and a closed face disc with a centre bore, a ring of lug holes and round vents. No spokes, this is the pressed-steel look.
What you use it for
The hub inside mick/parametric-tyre. Set rim_diameter and width to the same values as the tyre and it drops in. The bore and the lug circle adapt it to whatever axle or hub you are mounting it on.
Design notes
The face sits at one end of the barrel rather than the middle, the way a car rim is dished, so the barrel behind it stays open for an axle or a bearing. The lug circle and the vent circle are clamped inside the barrel wall, so shrinking the rim pulls the holes inward instead of breaking through the side.
Vents sit half a pitch rotated from the lug holes, so at equal counts they interleave instead of merging.
The colour is display only. It rides along in the preview and in the 3D view so a rim inside a tyre reads as a rim, and it changes nothing about the shape or the STL.
Parameters
rim_diameter and width size the barrel and should match the tyre. face_thickness, bore_diameter, lug_count, lug_circle and lug_hole shape the mounting face. vent_count and vent_diameter open up the face, and zero closes it. wall, flange and smoothness tune the shape. color_rim picks the colour the rim is shown in.
Use with your agent
{
"mcpServers": {
"remixcad": {
"type": "http",
"url": "https://remix-cad.vercel.app/api/mcp"
}
}
}get_model("mick/parametric-rim@1.0.1")Returns the manifest, the source, the import closure and the license obligations. Full MCP setup.
Parameter table
Parsed from the Customizer annotations in main.scad| Name | Default | Range | Unit | Description |
|---|---|---|---|---|
| rim_diameter | 34 | 10 to 160 step 1 | ||
| width | 22 | 4 to 80 step 1 | ||
| face_thickness | 4 | 2 to 10 step 0.5 | ||
| bore_diameter | 8 | 2 to 40 step 1 | ||
| lug_count | 5 | 0 to 10 step 1 | ||
| lug_circle | 18 | 6 to 120 step 1 | ||
| lug_hole | 4.6 | 2 to 12 step 0.1 | ||
| vent_count | 5 | 0 to 16 step 1 | ||
| vent_diameter | 5 | 0 to 30 step 0.5 | ||
| wall | 2.4 | 1 to 6 step 0.1 | ||
| flange | 1.2 | 0 to 4 step 0.1 | ||
| smoothness | 96 | 24 to 192 step 8 | ||
| color_rim | "Silver" | Silver, Gainsboro, White, DimGray, Black, SlateGray, FireBrick, SteelBlue, ForestGreen, Goldenrod |
Lineage
1 model depends on this oneOnly what this model came from and what came from it.
License
Whoever downloads this takes these obligations along- mick/parametric-rim@1.0.1 is MIT
Source
main.scad is the entrypointmain.scad
// A car-style rim: a barrel with a flange at each edge and a closed face disc at one end,
// with a centre bore, lug holes on a bolt circle and round vents. No spokes.
/* [Size] */
// Diameter of the rim barrel, the seat the tyre grips. Match the tyre's rim_diameter.
rim_diameter = 34; // [10:1:160]
// Width across the rim, bead to bead. Match the tyre's width.
width = 22; // [4:1:80]
/* [Face] */
// Thickness of the closed face disc.
face_thickness = 4; // [2:0.5:10]
// Centre bore for the axle.
bore_diameter = 8; // [2:1:40]
// Lug holes around the bore. Zero leaves a plain face.
lug_count = 5; // [0:1:10]
// Bolt circle diameter the lug holes sit on.
lug_circle = 18; // [6:1:120]
// Diameter of each lug hole.
lug_hole = 4.6; // [2:0.1:12]
// Round vents in the face. Zero closes the face.
vent_count = 5; // [0:1:16]
// Diameter of each vent.
vent_diameter = 5; // [0:0.5:30]
/* [Shape] */
// Wall thickness of the barrel.
wall = 2.4; // [1:0.1:6]
// How far the flanges stand proud of the barrel.
flange = 1.2; // [0:0.1:4]
// Facets around the rim. More is smoother and slower.
smoothness = 96; // [24:8:192]
/* [Colour] */
// Colour the rim is shown in. Display only, the STL carries no colour.
color_rim = "Silver"; // [Silver, Gainsboro, White, DimGray, Black, SlateGray, FireBrick, SteelBlue, ForestGreen, Goldenrod]
/* [Hidden] */
rim_radius = rim_diameter / 2;
half_width = width / 2;
flange_height = 1.4;
// Both hole circles are clamped inside the barrel wall, so a small rim pulls the holes
// inward instead of breaking through the side.
lug_radius = min(lug_circle / 2, rim_radius - wall - lug_hole / 2 - 1);
vent_radius_pos = min(rim_radius - wall - vent_diameter / 2 - 0.5,
lug_radius + lug_hole / 2 + vent_diameter / 2 + 0.8);
module barrel() {
difference() {
cylinder(h = width, r = rim_radius, center = true, $fn = smoothness);
cylinder(h = width + 1, r = rim_radius - wall, center = true, $fn = smoothness);
}
}
module flanges() {
for (z = [-half_width, half_width - flange_height])
translate([0, 0, z])
difference() {
cylinder(h = flange_height, r = rim_radius + flange, $fn = smoothness);
translate([0, 0, -0.5])
cylinder(h = flange_height + 1, r = rim_radius - wall, $fn = smoothness);
}
}
// The face sits at one end, the way a car rim is dished, leaving the barrel open behind it.
module face() {
translate([0, 0, half_width - face_thickness])
difference() {
cylinder(h = face_thickness, r = rim_radius - wall / 2, $fn = smoothness);
translate([0, 0, -0.5])
cylinder(h = face_thickness + 1, d = bore_diameter, $fn = smoothness);
if (lug_count > 0)
for (i = [0 : lug_count - 1])
rotate([0, 0, i * 360 / lug_count])
translate([lug_radius, 0, -0.5])
cylinder(h = face_thickness + 1, d = lug_hole, $fn = 32);
// Vents sit half a pitch from the lugs, so equal counts interleave.
if (vent_count > 0 && vent_diameter > 0)
for (i = [0 : vent_count - 1])
rotate([0, 0, (i + 0.5) * 360 / vent_count])
translate([vent_radius_pos, 0, -0.5])
cylinder(h = face_thickness + 1, d = vent_diameter, $fn = 32);
}
}
module rim() {
union() {
barrel();
flanges();
face();
}
}
color(color_rim) rim();
Comments
Context, not a score. Comments never move a model up or down the results.No comments yet
Printed it? A note about your material and the clearance you landed on saves the next person a failed print.
