OpenSCAD online viewer
// ========================================== // PARAMETRIC GARDEN HOOP ANCHOR // ========================================== // Adjust parameters below to match your hoop diameter and printer settings.
/* [Hoop Socket Parameters] */ // Inner diameter of the socket to hold your hoop rod (in mm) hoop_rod_diameter = 10.5; // How deep the hoop rod slips into the anchor (in mm) socket_depth = 40; // Wall thickness around the rod socket (in mm) socket_wall = 4;
/* [Ground Spike Parameters] */ // Total length of the stake pushed into the soil (in mm) spike_length = 120; // Width of the horizontal cross-fins for soil grip (in mm) fin_width = 24; // Thickness of the cross-fins (in mm) fin_thickness = 3.5;
/* [Advanced / Rendering] */ // Smoothness of circular parts $fn = 64;
// ========================================== // EXECUTION CALL // ========================================== garden_hoop_anchor();
// ========================================== // MODULE DEFINITION // ========================================== module garden_hoop_anchor() {
outer_socket_radius = (hoop_rod_diameter / 2) + socket_wall;
// 1. Main Upper Socket
difference() {
// Outer body of the socket
cylinder(h = socket_depth, r = outer_socket_radius);
// Inner hollow core for the hoop rod
translate([0, 0, socket_wall]) // Leaves a solid floor at the bottom
cylinder(h = socket_depth + 1, r = hoop_rod_diameter / 2);
}
// 2. Soil-Anchoring Cross-Spike
translate([0, 0, -spike_length])
intersection() {
// Tapered bounding cone to give the fins a pointed entry tip
cylinder(h = spike_length, r1 = 2, r2 = fin_width / 2);
// X-shaped fin cross-section extruded downwards
union() {
// Fin 1 (X-axis)
translate([-fin_width / 2, -fin_thickness / 2, 0])
cube([fin_width, fin_thickness, spike_length]);
// Fin 2 (Y-axis)
translate([-fin_thickness / 2, -fin_width / 2, 0])
cube([fin_thickness, fin_width, spike_length]);
}
}
// 3. Transition Reinforcement Collar
// Blends the square fins smoothly into the round socket base to eliminate weak sheer points
translate([0, 0, -10])
cylinder(h = 10, r1 = outer_socket_radius * 0.8, r2 = outer_socket_radius);
}
| Authors | |
|---|---|
| License | CC-BY-SA-4.0 |
| Cite as | "OpenSCAD online viewer". Appropedia. 2024–2026. Retrieved June 8, 2026. |