Improved Y axis with Yopero's suggestion.

Z carriage shows the name of the machine, using orbitron.dxf font from Write.scad.
Updated templates and renders.
Updated README to show changes.
pull/6/head
carlosgs 2013-05-26 11:26:32 +02:00
parent 30cd3a10f4
commit df6c2ad976
10 changed files with 63819 additions and 21901 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -4,6 +4,7 @@
use <../libs/obiscad/bcube.scad> use <../libs/obiscad/bcube.scad>
use <../libs/build_plate.scad> use <../libs/build_plate.scad>
use <../libs/Write/Write.scad>
include <./lm8uu_holder.scad> include <./lm8uu_holder.scad>
@ -37,6 +38,9 @@ Z_threaded_pos = motor_width/2+axis_distance;
Z_smooth_rods_sep = 55; Z_smooth_rods_sep = 55;
textHscale = 0.8;
textThickness = 1.5;
// Derived from Spindle mount for ShapeOko by Misan (http://www.thingiverse.com/thing:26740) // Derived from Spindle mount for ShapeOko by Misan (http://www.thingiverse.com/thing:26740)
module spindle_holder(length=50,showSpindle=true) { module spindle_holder(length=50,showSpindle=true) {
$fn=6; $fn=6;
@ -54,8 +58,16 @@ module spindle_holder(length=50,showSpindle=true) {
difference() { difference() {
union() { union() {
cylinder(r=30,h=length,$fn=60); cylinder(r=30,h=length,$fn=60);
// Write text in the front
color([0.5,0.5,0.5]) scale([-1,1,-textHscale]) writecylinder("CYCLONE",[0,0,-length/(3*textHscale)],30,0,font="orbitron.dxf",space=1.1,h=12,t=textThickness,center=true,ccw=true);
translate ([-30,0,0]) cube([60,38,length]); translate ([-30,0,0]) cube([60,38,length]);
translate([28,-7,0]) cube([20,20,length]); translate([28,-7,0]) cube([20,20,length]);
color([0.5,0.5,0.5]) scale([-1,1,-textHscale]) writecylinder("PCB Factory",[0,0,-length/(1.5*textHscale)],30,0,font="orbitron.dxf",space=1.1,h=14/2,t=textThickness,center=true,ccw=true);
translate ([-30,0,0]) cube([60,38,length]);
translate([28,-7,0]) cube([20,20,length]);
} }
translate([0,0,-0.05]) cylinder(r=26,h=length+2,$fn=60); translate([0,0,-0.05]) cylinder(r=26,h=length+2,$fn=60);

File diff suppressed because it is too large Load Diff

View File

@ -18,6 +18,8 @@ motor_center_diameter = 23;
motor_screw_diameter = 3.7; motor_screw_diameter = 3.7;
motor_screw_head_diameter = 8; motor_screw_head_diameter = 8;
motor_adjust_margin = 3;
bearing_diameter = 22.4; bearing_diameter = 22.4;
M8_rod_diameter = 8.2; M8_rod_diameter = 8.2;
@ -29,26 +31,48 @@ wall_width = 70;
idler_width = 25; idler_width = 25;
module motor_stand_no_base(with_motor=true) { wall_extraWidth_left = base_width+5;
difference() { wall_extraWidth_right = 5;
translate([wall_height/2,wall_width/2,wall_thickness/2])
bcube([wall_height,wall_width,wall_thickness],cr=4,cres=10);
// Position relative to motor shaft totalWallWidth = wall_width+wall_extraWidth_left+wall_extraWidth_right;
translate([motor_width/2,motor_width/2,wall_thickness/2]) {
if(with_motor) { module motorHoles() {
// Hole for the motor shaft // Hole for the motor shaft
translate([0,-wall_width/2,0]) hull() {
cube([20,wall_width,10*wall_thickness],cr=4,cres=10,center=true); translate([0,motor_adjust_margin/2,0])
cylinder(r=motor_center_diameter/2,h=10*wall_thickness,center=true,$fn=40); cylinder(r=motor_center_diameter/2,h=10*wall_thickness,center=true,$fn=40);
translate([0,-motor_adjust_margin/2,0])
cylinder(r=motor_center_diameter/2,h=10*wall_thickness,center=true,$fn=40);
}
// Screws for holding the motor // Screws for holding the motor
for(i=[-1,1]) for(j=[-1,1]) for(i=[-1,1]) for(j=[-1,1])
translate([i*motor_screw_distance/2,j*motor_screw_distance/2,0]) { translate([i*motor_screw_distance/2,j*motor_screw_distance/2,0]) {
cylinder(r=motor_screw_diameter/2,h=10*wall_thickness,center=true,$fn=40); hull() {
cylinder(r=motor_screw_head_diameter/2,h=10*wall_thickness,center=false,$fn=40); translate([0,motor_adjust_margin/2,0])
cylinder(r=motor_screw_diameter/2,h=10*wall_thickness,center=true,$fn=40);
translate([0,-motor_adjust_margin/2,0])
cylinder(r=motor_screw_diameter/2,h=10*wall_thickness,center=true,$fn=40);
}
hull() {
translate([0,motor_adjust_margin/2,0])
cylinder(r=motor_screw_head_diameter/2,h=10*wall_thickness,center=false,$fn=40);
translate([0,-motor_adjust_margin/2,0])
cylinder(r=motor_screw_head_diameter/2,h=10*wall_thickness,center=false,$fn=40);
}
} }
} // End if with motor }
module motor_stand_no_base(with_motor=true) {
difference() {
translate([wall_height/2,totalWallWidth/2-wall_extraWidth_left,wall_thickness/2])
bcube([wall_height,totalWallWidth,wall_thickness],cr=4,cres=10);
// Position relative to motor shaft
translate([motor_width/2,motor_width/2,wall_thickness/2]) {
if(with_motor)
motorHoles();
// Bearing holes // Bearing holes
rotate([0,0,15]) translate([0,axis_distance,0]) { rotate([0,0,15]) translate([0,axis_distance,0]) {
@ -61,29 +85,35 @@ difference() {
} // End of difference } // End of difference
} }
module motor_stand(with_motor=true) { module holder(h=35,noScrews=false,base_width_inc=0) {
union() {
motor_stand_no_base(with_motor);
difference() { difference() {
union() { union() {
translate([wall_height-bottom_thickness,wall_width-base_width]) { translate([wall_height-bottom_thickness,0]) {
cube([bottom_thickness,base_width,base_length]); if(!noScrews) cube([bottom_thickness,base_width+base_width_inc,base_length]);
hull() { hull() {
cube([bottom_thickness,5,base_length]); cube([bottom_thickness,5,base_length]);
translate([-18,0,0]) translate([-h,0,0])
cube([0.001,5,0.001]); cube([0.001,5,0.001]);
} }
} }
} }
// --- screws for the base --- // --- screws for the base ---
translate([wall_height,wall_width-5,15]) if(!noScrews) translate([wall_height,base_width/2+2.5,15])
rotate([0,90,0]) { rotate([0,90,0]) {
translate([-5,0,0]) translate([-5,0,0])
cylinder(r=base_screw_diameter/2,h=100,center=true,$fn=6); cylinder(r=base_screw_diameter/2,h=100,center=true,$fn=7);
translate([5,0,0]) translate([5,0,0])
cylinder(r=base_screw_diameter/2,h=100,center=true,$fn=6); cylinder(r=base_screw_diameter/2,h=100,center=true,$fn=7);
} }
} // End of difference } // End of difference
}
module motor_stand(with_motor=true) {
union() {
motor_stand_no_base(with_motor);
translate([0,wall_width]) holder(noScrews=true);
translate([0,52.4-5/2]) holder(h=15,base_width_inc=1);
translate([0,-wall_extraWidth_left+base_width]) scale([1,-1,1]) holder();
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -31,7 +31,8 @@
t = 1; //mm letter thickness t = 1; //mm letter thickness
space =1; //extra space between characters in (character widths) space =1; //extra space between characters in (character widths)
rotate=0; // text rotation (clockwise) rotate=0; // text rotation (clockwise)
font = "../libs/Write/Letters.dxf"; //default for aditional fonts font = "Letters.dxf"; //default for aditional fonts
fontPath = "../libs/Write/"; // CGS MOD: Path for the DXF font files
// write cube defaults // write cube defaults
@ -300,7 +301,7 @@ rotate(rotate,[0,0,-1]){
scale([.125*h,.125*h,t]){ scale([.125*h,.125*h,t]){
translate([ (-len(word)*5.5*space/2) + (r*5.5*space),0,0]) translate([ (-len(word)*5.5*space/2) + (r*5.5*space),0,0])
linear_extrude(height=1,convexity=10,center=true){ linear_extrude(height=1,convexity=10,center=true){
import(file = font,layer=str(word[r],"_")); import(file = str(fontPath,font) ,layer=str(word[r],"_"));
} }
} }
} }
@ -309,7 +310,7 @@ rotate(rotate,[0,0,-1]){
scale([.125*h,.125*h,t]){ scale([.125*h,.125*h,t]){
translate([r*5.5*space,0,0]) translate([r*5.5*space,0,0])
linear_extrude(height=1,convexity=10,center=true){ linear_extrude(height=1,convexity=10,center=true){
import(file = font,layer=str(word[r],"_")); import(file = str(fontPath,font) ,layer=str(word[r],"_"));
} }
} }
} }
@ -321,7 +322,7 @@ rotate(rotate,[0,0,-1]){
scale([.125*h,.125*h,t]){ scale([.125*h,.125*h,t]){
translate([ (-len(word)*5.5*space/2) + (r*5.5*space),0,0]) translate([ (-len(word)*5.5*space/2) + (r*5.5*space),0,0])
linear_extrude(height=1,convexity=10,center=true){ linear_extrude(height=1,convexity=10,center=true){
import(file = font,layer=str(word[r])); import(file = str(fontPath,font) ,layer=str(word[r]));
} }
} }
} }
@ -330,7 +331,7 @@ rotate(rotate,[0,0,-1]){
scale([.125*h,.125*h,t]){ scale([.125*h,.125*h,t]){
translate([r*5.5*space,0,0]) translate([r*5.5*space,0,0])
linear_extrude(height=1,convexity=10,center=true){ linear_extrude(height=1,convexity=10,center=true){
import(file = font,layer=str(word[r])); import(file = str(fontPath,font) ,layer=str(word[r]));
} }
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
Cyclone-PCB-Factory Cyclone-PCB-Factory v0.9.6
=================== ===================
The first 3D-printable (Rep-Rap alike) CNC machine, intended for PCB manufacture. The first 3D-printable (Rep-Rap alike) CNC machine, intended for PCB manufacture.
@ -9,8 +9,13 @@ This hardware/software is provided “as is," and you use the hardware/software
News: News:
-- --
**Hardware:**
* v0.9.6 has a robust Y axis motor stand (improvement suggested and tested by Yopero), and the Z carriage now shows the name of the machine (how cool is that? :P)
**Software:**
* First Z probing results are promising, read: https://plus.google.com/u/0/113437723819360223498/posts/9VCHqqnirj6 and https://plus.google.com/u/0/113437723819360223498/posts/89W2cv1fgQW * First Z probing results are promising, read: https://plus.google.com/u/0/113437723819360223498/posts/9VCHqqnirj6 and https://plus.google.com/u/0/113437723819360223498/posts/89W2cv1fgQW
* Added the python probing script (v0.1) and Octave/Matlab visualizer * Added the python probing script (v0.1) and Octave/Matlab visualizer
**Firmware:**
* No news, it is Marlin with support for G30 probing command
Videos: Videos:
-- --
@ -64,6 +69,16 @@ License: CC-BY-SA
-- --
Attribution - Share Alike - Creative Commons (http://creativecommons.org/licenses/by-sa/3.0/). Attribution - Share Alike - Creative Commons (http://creativecommons.org/licenses/by-sa/3.0/).
Derived/uses:
--
- "Linear actuator concept for CNC machines" by Carlosgs (http://www.thingiverse.com/thing:45103)
- "Parametric openscad beveled cube" by Obijuan (http://www.thingiverse.com/thing:29842)
- "Minimal footprint friction-fit LM8UU holder" by thantik (http://www.thingiverse.com/thing:23041)
- "Spindle mount for ShapeOko" by Misan (http://www.thingiverse.com/thing:26740)
- "Carro Z para Cyclone CNC mill intended for PCB" by Quim (http://www.thingiverse.com/thing:80718)
- Write.scad (and DXF fonts) by HarlanDMii (http://www.thingiverse.com/thing:16193)
- "PCB Machining Vise" by Forgetful_Guy (http://www.thingiverse.com/thing:63578)
Special thanks: Special thanks:
-- --
- Z axis concepts by **Quim Borras** and the spindle motor holder by **Misan** were really useful!! Also, **Diego Viejo**'s machine was of great inspiration for the Z axis (https://plus.google.com/u/0/photos/113930344830086538817/albums/5868944432651911713?authkey=CLDJgdehlN773gE) **Thank you all!!** - Z axis concepts by **Quim Borras** and the spindle motor holder by **Misan** were really useful!! Also, **Diego Viejo**'s machine was of great inspiration for the Z axis (https://plus.google.com/u/0/photos/113930344830086538817/albums/5868944432651911713?authkey=CLDJgdehlN773gE) **Thank you all!!**