Read this model as text
A tractor wheel: the parametric car wheel retuned into a tall-sidewall wheel with twelve deep, widely spaced lugs at a steep angle, the tread biting over the shoulder the way an agricultural tyre does. A remix of mick/parametric-wheel that changes no geometry, only the numbers.
The image shows the solid OpenSCAD renders at outer_diameter 84 · rim_diameter 30 · width 26 · tread_blocks 12 · tread_depth 6 · tread_angle 40 · tread_gap 0.55 · shoulder 0.3 · face_thickness 4 · bore_diameter 8 · lug_count 5 · lug_circle 16 · vent_count 6 · vent_diameter 3.5 · bolt_size 4 · bolt_length 14 · show_bolts true · wall 2.4 · flange 1.2 · smoothness 96.
Parametric tractor wheel
mick/tractor-wheel@1.0.0
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 tractor wheel: the parametric car wheel retuned into a tall-sidewall wheel with twelve deep, widely spaced lugs at a steep angle, the tread biting over the shoulder the way an agricultural tyre does. A remix of mick/parametric-wheel that changes no geometry, only the numbers.
What you use it for
Drive wheels for RC tractors, garden robots and anything that needs grip on soft ground, or as the rear pair next to the stock parametric-wheel up front for a proper tractor stance.
Design notes
The tractor character is all in the defaults: few tread blocks cut to full depth with a wide gap make the lugs, a steep tread angle rakes them into chevrons, and a square shoulder lets them run over the edge, which gives the scalloped crown. The rim is small against the outer diameter for the tall sidewall.
Everything from the parent still applies: tyre and rim share rim_diameter and width, the lug holes track bolt_size, and show_bolts off leaves open holes for real fasteners.
Parameters
Identical to mick/parametric-wheel, only the defaults differ: outer_diameter 84 over a 30 rim, width 26, tread_blocks 12, tread_depth 6, tread_angle 40, tread_gap 0.55 and shoulder 0.3. Dial tread_blocks down and tread_gap up for an even coarser field tyre.
Use with your agent
{
"mcpServers": {
"remixcad": {
"type": "http",
"url": "https://remix-cad.vercel.app/api/mcp"
}
}
}get_model("mick/tractor-wheel@1.0.0")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 |
|---|---|---|---|---|
| outer_diameter | 84 | 20 to 200 step 1 | ||
| rim_diameter | 30 | 10 to 160 step 1 | ||
| width | 26 | 4 to 80 step 1 | ||
| tread_blocks | 12 | 0 to 80 step 1 | ||
| tread_depth | 6 | 0 to 6 step 0.1 | ||
| tread_angle | 40 | 0 to 60 step 1 | ||
| tread_gap | 0.55 | 0.1 to 0.7 step 0.01 | ||
| shoulder | 0.3 | 0 to 1 step 0.05 | ||
| 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 | 16 | 6 to 120 step 1 | ||
| vent_count | 6 | 0 to 16 step 1 | ||
| vent_diameter | 3.5 | 0 to 30 step 0.5 | ||
| bolt_size | 4 | 3 to 8 step 1 | ||
| bolt_length | 14 | 6 to 30 step 1 | ||
| show_bolts | true | |||
| 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 |
Lineage
0 models depend on this oneOnly what this model came from and what came from it.
License
Whoever downloads this takes these obligations along- mick/tractor-wheel@1.0.0 is MIT
- remixcad/threads@1.0.0 is CC0
- mick/parametric-wheel@1.0.0 is MIT
- mick/parametric-tyre@1.0.0 is MIT
- mick/parametric-rim@1.0.0 is MIT
- remixcad/metric-bolt@1.0.0 is CC0
Source
main.scad is the entrypointmain.scad
// A tractor wheel: the parametric car wheel retuned with tall-sidewall, deep-lug
// defaults. Remix of mick/parametric-wheel; geometry unchanged, numbers retuned.
// Uses threads.scad by Ryan A. Colyer, released with CC0 into the public domain.
// Published on RemixCAD as remixcad/threads.
use <remixcad/threads/threads.scad>
/* [Size] */
// Diameter measured over the tread, the outside of the wheel.
outer_diameter = 84; // [20:1:200]
// Diameter where tyre meets rim. Small against the outer diameter for the tall sidewall.
rim_diameter = 30; // [10:1:160]
// Width across the wheel, bead to bead.
width = 26; // [4:1:80]
/* [Tread] */
// Lugs around the tyre. Few and coarse is the tractor look.
tread_blocks = 12; // [0:1:80]
// How deep each groove is cut into the crown.
tread_depth = 6; // [0:0.1:6]
// How far the lugs rake across the tread, in degrees.
tread_angle = 40; // [0:1:60]
// Groove width as a share of the space between lugs.
tread_gap = 0.55; // [0.1:0.01:0.7]
// How round the tyre shoulders are. Square lets the lugs bite over the edge.
shoulder = 0.3; // [0:0.05:1]
/* [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 bolts around the bore.
lug_count = 5; // [0:1:10]
// Bolt circle diameter the lugs sit on.
lug_circle = 16; // [6:1:120]
// Round vents in the face. Zero closes the face.
vent_count = 6; // [0:1:16]
// Diameter of each vent.
vent_diameter = 3.5; // [0:0.5:30]
/* [Bolts] */
// Nominal metric size of the lug bolts, so 4 is an M4.
bolt_size = 4; // [3:1:8]
// Bolt length under the head.
bolt_length = 14; // [6:1:30]
// Show the bolts, or leave the holes open for real fasteners.
show_bolts = true;
/* [Shape] */
// Wall thickness of the rim barrel.
wall = 2.4; // [1:0.1:6]
// How far the rim flanges stand proud of the barrel.
flange = 1.2; // [0:0.1:4]
// Facets around the wheel. More is smoother and slower.
smoothness = 96; // [24:8:192]
/* [Hidden] */
outer_radius = outer_diameter / 2;
rim_radius = rim_diameter / 2;
half_width = width / 2;
shoulder_radius = shoulder * min(half_width, outer_radius - rim_radius) * 0.9;
pitch = tread_blocks > 0 ? 360 / tread_blocks : 360;
groove_width = 2 * PI * outer_radius * (pitch / 360) * tread_gap;
flange_height = 1.4;
// The lug hole clears the bolt, and both hole circles stay inside the barrel wall.
lug_hole = bolt_size + 0.6;
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);
bolt_head_height = 0.7 * bolt_size;
// ---- Tyre, from mick/parametric-wheel ----
module section() {
hull() {
translate([rim_radius, -half_width]) square([0.01, width]);
translate([outer_radius - shoulder_radius, -half_width + shoulder_radius])
circle(r = shoulder_radius, $fn = 32);
translate([outer_radius - shoulder_radius, half_width - shoulder_radius])
circle(r = shoulder_radius, $fn = 32);
}
}
module carcass() {
rotate_extrude($fn = smoothness) section();
}
module grooves() {
for (index = [0 : max(tread_blocks - 1, 0)]) {
rotate([0, 0, index * pitch])
translate([outer_radius, 0, 0])
rotate([tread_angle, 0, 0])
cube([tread_depth * 2, groove_width, width * 3], center = true);
}
}
module tyre() {
if (tread_blocks > 0 && tread_depth > 0) {
difference() {
carcass();
grooves();
}
} else {
carcass();
}
}
// ---- Rim, from mick/parametric-wheel ----
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);
}
}
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);
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();
}
}
// ---- Bolts, from remixcad/metric-bolt via the parent ----
// Head out, seated just proud of the face, the way a wheel is bolted up.
module bolts() {
if (lug_count > 0)
for (i = [0 : lug_count - 1])
rotate([0, 0, i * 360 / lug_count])
translate([lug_radius, 0, half_width + bolt_head_height + 0.5])
rotate([180, 0, 0])
MetricBolt(bolt_size, bolt_length, 0.4);
}
module wheel() {
tyre();
rim();
if (show_bolts) bolts();
}
wheel();
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.
