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
parent
30cd3a10f4
commit
df6c2ad976
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
@ -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
|
@ -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
|
@ -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
17
README.md
17
README.md
|
@ -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!!**
|
||||
|
|
Loading…
Reference in New Issue