Improved color representation, Z carriage imported to improve 3D representation

pull/20/head
Carlos Garcia Saura 2014-09-16 00:54:24 +02:00
parent 749f6f53cc
commit b2effc7467
10 changed files with 81 additions and 45 deletions

View File

@ -56,8 +56,8 @@ function animatePart(n,dist=30,overlap=animated_timePerPart*0.25) = dist*animati
// Parameters for the bottom base
base_size_X = 304.8+animatePart(1,overlap=0);
base_size_Y = 261.62+animatePart(2);
base_size_X = 304.8 + animatePart(1,overlap=0);
base_size_Y = 261.62 + animatePart(2);
base_thickness = 8;
base_corner_radius = 20;
base_corner_res = 0;
@ -65,45 +65,45 @@ foot_offset = 25;
// Parameters for the axes sizes
axes_Xsmooth_rodLen = animatePart(1,overlap=0)+250;//265;
axes_Ysmooth_rodLen = animatePart(2)+210;
axes_Zsmooth_rodLen = 90+animatePart(3);
axes_Xsmooth_rodLen = 250 + animatePart(1,overlap=0);
axes_Ysmooth_rodLen = 210 + animatePart(2);
axes_Zsmooth_rodLen = 110 + animatePart(3);
axes_Xthreaded_rodLen = axes_Xsmooth_rodLen+50;
axes_Ythreaded_rodLen = axes_Ysmooth_rodLen-10;
axes_Zthreaded_rodLen = axes_Zsmooth_rodLen-20;
axes_Zthreaded_rodLen = 90;
axes_Xsmooth_rodD = 8.5+animatePart(4,dist=5);
axes_Ysmooth_rodD = 8.5+animatePart(4,dist=5);
axes_Zsmooth_rodD = 8.2+animatePart(4,dist=5);
axes_Xsmooth_rodD = 8.5 + animatePart(4,dist=5);
axes_Ysmooth_rodD = 8.5 + animatePart(4,dist=5);
axes_Zsmooth_rodD = 8.2 + animatePart(4,dist=5);
axes_Xthreaded_rodD = 8.5+animatePart(4,dist=5);
axes_Ythreaded_rodD = 8.5+animatePart(4,dist=5);
axes_Zthreaded_rodD = 8.5+animatePart(4,dist=5);
axes_Xthreaded_rodD = 8.5 + animatePart(4,dist=5);
axes_Ythreaded_rodD = 8.5 + animatePart(4,dist=5);
axes_Zthreaded_rodD = 8.5 + animatePart(4,dist=5);
// Parameters for the axes reference position
// Note: The reference coordinates are centered like this:
// Y axis reference is the Y smooth rod end, BACK of RIGHT FRAME
// X axis reference is the frontal X smooth rod end, RIGHT FRAME
// Z axis reference is the Z threaded rod, at the height of the Z nut, and relative to the X reference
axes_Yreference_height = 40+animatePart(5);
axes_Xreference_height = 74+animatePart(6); // relative to Y reference
axes_Zreference_height = -3+animatePart(7)+animatePart(9); // relative to X reference
axes_Yreference_height = 40 + animatePart(5);
axes_Xreference_height = 74 + animatePart(6); // relative to Y reference
axes_Zreference_height = -3 + animatePart(7) + animatePart(9); // relative to X reference
axes_Xreference_posY = -81-animatePart(8)-animatePart(9); // relative to Y reference. Moves the X axis towards the front of the machine
axes_Zreference_posY = 14; // relative to X reference. Positions Z rods between the Y rods
axes_Y_threaded_height = 30+animatePart(5);
axes_Y_threaded_height = 30 + animatePart(5);
axes_Ysmooth_separation = 165+animatePart(1,overlap=0);
axes_Xsmooth_separation = 40+animatePart(9);
axes_Zsmooth_separation = 40+animatePart(10,overlap=0);
axes_Ysmooth_separation = 165 + animatePart(1,overlap=0);
axes_Xsmooth_separation = 40 + animatePart(9);
axes_Zsmooth_separation = 40 + animatePart(10,overlap=0);
// Carriage positions (for rendering)
axes_Xcarriage_pos = axes_Xsmooth_rodLen/2+sin($t*360)*axes_Xsmooth_rodLen/3;
axes_Ycarriage_pos = axes_Ysmooth_rodLen/2+sin($t*360)*axes_Ysmooth_rodLen/4.1;
axes_Zcarriage_pos = axes_Zsmooth_rodLen/3+sin($t*360)*axes_Zsmooth_rodLen/4;
axes_Zcarriage_pos = axes_Zsmooth_rodLen/2+sin($t*360)*axes_Zsmooth_rodLen/8;
@ -117,8 +117,12 @@ workbed_separation_from_Y_smooth_rod = 10;
// Part colors
color_movingPart = [0.4,0.5,0.9];
color_stillPart = [0.9,0.9,0.1];
blueColor = [0.3,0.6,0.9];
redColor = [0.8,0.3,0.3];
yellowColor = [0.9,0.9,0.1];
blackColor = [0.2,0.2,0.2];
color_movingPart = yellowColor+[0.1,0.1,0.1];
color_stillPart = yellowColor;
// Calculations
@ -128,7 +132,7 @@ axes_Y_smoothThreaded_verticalSeparation = axes_Yreference_height-axes_Y_threade
axes_ZthreadedReference_posY = axes_Xsmooth_separation-axes_Zreference_posY-axes_Zreference_posY; // Relative to X carriage reference
// Activate/Deactivate rendering auxiliary references (LCS axis, etc)
draw_references = true;
draw_references = false;
render_DXF_base = false;
render_DXF_workbed = false;
render_bases_outline = false; // Toggle for rendering outline DXFs
@ -233,11 +237,7 @@ render_2D_or_3D() {
translate([0,0,axes_Zcarriage_pos]) {
if(draw_references) %frame();
//Cyclone_Z_carriage();
linearBearing_single(model="LM8UU", echoPart=true);
translate([axes_Zsmooth_separation,0,0])
linearBearing_single(model="LM8UU", echoPart=true);
Cyclone_Z_carriage();
}
}
}

