Computer-Controlled Cutting


pressFit CNC axis

coding

parts used


  • 1x NEMA 17 stepper motor
  • 1x Timing pulley 2M and belt
  • 2x 8mm Inox linear shaft 398mm
  • 2x 8mm Linear bearing
coding

The pressFit for the linear bearing.

coding

Adjusting the principal joint system of all the assembly before starting the design of the axis. The difficulty of a parametric design is the propagation of changes, so I keep it simple, this piece is adjusted by a Thickness and the dimension of the linear shaft.

coding

In the parameters options of the "manage" menu in Autodesk inventor 2015, I create two parameters that were propagated to the others parts using the link tool in the parameters menu. In each new part, I link these two parameters from the first part.

coding

Using a simple geometry as base volume I define the pressFit joint in only one corner, then using mirror to propagate the joint the others corners, so when you change the "key joint" all the corners change.

coding

In this case the thickness is 4mm.

coding

Here I change the thickness parameter to 12mm. This parameter is useful for changing material and also for calibrating the joints by microns if you want to get a perfect fit that makes "clickkk".

coding

This thickness is 4,2mm, so when I work with 4mm acrylics is easy to assemble the parts.

coding

In this picture, you can see the iteration between 4 to 4,4 mm in steps of 0,1mm. All you need is to change the value and then export the face with the mouse over the face of the part to export, in my case I use DXF2000 so the laser software can import the file.

coding

With this step you can export a continuous polyline, I find the best way to directly export a cut pattern. You can also export sketch as DXF.




Axis assembly

coding

The schematics of the relations in the complete assembly, the most important thing is that the principal pressFit joint is propagated for all the parts in the assembly. So I used the make part options in "manage" and derive in "3D model" contextual menus.

coding coding




1º Prototype



coding

coding





Changing parameters

coding

coding

coding

You can see that the complete geometry is fine, but it have some issues, by now the assembly is parametric for a range of sizes, it works well in any "axis" size, but no more than 8mm of "thickness"






Laser Cutting

coding

I use Autocad to arrange all the parts and export to .DXF 2000, my LaserCuter uses a software called laserCut 5.3 and read DXF 2000 and illustrator 8 for good results. You can use other formats but in my experience, the format with better results is DXF 2000.



coding coding coding coding coding

The most difficult part was to get the pressFit working properly, I used the thickness material (in the design parameters, Autodesk Inventor) to give some tolerance to get a good fit, and the way to know if it is working is to hear the sound "click" very clear. Is very useful to propagate the changes in all the design with only one parameter. You can speed up the process.




Prototype

coding coding coding coding coding coding coding

In this pictures you can see that I have to use some wire tie to fix the linear shaft. Maybe for an iteration of the design I could fix the shaft in a better way, doing a pressFit for the shaft also, ass I did for the bearings.



coding coding coding coding



Files

Download parametric design and DXF files


Moving the Axis





For this test, I use a library called AccelStepper modifying the "proportional control" example of this library I can have a relation between the complete turn of the potentiometer and movement of the complete axis. The hardware is a 10K Potenciometer, an Arduino UNO with a protoshield and a TB6560 driver




// ProportionalControl.pde
// -*- mode: C++ -*-
//
// Make a single stepper follow the analog value read from a pot 
// The stepper will move at a constant speed to each newly set position
// depending on the value of the pot.
//
// Copyright (C) 2012 Mike McCauley
// $Id: ProportionalControl.pde,v 1.1 2011/01/05 01:51:01 mikem 

#include 

// Define a stepper and the pins it will use
// 13 EN+ , 11 CLK+ , 12 CW+  AccelStepper stepper(13, 11, 12); 
AccelStepper stepper(13, 11, 12); 


// This defines the analog input pin for reading the control voltage
// Tested with a 10k linear pot between 5v and GND
#define ANALOG_IN A0

void setup()
{ 
  stepper.setSpeed(2000);
  stepper.setMaxSpeed(7000);
  stepper.setAcceleration(2000);
 
}

void loop()
{
  // Read new position
  int analog_in = analogRead(ANALOG_IN);
  stepper.moveTo((analog_in)*4);
  stepper.runSpeedToPosition();
  delayMicroseconds(100);
  
}



I need to change this line cause the driver I´m using has only Enable, Clock an Counterwise pins





AccelStepper stepper(13, 11, 12); 



With this variable (*4) I can define the length of the axis, related to the pot turn.





  stepper.moveTo((analog_in)*4);





Work info:

References: Machines that Make, Nadya Peek, Machines that Make: Reconfigurable Stages, highlight.js Autodesk Inventor, HTML5, CSS, Sublime Text, Adobe Illustrator,

Description:

Using basic RepRap components that I already have, the goal of the design is a multipurpose CNC axis, that can be customized in two parameters, the axis length and the thickness of the material. For this purpose, I use Autodesk Inventor cause this software is very precise and can deal with multi parts parametric assembly. .