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/build_plate.scad>
use <../libs/Write/Write.scad>
include <./lm8uu_holder.scad>
@ -37,6 +38,9 @@ Z_threaded_pos = motor_width/2+axis_distance;
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)
module spindle_holder(length=50,showSpindle=true) {
$fn=6;
@ -54,8 +58,16 @@ module spindle_holder(length=50,showSpindle=true) {
difference() {
union() {
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([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);

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_head_diameter = 8;
motor_adjust_margin = 3;
bearing_diameter = 22.4;
M8_rod_diameter = 8.2;
@ -29,26 +31,48 @@ wall_width = 70;
idler_width = 25;
module motor_stand_no_base(with_motor=true) {
difference() {
translate([wall_height/2,wall_width/2,wall_thickness/2])
bcube([wall_height,wall_width,wall_thickness],cr=4,cres=10);
wall_extraWidth_left = base_width+5;
wall_extraWidth_right = 5;
// Position relative to motor shaft
translate([motor_width/2,motor_width/2,wall_thickness/2]) {
if(with_motor) {
totalWallWidth = wall_width+wall_extraWidth_left+wall_extraWidth_right;
module motorHoles() {
// Hole for the motor shaft
translate([0,-wall_width/2,0])
cube([20,wall_width,10*wall_thickness],cr=4,cres=10,center=true);
cylinder(r=motor_center_diameter/2,h=10*wall_thickness,center=true,$fn=40);
hull() {
translate([0,motor_adjust_margin/2,0])
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
for(i=[-1,1]) for(j=[-1,1])
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);
cylinder(r=motor_screw_head_diameter/2,h=10*wall_thickness,center=false,$fn=40);
hull() {
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
rotate([0,0,15]) translate([0,axis_distance,0]) {
@ -61,29 +85,35 @@ difference() {
} // End of difference
}
module motor_stand(with_motor=true) {
union() {
motor_stand_no_base(with_motor);
module holder(h=35,noScrews=false,base_width_inc=0) {
difference() {
union() {
translate([wall_height-bottom_thickness,wall_width-base_width]) {
cube([bottom_thickness,base_width,base_length]);
translate([wall_height-bottom_thickness,0]) {
if(!noScrews) cube([bottom_thickness,base_width+base_width_inc,base_length]);
hull() {
cube([bottom_thickness,5,base_length]);
translate([-18,0,0])
translate([-h,0,0])
cube([0.001,5,0.001]);
}
}
}
// --- 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]) {
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])
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
}
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
space =1; //extra space between characters in (character widths)
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
@ -300,7 +301,7 @@ rotate(rotate,[0,0,-1]){
scale([.125*h,.125*h,t]){
translate([ (-len(word)*5.5*space/2) + (r*5.5*space),0,0])
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]){
translate([r*5.5*space,0,0])
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]){
translate([ (-len(word)*5.5*space/2) + (r*5.5*space),0,0])
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]){
translate([r*5.5*space,0,0])
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.
@ -9,8 +9,13 @@ This hardware/software is provided “as is," and you use the hardware/software
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
* Added the python probing script (v0.1) and Octave/Matlab visualizer
**Firmware:**
* No news, it is Marlin with support for G30 probing command
Videos:
--
@ -64,6 +69,16 @@ License: CC-BY-SA
--
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:
--
- 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!!**