Week 16

Mechanical Design



Assignment purpose

GROUP ASSIGNMENT: make a machine, including the end effector, build the passive parts and operate it manually, document the group project and your individual contribution.

The exercise of this week was a group work to build a machine that makes somethings. We decided to made a Polystyrene Cutting Machine: we reproduced the sample "Machine that makes"

I chose to focus my attention on the coding of coordinates to use in the web interface, I coordinated and assisted the production of the design of the structure and I also fixed and built the machine.

coding the coordinates

To use the machine more easily, I wanted to develop a system that allowed us to mill 2D and 3D shapes using curves and surfaces drawn with any CAD. To do this I used the plug-in for Rhino, Grasshopper, implementing it using Python scripts. Importing the initial files into Rhino, selecting the curve or surface, assigning the size of the tool and the precision of the step, it will automatically generate a list of the coordinates of the route of the cut.

To optimize the work, I studied the programming made by my colleague. I spoke with him in order to understand the system and improve data communication.

Coordinates 2d:

- Open Rhino file and GH file;

- I bounded working space of the machine in CAD (200x200 mm) using a grid;

- You can use any 2D curve having less size than the space machine;

- Select the curve and attach them to the node "curve" by pressing the right mouse button and selecting "select curve";

- The code identifies the lines and vertices of route;

- Then it creates a list of point and them order, starting from the closest to the coordinates 0,0,0 ;

- The code duplicates the Z values because we use two Z axis: in the web interface we must add the list of coordinate using 4 values (I add too the written part required for the functioning of the script);

Coordinates 3d:

- Open Rhino file and GH file;

- I bounded working space of the machine in CAD (200x200X200 mm) using a doble grid;

- You can use any 3D surface having less size than the space machine;

- Select the surface and attach them to the node "surface" by pressing the right mouse button and selecting "select surface";

- Select the dimention of tool and the cut precision(layer height);

- The code recognizes and cuts the milling area in horizontal layer(depending by layer height) and creates too a vertical grid to create vertical layer(depending by tool dimention);

- The intersection between these layers generates routes;

- Using python script i had "clean" list of point and line: in the first case I needed to clear the list of values z repeated; in the second case I had to find which lines have the same x and z, to use them to close the route CAM;

- When a route is interrupted (two lines with the same X and Z), the code creates a connecting "bridge" between the closest points of the two lines, passing through a route Z higher than the top of the machine;

- To connect all these individual routes, the code recognizes the point of start and end of the individual curves that describe the route and connects, alternately, this point;

- To have a single route , the code reproduces vertically what he had previously done in horizontal, connectes all the courves;

- The code identifies all the vertices of route;

- Then it creates a list of point and them order, starting from the closest to the coordinates 0,0,0 ;

- The code duplicate the Z values because we use two Z axis: in the web interface we must add the list of coordinate using 4 values (I add too the written part required for the functioning of the script);

Download Files

Rhino and Grasshopper:

- CODE2D.3dm

- CODE3D.3dm

- CODEGH2D.gh

- CODEGH3D.gh

Programs: Rhino (Grasshopper), Python.

Machinery: VREL CO2 ME-1300.

Copyright © 2015, Marco Sanalitro