258 lines
8.0 KiB
C
258 lines
8.0 KiB
C
// This file is part of Cyclone PCB Factory: an open-source 3D printable CNC machine for PCB manufacture
|
|
// http://reprap.org/wiki/Cyclone_PCB_Factory
|
|
// Original author: Carlosgs (http://carlosgs.es)
|
|
// 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/
|
|
|
|
// Cyclone XL
|
|
|
|
|
|
// --- Size parameters ---
|
|
|
|
// --- Bottom base ---
|
|
base_size_X = 350 + animatePart(1,overlap=0);
|
|
base_size_Y = 800 + animatePart(2);
|
|
base_thickness = 8;
|
|
base_corner_radius = 20;
|
|
base_corner_res = 10;
|
|
foot_offset = 25;
|
|
|
|
// --- Axes reference position ---
|
|
// Note: The reference coordinates are centred 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
|
|
|
|
Cyclone_XL = true;
|
|
|
|
axes_Xreference_posY = -270-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_Ysmooth_separation = 200 + animatePart(1,overlap=0);
|
|
axes_Xsmooth_separation = 40 + animatePart(9);
|
|
axes_Zsmooth_separation = 40 + animatePart(10,overlap=0);
|
|
|
|
|
|
// --- Work bed ---
|
|
Ycarriage_linearBearingSeparation = 200;
|
|
workbed_size_X = axes_Ysmooth_separation+60;
|
|
workbed_size_Y = Ycarriage_linearBearingSeparation+300;
|
|
workbed_thickness = 8+3;
|
|
workbed_separation_from_Y_smooth_rod = 15;
|
|
PCBholder_height = 10;
|
|
PCB_dimX = 200;
|
|
PCB_dimY = 450;
|
|
PCB_dimZ = 10;
|
|
PCB_holder_edge_length = 3;
|
|
|
|
// --- Z carriage ---
|
|
Z_carriage_wall_thickness = 9;
|
|
Z_carriage_wall_width = 54;
|
|
|
|
// --- X frames ---
|
|
X_frames_additional_thickness = 5;
|
|
X_frame_footThickness = 10;
|
|
X_frame_corner_radius = 10;
|
|
X_frame_FrontalThickness = 15;
|
|
X_backlash_armThickness = 30;
|
|
X_motorWallSeparation = 5;
|
|
X_motorRotatedOffset = 5;
|
|
X_gearWallSeparation = 5;
|
|
|
|
// --- Y frames ---
|
|
Y_frame_footThickness = 10;
|
|
Y_motorWallSeparation = 5;
|
|
Y_motorRotatedOffset = 5;
|
|
Y_gearWallSeparation = 5;
|
|
Y_foot_additional_separation = 5;
|
|
Y_endstopHolderRotation = 5;
|
|
Logo = true; // Add logo to the Y Smooth Rod Idlers
|
|
|
|
// --- Axes sizes ---
|
|
// *_rodLen = length
|
|
// *_rodD = diameter
|
|
// Y smooth rod
|
|
axes_Ysmooth_rodLen = 770 + animatePart(2);
|
|
axes_Ysmooth_rodD = 10.5 + animatePart(4,dist=5);
|
|
// Y threaded rod
|
|
axes_Ythreaded_rodLen = axes_Ysmooth_rodLen-10;
|
|
axes_Ythreaded_rodD = 8.5 + animatePart(4,dist=5);
|
|
// X smooth rod
|
|
axes_Xsmooth_rodLen = 340 + animatePart(1,overlap=0);
|
|
axes_Xsmooth_rodD = 8.5 + animatePart(4,dist=5);
|
|
// X threaded rod
|
|
axes_Xthreaded_rodLen = axes_Xsmooth_rodLen+50;
|
|
axes_Xthreaded_rodD = 8.5 + animatePart(4,dist=5);
|
|
// Z smooth rod
|
|
axes_Zsmooth_rodLen = 110 + animatePart(3);
|
|
axes_Zsmooth_rodD = 8.2 + animatePart(4,dist=5);
|
|
// Z threaded rod
|
|
axes_Zthreaded_rodLen = 90;
|
|
axes_Zthreaded_rodD = 8.5 + animatePart(4,dist=5);
|
|
|
|
// --- Bearings ---
|
|
Y_linearBearingModel = "LM10UU";
|
|
X_linearBearingModel = "LM8UU";
|
|
X_linearBearingSeparation = 0;
|
|
Z_linearBearingModel = "LM8UU";
|
|
Z_threaded_rodBearingModel = 608;
|
|
Y_threaded_rodBearingModel = 608;
|
|
Y_threaded_rodBearingDepth = 3;
|
|
X_threaded_rodBearingModel = 608;
|
|
X_threaded_rod_bearingDepth = 3;
|
|
|
|
// --- Steppers ---
|
|
//Y_motorModel = Nema17;
|
|
//X_motorModel = Nema17;
|
|
//Z_motorModel = Nema17;
|
|
Z_motor_adjust_margin = 5;
|
|
|
|
// --- Screw sizes ---
|
|
// M3, M4, etc (integers only), at the moment only M3 and M4 will work.
|
|
Y_frontFrame_footScrewSize = 3;
|
|
Y_backFrame_footScrewSize = 3;
|
|
Y_rightSmoothRodIdler_footScrewSize = 3;
|
|
X_Frame_footScrewSize = 3;
|
|
|
|
Y_threaded_rodNutSize = 8;
|
|
X_threaded_rodNutSize = 8;
|
|
Z_threaded_rodNutSize = 8;
|
|
|
|
Y_nutHolder_screwSize = 3;
|
|
Y_singleLinearBearingHolder_screwSize = 3;
|
|
Y_PCBholder_screwSize = 3;
|
|
|
|
Y_backlash_washer_D = 15.8;
|
|
Y_backlash_washer_thickness = 1.6;
|
|
X_backlash_washer_D = 15.8-0.5;
|
|
X_backlash_washer_thickness = 1.6-0.9;
|
|
|
|
X_carriage_screwSize = 3;
|
|
|
|
Y_rightSmoothRodIdler_rodScrewSize = 3;
|
|
X_Frame_rodScrewSize = 3;
|
|
|
|
spindle_holder_screwSize = 3;
|
|
|
|
// --- Gears ---
|
|
axes_XgearSeparation = 37;
|
|
X_rodGearRatio = 21; // Number of tooth
|
|
X_motorGearRatio = 21; // Number of tooth
|
|
X_gear_thickness = 10;
|
|
Z_rodGearRatio = 15; // Number of tooth
|
|
Z_motorGearRatio = 8; // Number of tooth
|
|
Z_gear_thickness = 10;
|
|
axes_YgearSeparation = 37;
|
|
Y_rodGearRatio = 21; // Number of tooth
|
|
Y_motorGearRatio = 21; // Number of tooth
|
|
Y_gear_thickness = 10;
|
|
|
|
// --- Gear Cover ---
|
|
gearCover_margin = 4;
|
|
rodGearAddedgearCover_margin = 0;
|
|
gearCover_wallThickness = 0.4*4;
|
|
gearCover_screwHeadSpaceHeight = 4;
|
|
gearCover_screwHeadSpaceDiam = 6;
|
|
gearCoverHeight = 16;
|
|
gearCoverExtraHeight = 5;
|
|
gearCoverExtraRadius = -7;
|
|
gearCover_truncationAngle = 10;
|
|
|
|
// --- Tool type: Select tool
|
|
spindle_holder = 1; //Aluminium part to hold the spindle
|
|
dremel = 0;
|
|
tool = spindle_holder;
|
|
|
|
// --- Spindle Motor Holder ---
|
|
spindle_holder_bolt_X_separation = 70;
|
|
spindle_holder_bolt_Z_separation = 18;
|
|
spindle_holder_bolt_diam = 6;
|
|
|
|
// --- Spindle Motor ---
|
|
spindle_motor_diam_top = 51.3;
|
|
spindle_motor_diam_top_smaller = 47.5;
|
|
spindle_motor_diam = 47.5;
|
|
spindle_motor_sidelen = 32;
|
|
spindle_holder_thickness = 8;
|
|
spindle_motor_length = 90;
|
|
|
|
// --- Text ---
|
|
textHscale = 0.8;
|
|
textThickness = 1.5;
|
|
topText = "CYCLONE";
|
|
bottomText = "PCB Factory";
|
|
|
|
// --- Tolerances ---
|
|
Y_threaded_rod_Tolerance = 0.5;
|
|
Y_linearBearing_pressureFitTolerance = 0.5;
|
|
PCB_holder_tolerance = 1;
|
|
axes_Xsmooth_separation_tolerance = 0.5;
|
|
X_threaded_rod_Tolerance = 0.5;
|
|
Z_linearBearingHole_tolerance = 0.25;
|
|
Z_radialBearingHole_tolerance = 0.25;
|
|
LinearBearingPressureFitTolerance = 0.4;
|
|
screwHoleTolerance = 0.4;
|
|
|
|
Z_threaded_rod_Tolerance = 0.5;
|
|
|
|
|
|
// --- Render options ---
|
|
|
|
// --- Part colours ---
|
|
blueColor = [0.3,0.6,0.9];
|
|
redColor = [0.8,0.3,0.3];
|
|
yellowColor = [0.9,0.9,0.1];
|
|
orangeColor = [0.9,0.5,0.1];
|
|
blackColor = [0.2,0.2,0.2];
|
|
color_movingPart = orangeColor;
|
|
color_stillPart = yellowColor;
|
|
|
|
// --- DXF output ---
|
|
// Activate/Deactivate rendering auxiliary references (LCS axis, etc)
|
|
draw_references = false; // Show reference axis's
|
|
render_DXF_base = false; // Render bottom base for DXF export
|
|
render_DXF_workbed = false; // Render work bed for DXF export
|
|
render_bases_outline = false; //Toggle for rendering outline DXFs
|
|
DXF_offset = 0.4; //Needed to adjust the tolerance of the laser cutter
|
|
|
|
// --- Carriage positions ---
|
|
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/2+sin($t*360)*axes_Zsmooth_rodLen/8;
|
|
|
|
// --- Parts ---
|
|
Render_X_leftFrame = true;
|
|
Render_X_rightFrame = true;
|
|
Render_X_carriage = true;
|
|
Render_Z_carriage = true;
|
|
Render_Z_carriageTop = true;
|
|
Render_Z_carriageBottom = true;
|
|
Render_Y_leftSmoothRodIdler = true;
|
|
Render_Y_rightSmoothRodIdler = true;
|
|
Render_Y_leftSmoothRodIdler_back = true;
|
|
Render_Y_rightSmoothRodIdler_back = true;
|
|
Render_Y_frontFrame = true;
|
|
Render_Y_backFrame = true;
|
|
Render_Y_carriage = true;
|
|
Render_control_board = false;
|
|
Render_Y_gearCover = true;
|
|
Render_Y_motorGear = true;
|
|
Render_Y_rodGear = true;
|
|
Render_X_gearCover = true;
|
|
Render_X_motorGear = true;
|
|
Render_X_rodGear = true;
|
|
Render_PCBholderTop = false;
|
|
Render_PCBholderBottom = false;
|
|
Render_YsubPart_linearBearingHolders = true;
|
|
Render_YsubPart_nutHolder = true;
|
|
//Render_rodHolder = true;
|
|
|
|
alt_XZ_carriage = false;
|
|
|
|
|