mirror of
https://github.com/nophead/Mendel90.git
synced 2025-08-15 09:44:02 +02:00
Extracted all color resources into a common file.
This commit is contained in:
BIN
openscad.pyc
Normal file
BIN
openscad.pyc
Normal file
Binary file not shown.
@@ -51,7 +51,7 @@ module bar_clamp(d, h, w, switch = false, yaxis = false) {
|
|||||||
sbracket_thickness = 7;
|
sbracket_thickness = 7;
|
||||||
sbracket_height = microswitch_length();
|
sbracket_height = microswitch_length();
|
||||||
|
|
||||||
color([0,1,0]) {
|
color(clamp_color) {
|
||||||
translate([0, rail_offset, 0]) {
|
translate([0, rail_offset, 0]) {
|
||||||
union() {
|
union() {
|
||||||
difference() {
|
difference() {
|
||||||
@@ -141,7 +141,7 @@ module bar_clamp_assembly(d, h, w, name, switch = false, yaxis = true) {
|
|||||||
|
|
||||||
//assembly(name);
|
//assembly(name);
|
||||||
stl(str(name, switch ? "_switch" : ""));
|
stl(str(name, switch ? "_switch" : ""));
|
||||||
color([0,1,0]) render() bar_clamp(d, h, w, switch, yaxis);
|
color(clamp_color) render() bar_clamp(d, h, w, switch, yaxis);
|
||||||
//
|
//
|
||||||
// screw and washer for clamp
|
// screw and washer for clamp
|
||||||
//
|
//
|
||||||
|
@@ -32,7 +32,7 @@ module bed_assembly() {
|
|||||||
translate([0, 0, washer_thickness(M3_washer)]) {
|
translate([0, 0, washer_thickness(M3_washer)]) {
|
||||||
vitamin(str("BED", bed_width, bed_depth,": PCB bed ", bed_width, " x ", bed_depth));
|
vitamin(str("BED", bed_width, bed_depth,": PCB bed ", bed_width, " x ", bed_depth));
|
||||||
translate([0,0, pillar_height(bed_pillars) + pcb_thickness / 2])
|
translate([0,0, pillar_height(bed_pillars) + pcb_thickness / 2])
|
||||||
color([0.7,0,0]) cube([bed_width, bed_depth, pcb_thickness], center = true);
|
color(bed_color) cube([bed_width, bed_depth, pcb_thickness], center = true);
|
||||||
|
|
||||||
translate([0,0, pillar_height(bed_pillars) + pcb_thickness + sheet_thickness(glass) / 2 + eta * 3])
|
translate([0,0, pillar_height(bed_pillars) + pcb_thickness + sheet_thickness(glass) / 2 + eta * 3])
|
||||||
sheet(glass, bed_width, bed_depth - 12);
|
sheet(glass, bed_width, bed_depth - 12);
|
||||||
|
@@ -65,7 +65,7 @@ module cable_clip(screw, cable1, cable2 = 0) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
module cable_clip_assembly(screw, screw_length, cable1, cable2 = 0) {
|
module cable_clip_assembly(screw, screw_length, cable1, cable2 = 0) {
|
||||||
color([1,0,0]) render() translate([0, cable_clip_width(screw) / 2, 0]) rotate([90, 0, 0])
|
color(clip_color) render() translate([0, cable_clip_width(screw) / 2, 0]) rotate([90, 0, 0])
|
||||||
cable_clip(screw, cable1, cable2);
|
cable_clip(screw, cable1, cable2);
|
||||||
|
|
||||||
translate([0, 0, max(cable_clip_height(cable1), cable_clip_height(cable2))])
|
translate([0, 0, max(cable_clip_height(cable1), cable_clip_height(cable2))])
|
||||||
|
76
scad/conf/carley_mendel_config.scad
Normal file
76
scad/conf/carley_mendel_config.scad
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
//
|
||||||
|
// Mendel90
|
||||||
|
//
|
||||||
|
// GNU GPL v2
|
||||||
|
// nop.head@gmail.com
|
||||||
|
// hydraraptor.blogspot.com
|
||||||
|
//
|
||||||
|
// Configuration file
|
||||||
|
//
|
||||||
|
echo("Carley Mendel:");
|
||||||
|
Z_bearings = LM8UU;
|
||||||
|
Y_bearings = LM8UU;
|
||||||
|
X_bearings = LM8UU;
|
||||||
|
|
||||||
|
X_motor = NEMA17;
|
||||||
|
Y_motor = NEMA17;
|
||||||
|
Z_motor = NEMA17;
|
||||||
|
|
||||||
|
X_travel = 200;
|
||||||
|
Y_travel = 200;
|
||||||
|
Z_travel = 140;
|
||||||
|
|
||||||
|
bed_depth = 214;
|
||||||
|
bed_width = 214;
|
||||||
|
bed_pillars = M3x20_pillar;
|
||||||
|
bed_thickness = 1.6 + sheet_thickness(glass); // PCB heater plus glass sheet
|
||||||
|
bed_holes = 209;
|
||||||
|
|
||||||
|
base = PMMA10; // Sheet material used for the base. Needs to be thick enough to screw into.
|
||||||
|
base_corners = 50;
|
||||||
|
|
||||||
|
frame = PMMA6;
|
||||||
|
frame_corners = 25;
|
||||||
|
frame_nuts = false;
|
||||||
|
|
||||||
|
case_fan = fan80x38;
|
||||||
|
psu = KY240W;
|
||||||
|
|
||||||
|
single_piece_frame = true;
|
||||||
|
stays_from_window = false;
|
||||||
|
|
||||||
|
Y_carriage = PMMA6;
|
||||||
|
|
||||||
|
extruder_width = 30; // actually 28 but offset
|
||||||
|
nozzle_x_offset = 16; // offset from centre of the extruder
|
||||||
|
nozzle_length = 50; // from base of extruder to nozzle tip
|
||||||
|
|
||||||
|
X_belt = T5x6;
|
||||||
|
Y_belt = T5x6;
|
||||||
|
|
||||||
|
motor_shaft = 5;
|
||||||
|
Z_screw_dia = 8; // Studding for Z axis
|
||||||
|
|
||||||
|
Y_carriage_depth = bed_depth + 10;
|
||||||
|
Y_carriage_width = bed_width + 10;
|
||||||
|
|
||||||
|
Z_nut_radius = M8_nut_radius;
|
||||||
|
Z_nut_depth = M8_nut_depth;
|
||||||
|
Z_nut = M8_nut;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Default screw use where size doesn't matter
|
||||||
|
//
|
||||||
|
cap_screw = M3_cap_screw;
|
||||||
|
hex_screw = M3_hex_screw;
|
||||||
|
//
|
||||||
|
// Screw for the frame and base
|
||||||
|
//
|
||||||
|
frame_soft_screw = No6_screw; // Used when sheet material is soft, e.g. wood
|
||||||
|
frame_thin_screw = M4_cap_screw; // Used with nuts when sheets are thin
|
||||||
|
frame_thick_screw = M4_pan_screw; // Used with tapped holes when sheets are thick and hard, e.g. plastic or metal
|
||||||
|
//
|
||||||
|
// Feature sizes
|
||||||
|
//
|
||||||
|
default_wall = 3;
|
||||||
|
thick_wall = 4;
|
93
scad/conf/colors.scad
Normal file
93
scad/conf/colors.scad
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
//
|
||||||
|
// Mendel90
|
||||||
|
//
|
||||||
|
// GNU GPL v2
|
||||||
|
// nop.head@gmail.com
|
||||||
|
// hydraraptor.blogspot.com
|
||||||
|
//
|
||||||
|
// Reusable color definitions
|
||||||
|
//
|
||||||
|
|
||||||
|
// Named colors
|
||||||
|
white = [1, 1, 1];
|
||||||
|
black = [0, 0, 0];
|
||||||
|
red = [1, 0, 0];
|
||||||
|
dark_red = [0.7, 0, 0];
|
||||||
|
green = [0, 1, 0];
|
||||||
|
yellow = [1, 1, 0];
|
||||||
|
fuchsia = [1, 0, 1];
|
||||||
|
orange = [1, 0.7, 0];
|
||||||
|
grey20 = [0.2, 0.2, 0.2];
|
||||||
|
grey50 = [0.5, 0.5, 0.5];
|
||||||
|
grey70 = [0.7, 0.7, 0.7];
|
||||||
|
grey80 = [0.8, 0.8, 0.8];
|
||||||
|
grey90 = [0.9, 0.9, 0.9];
|
||||||
|
|
||||||
|
// Material colors
|
||||||
|
MDF_brown = [0.4, 0.4, 0.2, 1 ];
|
||||||
|
acrylic_clear = [1, 1, 1, 0.5 ];
|
||||||
|
glass_clear = [1, 1, 1, 0.25 ];
|
||||||
|
dibond_grey = [0.5, 0.5, 0.5, 1 ];
|
||||||
|
|
||||||
|
// Object colors
|
||||||
|
rod_color = grey80;
|
||||||
|
studding_color = grey50;
|
||||||
|
tubing_color = [0.8, 0.8, 0.8, 0.75 ];
|
||||||
|
nut_grey = grey70;
|
||||||
|
soft_washer_color = grey20;
|
||||||
|
hard_washer_color = grey80;
|
||||||
|
star_washer_color = [0.8, 0.8, 0.4];
|
||||||
|
screw_cap_color = grey20;
|
||||||
|
screw_grub_color = grey20;
|
||||||
|
screw_hex_color = grey80;
|
||||||
|
screw_pan_color = [0.8, 0.8, 0.4];
|
||||||
|
screw_cs_color = [0.8, 0.8, 0.4];
|
||||||
|
spring_color = grey20;
|
||||||
|
pillar_color = grey90;
|
||||||
|
pillar_liner_color = yellow;
|
||||||
|
bearing_color = grey70;
|
||||||
|
psu_color = grey80;
|
||||||
|
fan_color = grey20;
|
||||||
|
microswitch_color = black;
|
||||||
|
microswitch_button_color = orange;
|
||||||
|
microswitch_contact_color = yellow;
|
||||||
|
sanguinololu_color = red;
|
||||||
|
stepper_body_color = black;
|
||||||
|
stepper_cap_color = grey50;
|
||||||
|
small_ziptie_color = white;
|
||||||
|
|
||||||
|
// Assembly colors
|
||||||
|
clamp_color = green;
|
||||||
|
bed_color = dark_red;
|
||||||
|
clip_color = red;
|
||||||
|
d_shell_color = green;
|
||||||
|
d_shell_lid_color = red;
|
||||||
|
d_motor_bracket_color = green;
|
||||||
|
d_motor_bracket_lid_color = red;
|
||||||
|
d_pillar_color = grey90;
|
||||||
|
d_plug_shell_color = grey80;
|
||||||
|
d_plug_insulator_color = grey20;
|
||||||
|
fixing_block_color = green;
|
||||||
|
ribbon_clamp_color = red;
|
||||||
|
fan_guard_color = green;
|
||||||
|
pcb_spacer_color = green;
|
||||||
|
pulley_color = red;
|
||||||
|
ribbon_clamp_color = red;
|
||||||
|
wades_big_gear_color = green;
|
||||||
|
wades_small_gear_color = red;
|
||||||
|
wades_idler_block_color = green;
|
||||||
|
wades_gear_spacer_color = red;
|
||||||
|
filament_viz_color = [0.6, 0.5, 0.2];
|
||||||
|
extruder_nozzle_color = yellow;
|
||||||
|
x_carriage_color = red;
|
||||||
|
x_belt_clamp_color = green;
|
||||||
|
x_end_bracket_color = green;
|
||||||
|
y_bearing_mount_color = red;
|
||||||
|
y_belt_anchor_color = green;
|
||||||
|
y_belt_clip_color = red;
|
||||||
|
y_idler_bracket_color = green;
|
||||||
|
y_motor_bracket_color = green;
|
||||||
|
z_coupling_color = red;
|
||||||
|
z_limit_switch_bracket_color = green;
|
||||||
|
z_motor_bracket_color = green;
|
||||||
|
cable_strip_color = fuchsia;
|
@@ -7,11 +7,17 @@
|
|||||||
//
|
//
|
||||||
// Configuration file
|
// Configuration file
|
||||||
//
|
//
|
||||||
|
|
||||||
|
include <colors.scad>
|
||||||
|
|
||||||
bom = 2; // 0 no bom, 1 assemblies and stls, 2 vitamins as well
|
bom = 2; // 0 no bom, 1 assemblies and stls, 2 vitamins as well
|
||||||
exploded = false; // true for exploded view
|
exploded = false; // true for exploded view
|
||||||
eta = 0.01; // small fudge factor to stop CSG barfing on coincident faces.
|
eta = 0.01; // small fudge factor to stop CSG barfing on coincident faces.
|
||||||
$fa = 5;
|
$fa = 5;
|
||||||
$fs = 0.5;
|
$fs = 0.5;
|
||||||
|
|
||||||
|
glass_thickness = 2;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Hole sizes
|
// Hole sizes
|
||||||
//
|
//
|
||||||
|
1
scad/conf/machine.scad
Normal file
1
scad/conf/machine.scad
Normal file
@@ -0,0 +1 @@
|
|||||||
|
include <mendel_config.scad>
|
@@ -28,20 +28,20 @@ include <../vitamins/electronics.scad>
|
|||||||
|
|
||||||
module rod(d , l) {
|
module rod(d , l) {
|
||||||
vitamin(str("RD", d, round(l), ": Smooth rod ", d, " x ", round(l)));
|
vitamin(str("RD", d, round(l), ": Smooth rod ", d, " x ", round(l)));
|
||||||
color([0.8,0.8,0.8])
|
color(rod_color)
|
||||||
cylinder(r = d / 2, h = l, center = true);
|
cylinder(r = d / 2, h = l, center = true);
|
||||||
}
|
}
|
||||||
|
|
||||||
module studding(d , l) {
|
module studding(d , l) {
|
||||||
vitamin(str("ST", d, round(l),": Threaded rod ", d, " x ", round(l)));
|
vitamin(str("ST", d, round(l),": Threaded rod ", d, " x ", round(l)));
|
||||||
color([0.5,0.5,0.5])
|
color(studding_color)
|
||||||
cylinder(r = d / 2, h = l, center = true);
|
cylinder(r = d / 2, h = l, center = true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
module tubing(od, id, length) {
|
module tubing(od, id, length) {
|
||||||
vitamin(str("TB", od, id, length,": Tubing OD ",od, " ID ", id," x ",length));
|
vitamin(str("TB", od, id, length,": Tubing OD ",od, " ID ", id," x ",length));
|
||||||
color([0.8, 0.8, 0.8, 0.75]) render() difference() {
|
color(tubing_color) render() difference() {
|
||||||
cylinder(r = od / 2, h = length, center = true);
|
cylinder(r = od / 2, h = length, center = true);
|
||||||
cylinder(r = id / 2, h = length + 1, center = true);
|
cylinder(r = id / 2, h = length + 1, center = true);
|
||||||
}
|
}
|
||||||
|
@@ -251,12 +251,12 @@ module d_shell_assembly(motor) {
|
|||||||
d_width / 2 + d_motor_bracket_offset(motor),
|
d_width / 2 + d_motor_bracket_offset(motor),
|
||||||
-NEMA_length(NEMA17) - length - shell_length - d_mate_distance(connector) + overlap])
|
-NEMA_length(NEMA17) - length - shell_length - d_mate_distance(connector) + overlap])
|
||||||
rotate([0, -90, 180]) {
|
rotate([0, -90, 180]) {
|
||||||
color([0,1,0]) render() d_shell_stl();
|
color(d_shell_color) render() d_shell_stl();
|
||||||
translate([0, d_width / 2, height + lid_thickness])
|
translate([0, d_width / 2, height + lid_thickness])
|
||||||
translate([length, 0, 0])
|
translate([length, 0, 0])
|
||||||
explode([0, 0, 40])
|
explode([0, 0, 40])
|
||||||
translate([-length, 0, 0])
|
translate([-length, 0, 0])
|
||||||
color([1,0,0]) render() rotate([180, 0, 0]) d_shell_lid_stl(motor);
|
color(d_shell_lid_color) render() rotate([180, 0, 0]) d_shell_lid_stl(motor);
|
||||||
|
|
||||||
for(side = [-1, 1]) {
|
for(side = [-1, 1]) {
|
||||||
translate([shell_length - shell_front, d_width / 2 - side * pitch / 2, thickness + slot_height / 2]) //connector screws
|
translate([shell_length - shell_front, d_width / 2 - side * pitch / 2, thickness + slot_height / 2]) //connector screws
|
||||||
@@ -277,12 +277,12 @@ module d_shell_assembly(motor) {
|
|||||||
module d_motor_bracket_assembly(motor) {
|
module d_motor_bracket_assembly(motor) {
|
||||||
rotate([0, 90, 0])
|
rotate([0, 90, 0])
|
||||||
translate([NEMA_length(NEMA17) - overlap, -NEMA_width(NEMA17) / 2 - thickness, -NEMA_width(NEMA17) / 2 - thickness]) {
|
translate([NEMA_length(NEMA17) - overlap, -NEMA_width(NEMA17) / 2 - thickness, -NEMA_width(NEMA17) / 2 - thickness]) {
|
||||||
color([0,1,0]) render() d_motor_bracket_stl(NEMA17);
|
color(d_motor_bracket_color) render() d_motor_bracket_stl(NEMA17);
|
||||||
translate([0, NEMA_width(NEMA17) / 2 + d_motor_bracket_offset(NEMA17) + thickness, height + lid_thickness])
|
translate([0, NEMA_width(NEMA17) / 2 + d_motor_bracket_offset(NEMA17) + thickness, height + lid_thickness])
|
||||||
translate([length, 0, 0])
|
translate([length, 0, 0])
|
||||||
explode([0, 0, 40])
|
explode([0, 0, 40])
|
||||||
translate([-length, 0, 0])
|
translate([-length, 0, 0])
|
||||||
color([1,0,0]) render() rotate([180, 0, 0]) d_motor_bracket_lid_stl(motor);
|
color(d_motor_bracket_lid_color) render() rotate([180, 0, 0]) d_motor_bracket_lid_stl(motor);
|
||||||
}
|
}
|
||||||
|
|
||||||
translate([-NEMA_width(motor) / 2 + slot_height / 2, d_motor_bracket_offset(motor), -NEMA_length(motor) + overlap]) {
|
translate([-NEMA_width(motor) / 2 + slot_height / 2, d_motor_bracket_offset(motor), -NEMA_length(motor) + overlap]) {
|
||||||
|
@@ -86,7 +86,7 @@ module fixing_block_stl() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
module fixing_block_assembly(front = false) {
|
module fixing_block_assembly(front = false) {
|
||||||
color([0,1,0]) render() fixing_block_stl();
|
color(fixing_block_color) render() fixing_block_stl();
|
||||||
fixing_block_v_hole(height - counter_bore_depth)
|
fixing_block_v_hole(height - counter_bore_depth)
|
||||||
if(front)
|
if(front)
|
||||||
frame_screw(thickness);
|
frame_screw(thickness);
|
||||||
|
@@ -267,7 +267,7 @@ module y_axis_assembly(show_bed) {
|
|||||||
|
|
||||||
translate([0, cable_clamp_y, carriage_top])
|
translate([0, cable_clamp_y, carriage_top])
|
||||||
rotate([180, 0, 0])
|
rotate([180, 0, 0])
|
||||||
color([1,0,0]) render() ribbon_clamp(bed_ways, cap_screw);
|
color(ribbon_clamp_color) render() ribbon_clamp(bed_ways, cap_screw);
|
||||||
|
|
||||||
translate([0, cable_clamp_y, carriage_bottom])
|
translate([0, cable_clamp_y, carriage_bottom])
|
||||||
rotate([180, 0, 0])
|
rotate([180, 0, 0])
|
||||||
@@ -608,7 +608,7 @@ module bed_fan_assembly() {
|
|||||||
fan_assembly(case_fan, sheet_thickness(frame) + fan_guard_thickness());
|
fan_assembly(case_fan, sheet_thickness(frame) + fan_guard_thickness());
|
||||||
|
|
||||||
translate([0, 0, sheet_thickness(frame) / 2])
|
translate([0, 0, sheet_thickness(frame) / 2])
|
||||||
color([0,1,0]) render() fan_guard(case_fan);
|
color(fan_guard_color) render() fan_guard(case_fan);
|
||||||
}
|
}
|
||||||
end("bed_fan_assembly");
|
end("bed_fan_assembly");
|
||||||
}
|
}
|
||||||
|
@@ -25,7 +25,7 @@ module pcb_spacer_stl(screw = M3_cap_screw, h = pcb_spacer_height()) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
module pcb_spacer_assembly() {
|
module pcb_spacer_assembly() {
|
||||||
color([0,1,0]) render() pcb_spacer_stl();
|
color(pcb_spacer_color) render() pcb_spacer_stl();
|
||||||
translate([0,0, pcb_spacer_height() + pcb_thickness])
|
translate([0,0, pcb_spacer_height() + pcb_thickness])
|
||||||
screw_and_washer(M3_cap_screw, pcb_screw_length, !frame_nuts);
|
screw_and_washer(M3_cap_screw, pcb_screw_length, !frame_nuts);
|
||||||
|
|
||||||
|
@@ -103,7 +103,7 @@ module z_motor_bracket_stl() {
|
|||||||
module z_motor_assembly() {
|
module z_motor_assembly() {
|
||||||
assembly("z-motor-assembly");
|
assembly("z-motor-assembly");
|
||||||
|
|
||||||
color([0,1,0]) render() z_motor_bracket_stl();
|
color(z_motor_bracket_color) render() z_motor_bracket_stl();
|
||||||
//
|
//
|
||||||
// Clamp screw and washer
|
// Clamp screw and washer
|
||||||
//
|
//
|
||||||
|
@@ -9,13 +9,13 @@ include <conf/config.scad>
|
|||||||
|
|
||||||
module pulley_stl() {
|
module pulley_stl() {
|
||||||
stl("pulley");
|
stl("pulley");
|
||||||
color([1,0,0])
|
color(pulley_color)
|
||||||
translate([-10, -10, 0])
|
translate([-10, -10, 0])
|
||||||
import("../imported_stls/pulley.stl");
|
import("../imported_stls/pulley.stl");
|
||||||
}
|
}
|
||||||
|
|
||||||
module pulley_assembly() {
|
module pulley_assembly() {
|
||||||
color([1,0,0]) render() pulley_stl();
|
color(pulley_color) render() pulley_stl();
|
||||||
rotate([90, 0, 0]) {
|
rotate([90, 0, 0]) {
|
||||||
translate([0, 4, -5/2 - 6])
|
translate([0, 4, -5/2 - 6])
|
||||||
screw(M3_grub_screw, 6);
|
screw(M3_grub_screw, 6);
|
||||||
|
@@ -51,7 +51,7 @@ module ribbon_clamp(ways, screw_type) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
module ribbon_clamp_assembly(ways, screw_type, screw_length, panel_thickness = 0, vertical = false, washer = false) {
|
module ribbon_clamp_assembly(ways, screw_type, screw_length, panel_thickness = 0, vertical = false, washer = false) {
|
||||||
color([1,0,0])
|
color(ribbon_clamp_color)
|
||||||
render() rotate([180, 0, 0])
|
render() rotate([180, 0, 0])
|
||||||
ribbon_clamp(ways, screw_type);
|
ribbon_clamp(ways, screw_type);
|
||||||
|
|
||||||
|
2
scad/stl.scad
Normal file
2
scad/stl.scad
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
use <scad/z-screw_pointer.scad>
|
||||||
|
z_screw_pointer_stl();
|
@@ -17,7 +17,7 @@ module ball_bearing(type) {
|
|||||||
vitamin(str("BB",type[3],": Ball bearing ",type[3]," ",type[0], " x ", type[1], " x ", type[2]));
|
vitamin(str("BB",type[3],": Ball bearing ",type[3]," ",type[0], " x ", type[1], " x ", type[2]));
|
||||||
rim = type[1] / 10;
|
rim = type[1] / 10;
|
||||||
|
|
||||||
color([0.7,0.7,0.7]) render() difference() {
|
color(bearing_color) render() difference() {
|
||||||
cylinder(r = type[1] / 2, h = type[2], center = true);
|
cylinder(r = type[1] / 2, h = type[2], center = true);
|
||||||
cylinder(r = type[0] / 2, h = type[2] + 1, center = true);
|
cylinder(r = type[0] / 2, h = type[2] + 1, center = true);
|
||||||
for(z = [-type[2] / 2, type[2] / 2])
|
for(z = [-type[2] / 2, type[2] / 2])
|
||||||
|
@@ -23,7 +23,7 @@ module cable_strip(width, depth, travel, x, extra = 15) {
|
|||||||
|
|
||||||
vitamin(str("PP", thickness * 10, w, total,": Polypropylene strip ", total, "mm x ", w, "mm x ", thickness, "mm"));
|
vitamin(str("PP", thickness * 10, w, total,": Polypropylene strip ", total, "mm x ", w, "mm x ", thickness, "mm"));
|
||||||
|
|
||||||
color([1,0,1]) render() linear_extrude(height = w, center = true, convexity = 4)
|
color(cable_strip_color) render() linear_extrude(height = w, center = true, convexity = 4)
|
||||||
difference() {
|
difference() {
|
||||||
union() {
|
union() {
|
||||||
translate([-bottom, radius])
|
translate([-bottom, radius])
|
||||||
@@ -79,7 +79,7 @@ module elliptical_cable_strip(width, p1, p2, pmax, extra = 15) {
|
|||||||
[delta[2] / delta[0], 0, 1, delta[2] / 2],
|
[delta[2] / delta[0], 0, 1, delta[2] / 2],
|
||||||
[0, 0, 0, 1] ])
|
[0, 0, 0, 1] ])
|
||||||
|
|
||||||
color([1,0,1]) render() linear_extrude(height = w, center = true, convexity = 4)
|
color(cable_strip_color) render() linear_extrude(height = w, center = true, convexity = 4)
|
||||||
difference() {
|
difference() {
|
||||||
union() {
|
union() {
|
||||||
square([(a + thickness) * 2, extra * 2], center = true);
|
square([(a + thickness) * 2, extra * 2], center = true);
|
||||||
|
@@ -21,7 +21,7 @@ module d_pillar(type) {
|
|||||||
height = 4.5;
|
height = 4.5;
|
||||||
screw = 2.5;
|
screw = 2.5;
|
||||||
screw_length = 8;
|
screw_length = 8;
|
||||||
color([0.9,0.9,0.9]) render() translate([0,0, d_flange_thickness(type)]) difference() {
|
color(d_pillar_color) render() translate([0,0, d_flange_thickness(type)]) difference() {
|
||||||
union() {
|
union() {
|
||||||
cylinder(r = rad, h = height, $fn = 6);
|
cylinder(r = rad, h = height, $fn = 6);
|
||||||
translate([0,0, - screw_length + eta])
|
translate([0,0, - screw_length + eta])
|
||||||
@@ -73,7 +73,7 @@ module d_plug(type, socket = false) {
|
|||||||
//
|
//
|
||||||
// Shell
|
// Shell
|
||||||
//
|
//
|
||||||
color([0.8, 0.8, 0.8]) render() difference() {
|
color(d_plug_shell_color) render() difference() {
|
||||||
union() {
|
union() {
|
||||||
rounded_rectangle([flange_length, flange_width, d_flange_thickness(type)], 2, center = false);
|
rounded_rectangle([flange_length, flange_width, d_flange_thickness(type)], 2, center = false);
|
||||||
linear_extrude(height = d_height, convexity = 5)
|
linear_extrude(height = d_height, convexity = 5)
|
||||||
@@ -93,7 +93,7 @@ module d_plug(type, socket = false) {
|
|||||||
//
|
//
|
||||||
// Insulator
|
// Insulator
|
||||||
//
|
//
|
||||||
color([0.2,0.2,0.2]) render() {
|
color(d_plug_insulator_color) render() {
|
||||||
translate([0,0, d_flange_thickness(type) + eta])
|
translate([0,0, d_flange_thickness(type) + eta])
|
||||||
rotate([0, 180, 0])
|
rotate([0, 180, 0])
|
||||||
linear_extrude(height = back_height + 1 + d_flange_thickness(type), convexity = 5)
|
linear_extrude(height = back_height + 1 + d_flange_thickness(type), convexity = 5)
|
||||||
|
@@ -13,6 +13,8 @@ function sanguinololu_length() = 4 * 25.4;
|
|||||||
|
|
||||||
module sanguinololu() {
|
module sanguinololu() {
|
||||||
vitamin("SANGUINOL: Electronics e.g. Sanguinolou");
|
vitamin("SANGUINOL: Electronics e.g. Sanguinolou");
|
||||||
|
|
||||||
|
color(sanguinololu_color)
|
||||||
import("../imported_stls/sanguinololu.stl");
|
import("../imported_stls/sanguinololu.stl");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -38,7 +40,7 @@ function psu_hole_list(type) = type[4];
|
|||||||
|
|
||||||
module psu(type) {
|
module psu(type) {
|
||||||
vitamin(str(psu_name(type),": PSU e.g. ", psu_name(type)));
|
vitamin(str(psu_name(type),": PSU e.g. ", psu_name(type)));
|
||||||
color([0.8, 0.8, 0.8])
|
color(psu_color)
|
||||||
translate([0,0, psu_height(type) / 2])
|
translate([0,0, psu_height(type) / 2])
|
||||||
cube([psu_length(type), psu_width(type), psu_height(type)], center = true);
|
cube([psu_length(type), psu_width(type), psu_height(type)], center = true);
|
||||||
|
|
||||||
|
@@ -78,7 +78,7 @@ module fan_holes(type, poly = false) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
module fan_assembly(type, thickness) {
|
module fan_assembly(type, thickness) {
|
||||||
color([0.2, 0.2, 0.2])
|
color(fan_color)
|
||||||
render()
|
render()
|
||||||
fan(type);
|
fan(type);
|
||||||
|
|
||||||
|
@@ -14,7 +14,7 @@ LM4UU = [12, 8, 4];
|
|||||||
|
|
||||||
module linear_bearing(type) {
|
module linear_bearing(type) {
|
||||||
vitamin(str("LM",type[2],"UU: ","LM",type[2],"UU linear bearing"));
|
vitamin(str("LM",type[2],"UU: ","LM",type[2],"UU linear bearing"));
|
||||||
color([0.7,0.7,0.7]) rotate([0,90,0]) difference() {
|
color(bearing_color) rotate([0,90,0]) difference() {
|
||||||
cylinder(r = type[1] / 2, h = type[0], center = true);
|
cylinder(r = type[1] / 2, h = type[0], center = true);
|
||||||
cylinder(r = type[2] / 2, h = type[0] + 1, center = true);
|
cylinder(r = type[2] / 2, h = type[0] + 1, center = true);
|
||||||
}
|
}
|
||||||
|
@@ -39,7 +39,7 @@ module microswitch_contact_space() {
|
|||||||
module microswitch() {
|
module microswitch() {
|
||||||
vitamin("SMMICRO: Microswitch");
|
vitamin("SMMICRO: Microswitch");
|
||||||
translate([-(5.1 + 9.5 - 7.5), -(8.4 + 2.5), -3.2 + (exploded ? 5 : 0)]) { // put operating point of button at the origin
|
translate([-(5.1 + 9.5 - 7.5), -(8.4 + 2.5), -3.2 + (exploded ? 5 : 0)]) { // put operating point of button at the origin
|
||||||
color([0,0,0]) render() difference() { // main body
|
color(microswitch_color) render() difference() { // main body
|
||||||
cube([19.8, 10.2, 6.4]);
|
cube([19.8, 10.2, 6.4]);
|
||||||
translate([10, 9.5, -1])
|
translate([10, 9.5, -1])
|
||||||
cube([19.8, 10.2, 8]); // lower half of top
|
cube([19.8, 10.2, 8]); // lower half of top
|
||||||
@@ -48,7 +48,7 @@ module microswitch() {
|
|||||||
translate([5.1 + 9.5, 2.5, -1])
|
translate([5.1 + 9.5, 2.5, -1])
|
||||||
cylinder(r = 2.35 / 2, h = 8);
|
cylinder(r = 2.35 / 2, h = 8);
|
||||||
}
|
}
|
||||||
color([1,0.7,0]) render() // orange button
|
color(microswitch_button_color) render() // orange button
|
||||||
translate([5.1 + 9.5 - 7.5,8.4 + 2.5 - 0.5,1.6])
|
translate([5.1 + 9.5 - 7.5,8.4 + 2.5 - 0.5,1.6])
|
||||||
linear_extrude(height = 3.2)
|
linear_extrude(height = 3.2)
|
||||||
hull() {
|
hull() {
|
||||||
@@ -56,7 +56,7 @@ module microswitch() {
|
|||||||
translate([0,-4])
|
translate([0,-4])
|
||||||
circle(r = 1);
|
circle(r = 1);
|
||||||
}
|
}
|
||||||
color([1,1,0]) render() // yellow contacts
|
color(microswitch_contact_color) render() // yellow contacts
|
||||||
for(x = [1.6, 1.6 + 8.8, 1.6 + 8.8 + 7.3])
|
for(x = [1.6, 1.6 + 8.8, 1.6 + 8.8 + 7.3])
|
||||||
translate([x, 2.5 - 6.4, 1.6])
|
translate([x, 2.5 - 6.4, 1.6])
|
||||||
difference() {
|
difference() {
|
||||||
|
@@ -32,7 +32,7 @@ module nut(type, nyloc = false) {
|
|||||||
if(exploded && nyloc)
|
if(exploded && nyloc)
|
||||||
cylinder(r = 0.2, h = 10);
|
cylinder(r = 0.2, h = 10);
|
||||||
|
|
||||||
color([0.7, 0.7, 0.7]) render() translate([0, 0, (exploded && nyloc) ? 10 : 0]) difference() {
|
color(nut_color) render() translate([0, 0, (exploded && nyloc) ? 10 : 0]) difference() {
|
||||||
union() {
|
union() {
|
||||||
cylinder(r = outer_rad, h = thickness, $fn = 6);
|
cylinder(r = outer_rad, h = thickness, $fn = 6);
|
||||||
if(nyloc)
|
if(nyloc)
|
||||||
@@ -71,7 +71,7 @@ module wingnut(type) {
|
|||||||
if(exploded)
|
if(exploded)
|
||||||
cylinder(r = 0.2, h = 10);
|
cylinder(r = 0.2, h = 10);
|
||||||
|
|
||||||
color([0.7,0.7,0.7]) render() translate([0, 0, exploded ? 10 : 0]) difference() {
|
color(nut_color) render() translate([0, 0, exploded ? 10 : 0]) difference() {
|
||||||
union() {
|
union() {
|
||||||
cylinder(r1 = bottom_rad, r2 = top_rad, h = thickness);
|
cylinder(r1 = bottom_rad, r2 = top_rad, h = thickness);
|
||||||
for(rot = [0, 180])
|
for(rot = [0, 180])
|
||||||
|
@@ -16,12 +16,12 @@ module pillar(type) {
|
|||||||
height = pillar_height(type);
|
height = pillar_height(type);
|
||||||
|
|
||||||
vitamin(str("pillar M", type[0], "x", height));
|
vitamin(str("pillar M", type[0], "x", height));
|
||||||
color([0.9,0.9,0.9]) render() difference() {
|
color(pillar_color) render() difference() {
|
||||||
cylinder(h = height, r = type[2] / 2);
|
cylinder(h = height, r = type[2] / 2);
|
||||||
translate([0,0, height])
|
translate([0,0, height])
|
||||||
cylinder(h = type[3] * 2, r = type[0] / 2, center = true);
|
cylinder(h = type[3] * 2, r = type[0] / 2, center = true);
|
||||||
}
|
}
|
||||||
color([1,1,0]) render() cylinder(h = type[3] * 2, r = type[0] / 2, center = true);
|
color(pillar_liner_color) render() cylinder(h = type[3] * 2, r = type[0] / 2, center = true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -29,7 +29,7 @@ module hex_pillar(type) {
|
|||||||
height = pillar_height(type);
|
height = pillar_height(type);
|
||||||
|
|
||||||
vitamin(str("HP0", type[0], height, " : Hex pillar M", type[0], " x ", height));
|
vitamin(str("HP0", type[0], height, " : Hex pillar M", type[0], " x ", height));
|
||||||
color([0.9,0.9,0.9]) render() difference() {
|
color(pillar_color) render() difference() {
|
||||||
union() {
|
union() {
|
||||||
cylinder(h = height, r = type[2] / 2, $fn = 6);
|
cylinder(h = height, r = type[2] / 2, $fn = 6);
|
||||||
cylinder(h = type[3] * 2, r = type[0] / 2, center = true);
|
cylinder(h = type[3] * 2, r = type[0] / 2, center = true);
|
||||||
|
@@ -66,7 +66,7 @@ module screw(type, length) {
|
|||||||
assign(head_height = rad * 2,
|
assign(head_height = rad * 2,
|
||||||
socket_rad = type[5] / cos(30) / 2,
|
socket_rad = type[5] / cos(30) / 2,
|
||||||
socket_depth = 2 * rad / 3)
|
socket_depth = 2 * rad / 3)
|
||||||
color([0.2,0.2,0.2]) render() difference() {
|
color(screw_cap_color) render() difference() {
|
||||||
union() {
|
union() {
|
||||||
cylinder(r = head_rad, h = head_height);
|
cylinder(r = head_rad, h = head_height);
|
||||||
translate([0,0, - length + eta])
|
translate([0,0, - length + eta])
|
||||||
@@ -79,14 +79,14 @@ module screw(type, length) {
|
|||||||
if(head_type == hs_grub) {
|
if(head_type == hs_grub) {
|
||||||
assign(socket_rad = type[4] / 2,
|
assign(socket_rad = type[4] / 2,
|
||||||
socket_depth = type[5])
|
socket_depth = type[5])
|
||||||
color([0.2,0.2,0.2]) render() difference() {
|
color(screw_grub_color) render() difference() {
|
||||||
cylinder(r = rad, h = length);
|
cylinder(r = rad, h = length);
|
||||||
cylinder(r = socket_rad, h = socket_depth * 2, $fn = 6, center = true);
|
cylinder(r = socket_rad, h = socket_depth * 2, $fn = 6, center = true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(head_type == hs_hex) {
|
if(head_type == hs_hex) {
|
||||||
assign(head_height =type[5])
|
assign(head_height =type[5])
|
||||||
color([0.8,0.8,0.8]) render() union() {
|
color(screw_hex_color) render() union() {
|
||||||
cylinder(r = head_rad, h = head_height, $fn = 6);
|
cylinder(r = head_rad, h = head_height, $fn = 6);
|
||||||
translate([0,0, - length + eta])
|
translate([0,0, - length + eta])
|
||||||
cylinder(r = rad, h = length);
|
cylinder(r = rad, h = length);
|
||||||
@@ -96,7 +96,7 @@ module screw(type, length) {
|
|||||||
assign(head_height = type[5],
|
assign(head_height = type[5],
|
||||||
socket_rad = 0.6 * head_rad,
|
socket_rad = 0.6 * head_rad,
|
||||||
socket_depth = 0.5 * type[5])
|
socket_depth = 0.5 * type[5])
|
||||||
color([0.8,0.8,0.4]) render() difference() {
|
color(screw_pan_color) render() difference() {
|
||||||
union() {
|
union() {
|
||||||
rounded_cylinder(r = head_rad, h = head_height, r2 = head_height / 2);
|
rounded_cylinder(r = head_rad, h = head_height, r2 = head_height / 2);
|
||||||
translate([0,0, - length + eta])
|
translate([0,0, - length + eta])
|
||||||
@@ -113,7 +113,7 @@ module screw(type, length) {
|
|||||||
socket_rad = 0.6 * head_rad,
|
socket_rad = 0.6 * head_rad,
|
||||||
socket_depth = 0.3 * head_rad,
|
socket_depth = 0.3 * head_rad,
|
||||||
socket_width = 1)
|
socket_width = 1)
|
||||||
color([0.8,0.8,0.4]) render() difference() {
|
color(screw_cs_color) render() difference() {
|
||||||
union() {
|
union() {
|
||||||
translate([0,0, -head_height])
|
translate([0,0, -head_height])
|
||||||
cylinder(h = head_height, r1 = 0, r2 = head_rad);
|
cylinder(h = head_height, r1 = 0, r2 = head_rad);
|
||||||
|
@@ -7,14 +7,22 @@
|
|||||||
//
|
//
|
||||||
// Flat sheets
|
// Flat sheets
|
||||||
//
|
//
|
||||||
MDF6 = [ "MD", "MDF sheet", 6, [0.4, 0.4, 0.2, 1 ], true];
|
|
||||||
MDF10 = [ "MD", "MDF sheet", 10, [0.4, 0.4, 0.2, 1 ], true];
|
// The "Soft" parameter determines if the sheet material will hold threads.
|
||||||
MDF12 = [ "MD", "MDF sheet", 12, [0.4, 0.4, 0.2, 1 ], true];
|
// If not, nuts will be used to retain screws.
|
||||||
PMMA6 = [ "AC", "Acrylic sheet", 6, [1, 1, 1, 0.5 ], false];
|
|
||||||
PMMA8 = [ "AC", "Acrylic sheet", 8, [1, 1, 1, 0.2 ], false];
|
// The "Color" parameter is a quad-array: [R, G, B, Alpha]
|
||||||
PMMA10 = [ "AC", "Acrylic sheet",10, [1, 1, 1, 0.2 ], false];
|
|
||||||
glass = [ "GL", "Glass sheet", 2, [1, 1, 1, 0.25 ], false];
|
// [ Code, Description, Thickness, Color, Soft]
|
||||||
DiBond = [ "DB", "Dibond sheet", 3, [0.5, 0.5, 0.5, 1 ], false];
|
|
||||||
|
MDF6 = [ "MD", "MDF sheet", 6, MDF_brown, true]; // ~1/4"
|
||||||
|
MDF10 = [ "MD", "MDF sheet", 10, MDF_brown, true]; // ~3/8"
|
||||||
|
MDF12 = [ "MD", "MDF sheet", 12, MDF_brown, true]; // ~1/2"
|
||||||
|
PMMA6 = [ "AC", "Acrylic sheet", 6, acrylic_clear, false]; // ~1/4"
|
||||||
|
PMMA8 = [ "AC", "Acrylic sheet", 8, acrylic_clear, false]; // ~5/16"
|
||||||
|
PMMA10 = [ "AC", "Acrylic sheet",10, acrylic_clear, false]; // ~3/8"
|
||||||
|
glass = [ "GL", "Glass sheet", glass_thickness, glass_clear, false];
|
||||||
|
DiBond = [ "DB", "Dibond sheet", 3, dibond_grey, false];
|
||||||
|
|
||||||
function sheet_thickness(type) = type[2];
|
function sheet_thickness(type) = type[2];
|
||||||
function sheet_is_soft(type) = type[4];
|
function sheet_is_soft(type) = type[4];
|
||||||
|
@@ -54,7 +54,7 @@ module comp_spring(spring, l = 0) {
|
|||||||
|
|
||||||
vitamin(str("SPR", spring[0], spring[1] * 100, spring[2], ": Spring ", spring[0], " x ", spring[1], " x ", spring[2] ));
|
vitamin(str("SPR", spring[0], spring[1] * 100, spring[2], ": Spring ", spring[0], " x ", spring[1], " x ", spring[2] ));
|
||||||
|
|
||||||
color([0.2, 0.2, 0.2]) render() coil(r1 = (spring[0] - spring[1])/ 2, r2 = spring[1] / 2, h = l, twists = spring[3]);
|
color(spring_color) render() coil(r1 = (spring[0] - spring[1])/ 2, r2 = spring[1] / 2, h = l, twists = spring[3]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -31,13 +31,13 @@ module NEMA(motor) {
|
|||||||
cap = 8;
|
cap = 8;
|
||||||
vitamin(str("NEMA", round(motor[0] / 2.54), length * 10, ": NEMA", round(motor[0] / 2.54), " x ", length, " stepper motor"));
|
vitamin(str("NEMA", round(motor[0] / 2.54), length * 10, ": NEMA", round(motor[0] / 2.54), " x ", length, " stepper motor"));
|
||||||
union() {
|
union() {
|
||||||
color([0,0,0]) render() // black laminations
|
color(stepper_body_color) render() // black laminations
|
||||||
translate([0,0, -length / 2])
|
translate([0,0, -length / 2])
|
||||||
intersection() {
|
intersection() {
|
||||||
cube([side, side, length - cap * 2],center = true);
|
cube([side, side, length - cap * 2],center = true);
|
||||||
cylinder(r = body_rad, h = 2 * length, center = true);
|
cylinder(r = body_rad, h = 2 * length, center = true);
|
||||||
}
|
}
|
||||||
color([0.5,0.5,0.5]) render() { // aluminium end caps
|
color(stepper_cap_color) render() { // aluminium end caps
|
||||||
difference() {
|
difference() {
|
||||||
union() {
|
union() {
|
||||||
intersection() {
|
intersection() {
|
||||||
|
@@ -20,13 +20,14 @@ M3_rubber_washer= [3, 10, 1.5, true];
|
|||||||
function washer_diameter(type) = type[1];
|
function washer_diameter(type) = type[1];
|
||||||
function washer_thickness(type) = type[2];
|
function washer_thickness(type) = type[2];
|
||||||
function washer_soft(type) = type[3];
|
function washer_soft(type) = type[3];
|
||||||
|
function washer_color(type) = washer_soft(type) ? soft_washer_color : hard_washer_color;
|
||||||
|
|
||||||
module washer(type) {
|
module washer(type) {
|
||||||
if(washer_soft(type))
|
if(washer_soft(type))
|
||||||
vitamin(str("WR", type[0] * 10, type[1], type[2] * 10, ": Rubber washer M",type[0], " x ", type[1], " x ", type[2]));
|
vitamin(str("WR", type[0] * 10, type[1], type[2] * 10, ": Rubber washer M",type[0], " x ", type[1], " x ", type[2]));
|
||||||
else
|
else
|
||||||
vitamin(str("WA", type[0] * 10, type[1], type[2] * 10, ": Washer M",type[0], " x ", type[1], " x ", type[2]));
|
vitamin(str("WA", type[0] * 10, type[1], type[2] * 10, ": Washer M",type[0], " x ", type[1], " x ", type[2]));
|
||||||
color(washer_soft(type) ? [0.2,0.2,0.2] : [0.8,0.8,0.8]) render() difference() {
|
color(washer_color(type)) render() difference() {
|
||||||
cylinder(r = washer_diameter(type) / 2, h = washer_thickness(type));
|
cylinder(r = washer_diameter(type) / 2, h = washer_thickness(type));
|
||||||
cylinder(r = type[0] / 2, h = 2 * washer_thickness(type) + 1, center = true);
|
cylinder(r = type[0] / 2, h = 2 * washer_thickness(type) + 1, center = true);
|
||||||
}
|
}
|
||||||
@@ -38,7 +39,7 @@ module star_washer(type) {
|
|||||||
inner = (hole + rad) / 2;
|
inner = (hole + rad) / 2;
|
||||||
spoke = rad - hole;
|
spoke = rad - hole;
|
||||||
vitamin(str("WS", type[0] * 10, type[1], type[2] * 10, ": Star washer M",type[0], " x ", type[1], " x ", type[2]));
|
vitamin(str("WS", type[0] * 10, type[1], type[2] * 10, ": Star washer M",type[0], " x ", type[1], " x ", type[2]));
|
||||||
color([0.8,0.8,0.4]) render() difference() {
|
color(star_washer_color) render() difference() {
|
||||||
cylinder(r = rad, h = washer_thickness(type));
|
cylinder(r = rad, h = washer_thickness(type));
|
||||||
cylinder(r = hole, h = 2 * washer_thickness(type) + 1, center = true);
|
cylinder(r = hole, h = 2 * washer_thickness(type) + 1, center = true);
|
||||||
for(a = [0:30:360])
|
for(a = [0:30:360])
|
||||||
|
@@ -7,7 +7,9 @@
|
|||||||
//
|
//
|
||||||
// Zipties
|
// Zipties
|
||||||
//
|
//
|
||||||
small_ziptie = [2.3, 1, [4.7, 4.25, 3], [1,1,1], 20];
|
|
||||||
|
// [width, thickness, [latch_x, latch_y, latch_z], color, length]
|
||||||
|
small_ziptie = [2.3, 1, [4.7, 4.25, 3], small_ziptie_color, 20];
|
||||||
|
|
||||||
function ziptie_width(type) = type[0];
|
function ziptie_width(type) = type[0];
|
||||||
function ziptie_thickness(type) = type[1];
|
function ziptie_thickness(type) = type[1];
|
||||||
|
@@ -181,12 +181,12 @@ function extruder_connector_height() = motor_y - d_motor_bracket_offset(NEMA17);
|
|||||||
|
|
||||||
module wades_big_gear_stl() {
|
module wades_big_gear_stl() {
|
||||||
stl("wades_big_gear");
|
stl("wades_big_gear");
|
||||||
color([0,1,0]) import("../imported_stls/39t17p.stl");
|
color(wades_big_gear_color) import("../imported_stls/39t17p.stl");
|
||||||
}
|
}
|
||||||
|
|
||||||
module wades_small_gear_stl() {
|
module wades_small_gear_stl() {
|
||||||
stl("wades_small_gear");
|
stl("wades_small_gear");
|
||||||
color([1,0,0])
|
color(wades_small_gear_color)
|
||||||
translate([-10, -10, 0])
|
translate([-10, -10, 0])
|
||||||
import("../imported_stls/wades_gear.stl");
|
import("../imported_stls/wades_gear.stl");
|
||||||
}
|
}
|
||||||
@@ -238,7 +238,7 @@ module wades_idler_block_stl() {
|
|||||||
|
|
||||||
module wade_idler_assembly() {
|
module wade_idler_assembly() {
|
||||||
|
|
||||||
color([0,1,0]) render() wades_idler_block_stl();
|
color(wades_idler_block_color) render() wades_idler_block_stl();
|
||||||
|
|
||||||
translate([0, 0, idler_height - 2])
|
translate([0, 0, idler_height - 2])
|
||||||
rotate([90, 0, 0]) {
|
rotate([90, 0, 0]) {
|
||||||
@@ -307,7 +307,7 @@ module wades_assembly() {
|
|||||||
ball_bearing(BB608);
|
ball_bearing(BB608);
|
||||||
|
|
||||||
rotate([180, 0, 0])
|
rotate([180, 0, 0])
|
||||||
color([1,0,0]) render() wades_gear_spacer_stl();
|
color(wades_gear_spacer_color) render() wades_gear_spacer_stl();
|
||||||
|
|
||||||
translate([0, 0, -7.5])
|
translate([0, 0, -7.5])
|
||||||
rotate([180, 0, 0])
|
rotate([180, 0, 0])
|
||||||
@@ -330,9 +330,9 @@ module wades_assembly() {
|
|||||||
|
|
||||||
translate([75, 5 - nozzle_length / 4, 15])
|
translate([75, 5 - nozzle_length / 4, 15])
|
||||||
rotate([-90, 0, 0]) {
|
rotate([-90, 0, 0]) {
|
||||||
color([0.6, 0.5, 0.2]) cylinder(h = nozzle_length / 2 + 10, r = insulator_diameter(hot_end) / 2, center = true);
|
color(filament_viz_color) cylinder(h = nozzle_length / 2 + 10, r = insulator_diameter(hot_end) / 2, center = true);
|
||||||
translate([0, 0, -nozzle_length /2 - 5])
|
translate([0, 0, -nozzle_length /2 - 5])
|
||||||
color([1, 1, 0]) cylinder(h = nozzle_length / 2, r = 3, center = true);
|
color(extruder_nozzle_color) cylinder(h = nozzle_length / 2, r = 3, center = true);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(side = [-1, 1])
|
for(side = [-1, 1])
|
||||||
|
@@ -376,7 +376,7 @@ module x_carriage_stl(){
|
|||||||
module x_carriage_assembly(show_extruder = false) {
|
module x_carriage_assembly(show_extruder = false) {
|
||||||
assembly("x_carriage_assembly");
|
assembly("x_carriage_assembly");
|
||||||
|
|
||||||
color([1,0,0]) render() x_carriage_stl();
|
color(x_carriage_color) render() x_carriage_stl();
|
||||||
|
|
||||||
if(show_extruder)
|
if(show_extruder)
|
||||||
translate([75, 15, eta])
|
translate([75, 15, eta])
|
||||||
@@ -404,7 +404,7 @@ module x_carriage_assembly(show_extruder = false) {
|
|||||||
//
|
//
|
||||||
translate([length / 2 + base_offset, -width / 2, x_carriage_offset() - ball_bearing_diameter(X_idler_bearing) / 2]) {
|
translate([length / 2 + base_offset, -width / 2, x_carriage_offset() - ball_bearing_diameter(X_idler_bearing) / 2]) {
|
||||||
mirror([1,0,0])
|
mirror([1,0,0])
|
||||||
color([0,1,0]) render() x_belt_clamp_stl();
|
color(x_belt_clamp_color) render() x_belt_clamp_stl();
|
||||||
translate([-lug_width / 2, lug_screw, clamp_thickness])
|
translate([-lug_width / 2, lug_screw, clamp_thickness])
|
||||||
nut(M3_nut, true);
|
nut(M3_nut, true);
|
||||||
}
|
}
|
||||||
@@ -420,7 +420,7 @@ module x_carriage_assembly(show_extruder = false) {
|
|||||||
nut(M3_nut, true);
|
nut(M3_nut, true);
|
||||||
|
|
||||||
translate([-length / 2 + base_offset, -width / 2, -(clamp_thickness + belt_thickness(X_belt))]) {
|
translate([-length / 2 + base_offset, -width / 2, -(clamp_thickness + belt_thickness(X_belt))]) {
|
||||||
color([0,1,0]) render() x_belt_grip_stl();
|
color(x_belt_clamp_color) render() x_belt_grip_stl();
|
||||||
translate([lug_width / 2, lug_screw, 0])
|
translate([lug_width / 2, lug_screw, 0])
|
||||||
rotate([180, 0, 0])
|
rotate([180, 0, 0])
|
||||||
screw_and_washer(M3_cap_screw, 25);
|
screw_and_washer(M3_cap_screw, 25);
|
||||||
@@ -432,7 +432,7 @@ module x_carriage_assembly(show_extruder = false) {
|
|||||||
|
|
||||||
translate([25 + wall, belt_tensioner_height / 2, 0])
|
translate([25 + wall, belt_tensioner_height / 2, 0])
|
||||||
rotate([90, 180, 0])
|
rotate([90, 180, 0])
|
||||||
color([0,1,0]) render() x_belt_tensioner_stl();
|
color(x_belt_clamp_color) render() x_belt_tensioner_stl();
|
||||||
|
|
||||||
translate([25 + wall, 0, 0])
|
translate([25 + wall, 0, 0])
|
||||||
rotate([90, 180, 0])
|
rotate([90, 180, 0])
|
||||||
|
@@ -460,7 +460,7 @@ module x_end_assembly(motor_end) {
|
|||||||
//
|
//
|
||||||
// RP bit
|
// RP bit
|
||||||
//
|
//
|
||||||
color([0,1,0]) render() x_end_bracket(motor_end, true);
|
color(x_end_bracket_color) render() x_end_bracket(motor_end, true);
|
||||||
//
|
//
|
||||||
// bearings
|
// bearings
|
||||||
//
|
//
|
||||||
|
@@ -44,7 +44,7 @@ module bearing_mount(bearing, height, endstop) {
|
|||||||
endstop_h = height - bar_clamp_switch_z_offset() + microswitch_thickness() / 4;
|
endstop_h = height - bar_clamp_switch_z_offset() + microswitch_thickness() / 4;
|
||||||
|
|
||||||
stl(str("y_bearing_mount", endstop ? "_switch" : ""));
|
stl(str("y_bearing_mount", endstop ? "_switch" : ""));
|
||||||
color([1,0,0]) union() {
|
color(y_bearing_mount_color) union() {
|
||||||
bearing_holder(bearing, height);
|
bearing_holder(bearing, height);
|
||||||
for(end = [-1, 1])
|
for(end = [-1, 1])
|
||||||
translate([end * (bearing_holder_width(bearing) / 2 - eta), -end * (bearing_holder_length(bearing) - bearing_clamp_tab)/2, -height])
|
translate([end * (bearing_holder_width(bearing) / 2 - eta), -end * (bearing_holder_length(bearing) - bearing_clamp_tab)/2, -height])
|
||||||
@@ -62,13 +62,13 @@ module bearing_mount_holes(height)
|
|||||||
for(end = [-1, 1])
|
for(end = [-1, 1])
|
||||||
translate([end * (bearing_holder_width(Y_bearings) / 2 + tab_length / 2),
|
translate([end * (bearing_holder_width(Y_bearings) / 2 + tab_length / 2),
|
||||||
-end * (bearing_holder_length(Y_bearings) - bearing_clamp_tab) / 2, 0])
|
-end * (bearing_holder_length(Y_bearings) - bearing_clamp_tab) / 2, 0])
|
||||||
cylinder(r = screw_clearance_radius, h = 100, center = true);;
|
cylinder(r = screw_clearance_radius, h = 100, center = true);
|
||||||
|
|
||||||
module y_bearing_assembly(height, endstop = false)
|
module y_bearing_assembly(height, endstop = false)
|
||||||
{
|
{
|
||||||
//assembly("y_bearing_assembly");
|
//assembly("y_bearing_assembly");
|
||||||
|
|
||||||
color([1,0,0]) render() bearing_mount(Y_bearings, height, endstop);
|
color(y_bearing_mount_color) render() bearing_mount(Y_bearings, height, endstop);
|
||||||
|
|
||||||
rotate([0,0,90]) {
|
rotate([0,0,90]) {
|
||||||
linear_bearing(Y_bearings);
|
linear_bearing(Y_bearings);
|
||||||
|
@@ -40,7 +40,7 @@ module y_belt_anchor(height, toothed) {
|
|||||||
recess = length - depth;
|
recess = length - depth;
|
||||||
|
|
||||||
stl(str("y_belt_anchor", toothed ? "_toothed" : ""));
|
stl(str("y_belt_anchor", toothed ? "_toothed" : ""));
|
||||||
color([0,1,0]) union() {
|
color(y_belt_anchor_color) union() {
|
||||||
difference() {
|
difference() {
|
||||||
union() {
|
union() {
|
||||||
translate([0, depth / 2, h / 2]) // tall bit
|
translate([0, depth / 2, h / 2]) // tall bit
|
||||||
@@ -86,7 +86,7 @@ module y_belt_anchor(height, toothed) {
|
|||||||
module y_belt_clip(toothed) {
|
module y_belt_clip(toothed) {
|
||||||
stl(str("y_belt_clip", toothed ? "_toothed" : ""));
|
stl(str("y_belt_clip", toothed ? "_toothed" : ""));
|
||||||
|
|
||||||
color([1, 0, 0]) union() {
|
color(y_belt_clip_color) union() {
|
||||||
translate([0, 0, clamp_thickness / 2]) difference() {
|
translate([0, 0, clamp_thickness / 2]) difference() {
|
||||||
rounded_rectangle([width, depth, clamp_thickness], r = rad);
|
rounded_rectangle([width, depth, clamp_thickness], r = rad);
|
||||||
|
|
||||||
@@ -104,11 +104,11 @@ module y_belt_clip(toothed) {
|
|||||||
module y_belt_anchor_assembly(height, toothed) {
|
module y_belt_anchor_assembly(height, toothed) {
|
||||||
//assembly("y_belt_anchor_assembly");
|
//assembly("y_belt_anchor_assembly");
|
||||||
|
|
||||||
color([0, 1, 0]) render() y_belt_anchor(height, toothed);
|
color(y_belt_anchor_color) render() y_belt_anchor(height, toothed);
|
||||||
|
|
||||||
translate([0, depth / 2, height + belt_thickness(Y_belt) + clamp_thickness]) {
|
translate([0, depth / 2, height + belt_thickness(Y_belt) + clamp_thickness]) {
|
||||||
rotate([180, 0, 0])
|
rotate([180, 0, 0])
|
||||||
color([1, 0, 0]) render() y_belt_clip(!toothed);
|
color(y_belt_clip_color) render() y_belt_clip(!toothed);
|
||||||
//
|
//
|
||||||
// Clamp screws
|
// Clamp screws
|
||||||
//
|
//
|
||||||
|
@@ -31,7 +31,7 @@ height = axel_height + dia / 2;
|
|||||||
module y_idler_bracket_stl() {
|
module y_idler_bracket_stl() {
|
||||||
stl("y_idler_bracket");
|
stl("y_idler_bracket");
|
||||||
|
|
||||||
color([0,1,0]) intersection() {
|
color(y_idler_bracket_color) intersection() {
|
||||||
difference() {
|
difference() {
|
||||||
rotate([90, 0, 90])
|
rotate([90, 0, 90])
|
||||||
linear_extrude(height = width, center = true) //side profile
|
linear_extrude(height = width, center = true) //side profile
|
||||||
@@ -79,7 +79,7 @@ module y_idler_screw_hole()
|
|||||||
module y_idler_assembly() {
|
module y_idler_assembly() {
|
||||||
assembly("y_idler_assembly");
|
assembly("y_idler_assembly");
|
||||||
|
|
||||||
color([0,1,0]) render() y_idler_bracket_stl();
|
color(y_idler_bracket_color) render() y_idler_bracket_stl();
|
||||||
|
|
||||||
translate([0, 0, axel_height]) rotate([0, -90, 0]) {
|
translate([0, 0, axel_height]) rotate([0, -90, 0]) {
|
||||||
|
|
||||||
|
@@ -27,7 +27,7 @@ module y_motor_bracket() {
|
|||||||
width = y_motor_bracket_width();
|
width = y_motor_bracket_width();
|
||||||
|
|
||||||
stl("y_motor_bracket");
|
stl("y_motor_bracket");
|
||||||
color([0,1,0]) {
|
color(y_motor_bracket_color) {
|
||||||
difference() {
|
difference() {
|
||||||
translate([0, 0, thickness - depth / 2]) // main body
|
translate([0, 0, thickness - depth / 2]) // main body
|
||||||
cube([width, height, depth], center = true);
|
cube([width, height, depth], center = true);
|
||||||
@@ -75,7 +75,7 @@ module y_motor_bracket_holes()
|
|||||||
module y_motor_assembly() {
|
module y_motor_assembly() {
|
||||||
assembly("y_motor_assembly");
|
assembly("y_motor_assembly");
|
||||||
|
|
||||||
color([0,1,0]) render() y_motor_bracket();
|
color(y_motor_bracket_color) render() y_motor_bracket();
|
||||||
//
|
//
|
||||||
// Mounting screws and washers
|
// Mounting screws and washers
|
||||||
//
|
//
|
||||||
|
@@ -35,7 +35,7 @@ rad = M3_nut_radius + wall;
|
|||||||
module z_coupling_stl(){
|
module z_coupling_stl(){
|
||||||
stl("z_coupling");
|
stl("z_coupling");
|
||||||
|
|
||||||
color([1,0,0]) translate([0, 0, depth / 2]) union() {
|
color(z_coupling_color) translate([0, 0, depth / 2]) union() {
|
||||||
difference(){
|
difference(){
|
||||||
linear_extrude(height = depth, center = true)
|
linear_extrude(height = depth, center = true)
|
||||||
hull() {
|
hull() {
|
||||||
@@ -89,7 +89,7 @@ module z_coupler_assembly() {
|
|||||||
explode([10 * side, 0, 0])
|
explode([10 * side, 0, 0])
|
||||||
translate([centre_line * side, 0, 0])
|
translate([centre_line * side, 0, 0])
|
||||||
rotate([0, 90, 90 * side + 90]) {
|
rotate([0, 90, 90 * side + 90]) {
|
||||||
color([1,0,0]) render() translate([0, 0, -depth/2]) z_coupling_stl();
|
color(z_coupling_color) render() translate([0, 0, -depth/2]) z_coupling_stl();
|
||||||
for(pos = [[holeX, -holeY1], [-holeX, -holeY2]])
|
for(pos = [[holeX, -holeY1], [-holeX, -holeY2]])
|
||||||
translate([pos[0], pos[1], -depth/2])
|
translate([pos[0], pos[1], -depth/2])
|
||||||
rotate([180, 0, 0])
|
rotate([180, 0, 0])
|
||||||
|
@@ -129,7 +129,7 @@ module z_limit_switch_assembly() {
|
|||||||
|
|
||||||
translate([0, 0, pos]) {
|
translate([0, 0, pos]) {
|
||||||
rotate([90, 0, 0])
|
rotate([90, 0, 0])
|
||||||
color([0, 1, 0]) render()
|
color(z_limit_switch_bracket_color) render()
|
||||||
z_limit_switch_bracket_stl();
|
z_limit_switch_bracket_stl();
|
||||||
|
|
||||||
translate([screw_x - screw_head_height(M3_hex_screw), -screw_y, screw_z])
|
translate([screw_x - screw_head_height(M3_hex_screw), -screw_y, screw_z])
|
||||||
|
@@ -36,7 +36,7 @@ module z_motor_bracket(y_offset, rhs) {
|
|||||||
cutout = y_offset - length / 2 - back_thickness;
|
cutout = y_offset - length / 2 - back_thickness;
|
||||||
|
|
||||||
stl(rhs? "z_motor_bracket_rhs" : "z_motor_bracket_lhs");
|
stl(rhs? "z_motor_bracket_rhs" : "z_motor_bracket_lhs");
|
||||||
color([0,1,0]) {
|
color(z_motor_bracket_color) {
|
||||||
difference() {
|
difference() {
|
||||||
union() {
|
union() {
|
||||||
//
|
//
|
||||||
@@ -132,7 +132,7 @@ module z_motor_bracket_holes(gantry_setback)
|
|||||||
module z_motor_assembly(gantry_setback, rhs, standalone = false) {
|
module z_motor_assembly(gantry_setback, rhs, standalone = false) {
|
||||||
assembly("z_motor_assembly");
|
assembly("z_motor_assembly");
|
||||||
|
|
||||||
color([0,1,0]) render() z_motor_bracket(gantry_setback, rhs);
|
color(z_motor_bracket_color) render() z_motor_bracket(gantry_setback, rhs);
|
||||||
//
|
//
|
||||||
// Clamp screw and washer
|
// Clamp screw and washer
|
||||||
//
|
//
|
||||||
|
Reference in New Issue
Block a user