View File

@ -228,7 +228,7 @@ module Cyclone_X_leftFrame(isLeft=true) {
}
// TRANSLATE REFERENCE POSITION to the left frame, X lower smooth rod end
translate([-axes_Xreference_posX,axes_Xreference_posY,axes_Xreference_height]) {
color(color_stillPart) translate([-axes_Xreference_posX,axes_Xreference_posY,axes_Xreference_height]) {
rotate([0,0,90]) standard_rod(diam=axes_Xsmooth_rodD, length=partThickness*4, threaded=false, renderPart=true, center=true);
rotate([0,0,-90])
rotate([0,90,0])

View File

@ -161,9 +161,9 @@ module Cyclone_YsubPart_PCBholder() {
// Draw the PCB (transparent)
%translate([0,0,PCBholder_height])
color([0.2,0.6,0,0.5]) cube([PCB_dimX+PCB_holder_tolerance*2,PCB_dimY+PCB_holder_tolerance*2,PCB_dimZ], center=true);
color([0.2,0.6,0, 1]) cube([PCB_dimX+PCB_holder_tolerance*2,PCB_dimY+PCB_holder_tolerance*2,PCB_dimZ], center=true);
%translate([0,0,PCBholder_height+PCB_dimZ/2])
color([0.8,0.5,0,0.5]) cube([PCB_dimX+PCB_holder_tolerance*2,PCB_dimY+PCB_holder_tolerance*2,PCB_dimZ/10], center=true);
color([0.8,0.5,0, 1]) cube([PCB_dimX+PCB_holder_tolerance*2,PCB_dimY+PCB_holder_tolerance*2,PCB_dimZ/10], center=true);
difference() {
color(color_stillPart) translate([0,0,PCBholder_height/2])
@ -199,7 +199,9 @@ module Cyclone_YsubPart_PCBholder() {
bcube([PCB_dimX+PCB_holder_tolerance*2+holderL_width, PCB_dimY+PCB_holder_tolerance*2+holderL_width, holderL_thickness+holderL_thickness_btm], cr=8, cres=0);
translate([0,0,PCBholder_height+holderL_thickness_btm/2])
bcube([PCB_dimX+PCB_holder_tolerance*2+holderL_innerWidth, PCB_dimY+PCB_holder_tolerance*2+holderL_innerWidth, holderL_thickness_btm], cr=8, cres=0);
#frame(100);
if(draw_references) %frame();
translate([0,0,PCBholder_height/2])
cube([PCB_dimX-PCB_holder_edge_length*2,PCB_dimY-PCB_holder_edge_length*2, 2*PCBholder_height+1], center=true);
translate([-PCB_dimX/2+PCB_holder_edge_length,0,-0.5])

View File

@ -394,8 +394,8 @@ module Cyclone_Y_rightSmoothRodIdler(mirrorLogo = false) {
footSeparation = screwSize*2;
footThickness = 10;
difference() {
color(color_stillPart) union() {
color(color_stillPart) difference() {
union() {
translate([0,0,-axes_Yreference_height])
cube([dimX,dimY,dimZ+holderThickness+axes_Ysmooth_rodD/2]);
translate([-holderOuterRadius,0,-axes_Yreference_height])

View File

@ -4,13 +4,37 @@
// License: CC BY-SA 4.0 (Attribution-ShareAlike 4.0 International, http://creativecommons.org/licenses/by-sa/4.0/)
// Designed with http://www.openscad.org/
// TO-DO: Re-program the carriage in a parametric manner
module Cyclone_Z_carriage() {
color("cyan") translate([-5,-100+5,0]) {
cube([axes_Zsmooth_separation+10,100,10]);
translate([0,0,30])
cube([axes_Zsmooth_separation+10,100,10]);
color(color_stillPart)
translate([axes_Zsmooth_separation/2,0,0]) rotate([0,0,-90])
import("INHERITED/stl/Cyclone_Zcarriage.stl");
// Bearings
linearBearing_single(model="LM8UU", echoPart=true);
translate([axes_Zsmooth_separation,0,0])
linearBearing_single(model="LM8UU", echoPart=true);
translate([0,0,24.5])
linearBearing_single(model="LM8UU", echoPart=true);
translate([axes_Zsmooth_separation,0,24.5])
linearBearing_single(model="LM8UU", echoPart=true);
// Motor
translate([axes_Zsmooth_separation/2,30,51]) rotate([180,0,0])
stepperMotor(screwHeight=motorWallSeparation, echoPart=true);
// Dremel tool
translate([axes_Zsmooth_separation/2,-40,-40]) {
color([0.2,0.2,0.2]) %cylinder(r1=30/2, r2=50/2, h=40);
translate([0,0,50])
color([0.2,0.2,0.2]) %cylinder(r=50/2, h=80);
translate([0,0,50+80])
color([0.2,0.2,0.2]) %cylinder(r1=50/2, r2=30/2, h=10);
translate([0,0,-20])
color([0.4,0.4,0.4]) %cylinder(r1=12/2, r2=10/2, h=20);
translate([0,0,-20-20])
color([0.9,0.9,0.9]) %cylinder(r1=0.5/2, r2=3/2, h=20);
}
}

View File

@ -17,11 +17,8 @@ Adressing all the issues from the original design, and implementing improvements
Work in progress. Pending tasks:
--
* Improve vacuum cleaner attachment (make it detachable)
* Finish protective covers for the gears
* Endstop integration for Z
* Better plastic-saving holes for the X frames
* Improve the nut holder in the X carriage (with the same spring mechanism as in Y)
* Re-design the [Z carriage](INHERITED) after testing performance
* Endstop integration for Z (integrated probe)
* Re-implement the [Z carriage](INHERITED), currently inherited from Cyclone V1
![ScreenShot](output/cyclone.png)

View File

@ -1,4 +1,17 @@
Obsolete!! Use only for reference on how to print the parts
Last updated: September 15th 2014
---
This plate can serve as a reference on how to print the parts.
You can also open the STL with [Cura](http://wiki.ultimaker.com/Cura) and use the option "split into parts" to easily arrange your own plates.
Tested Cura slicing settings:
Material: PLA, 1.75 mm
Nozzle diameter: 0.4 mm
Layer height: 0.25 mm
Shell thickness: 1.2 mm
Bottom/Top thickness: 1 mm
Fill density: 15 %
Print speed: 60 mm/s
Printing temperature: 210 deg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 60 KiB