Interactive Preview & Customizer
3D preview with OpenSCAD rendering on parameter changes.
Loading preview...
step 0.5
step 0.5
step 0.5
step 0.5
step 0.5
step 0.1
step 0.5
step 0.1
step 0.5
WASM compiler loads on first parameter change.
Prompt Assets
Prompt image
Prompt
参考图片帮我设计一个汽车的挡把
OpenSCAD Code
// Automotive Electronic Gear Shift Knob
// Designed to match modern luxury electronic palm shifters (e.g. BYD / Audi style)
/* [Main Dimensions] */
knob_length = 82; // Front-to-back length (mm)
knob_width = 52; // Left-to-right grip width (mm)
knob_height = 80; // Total vertical height (mm)
stem_diameter = 26; // Base collar diameter (mm)
stem_height = 22; // Base straight stem height (mm)
/* [Mounting Socket] */
mount_bore_d = 12.0; // Shift rod diameter (mm)
mount_bore_depth = 34.0; // Socket depth (mm)
set_screw_d = 4.0; // Grub screw hole diameter (mm)
/* [Options] */
include_set_screw = true;
/* [Smoothness] */
$fn = 48;
// True 4-corner rounded rectangle
module rounded_rect_2d(l, w, r) {
dx = max(0.1, l/2 - r);
dy = max(0.1, w/2 - r);
hull() {
translate([ dx, dy]) circle(r = r, $fn = 36);
translate([-dx, dy]) circle(r = r, $fn = 36);
translate([-dx, -dy]) circle(r = r, $fn = 36);
translate([ dx, -dy]) circle(r = r, $fn = 36);
}
}
module automotive_shift_knob() {
difference() {
// --- 1. SOLID COMBINED BODY ---
union() {
// A. Base stem collar
cylinder(d = stem_diameter, h = stem_height);
// B. Neck transition (smooth flare up to shifter head)
hull() {
translate([0, 0, stem_height - 1])
cylinder(d = stem_diameter, h = 1);
translate([3, 0, stem_height + 14])
linear_extrude(height = 2)
rounded_rect_2d(46, 36, 14);
}
// C. Lower sculpted housing
hull() {
translate([3, 0, stem_height + 13])
linear_extrude(height = 2)
rounded_rect_2d(46, 36, 14);
translate([2, 0, knob_height - 22])
linear_extrude(height = 2)
rounded_rect_2d(knob_length * 0.88, knob_width * 0.85, 16);
translate([0, 0, knob_height - 14])
linear_extrude(height = 2)
rounded_rect_2d(knob_length * 0.96, knob_width * 0.94, 18);
}
// D. Chrome Bezel & Left Ergonomic Thumb Wing
hull() {
translate([0, 0, knob_height - 14])
linear_extrude(height = 2)
rounded_rect_2d(knob_length * 0.96, knob_width * 0.94, 18);
translate([0, 0, knob_height - 9])
linear_extrude(height = 2)
rounded_rect_2d(knob_length, knob_width, 18);
// Left thumb wing extension
translate([0, -knob_width * 0.44, knob_height - 13])
scale([1.3, 0.7, 0.65])
sphere(r = 12);
}
// E. Top Glossy Pebble Insert
hull() {
translate([0.5, 0, knob_height - 8])
linear_extrude(height = 2)
rounded_rect_2d(knob_length * 0.84, knob_width * 0.80, 15);
translate([1, 0, knob_height - 4])
linear_extrude(height = 1.5)
rounded_rect_2d(knob_length * 0.74, knob_width * 0.68, 13);
translate([1.5, 0, knob_height - 1.5])
scale([knob_length * 0.30, knob_width * 0.24, 2.5])
sphere(r = 1);
}
// F. UNLOCK Button Pad (Smooth rounded thumb button)
hull() {
translate([8, -knob_width * 0.50, knob_height - 12.5])
sphere(r = 4.0);
translate([-10, -knob_width * 0.50, knob_height - 13.5])
sphere(r = 4.0);
translate([8, -knob_width * 0.44, knob_height - 8.5])
sphere(r = 3.5);
translate([-10, -knob_width * 0.44, knob_height - 9.5])
sphere(r = 3.5);
}
// G. Embossed UNLOCK text integrated onto the button surface
translate([-1, -knob_width * 0.53, knob_height - 13])
rotate([90, 0, 0])
linear_extrude(height = 1.2, center = true)
text("UNLOCK", size = 3.2, font = "Liberation Sans:style=Bold", halign = "center", valign = "center");
}
// --- 2. SUBTRACTIONS & INTERFACES ---
// Shift lever shaft hole
translate([0, 0, -1])
cylinder(d = mount_bore_d, h = mount_bore_depth + 1, $fn = 32);
// Chamfered lead-in
translate([0, 0, -0.1])
cylinder(r1 = mount_bore_d/2 + 1.2, r2 = mount_bore_d/2, h = 1.5, $fn = 32);
// Set screw tightening hole
if (include_set_screw) {
translate([0, 0, stem_height * 0.55])
rotate([90, 0, 0])
cylinder(d = set_screw_d, h = stem_diameter * 2, center = true, $fn = 24);
}
}
}
automotive_shift_knob();


