Week 03 - Feb 1st 2012 - Computer-Aided Design, Manufacturing and Modelling

Weekly Assignment - Model a possible final project

I decided to go with the Post-it Plotter idea for the moment, as it is the most fully developed of the suggetsions I put forward in Week 01. The structure will resemble many of the DIY CNC machines (for examples, see here) with a base platform that is moved up/down and left/right by stepper motors turning leadscrews.

3d modelling with Sketchup

Since I already had some experience with Google Sketchup, this is what I used to produce my first model. I imported the Sharpie and the servo from the Sketchup Warehouse; the rest is built from scratch, mainly from 3mm perspex. I decided to leave off the control unit from this design, as the dimensions will be determined by the electronics and this has not yet been covered.

I next decided to focus on a simple aspect of the design; the two brackets that support the servo, shown here with other components hidden:

These are components that could be 3d printed, so I invstigated designing them using additional programs.

3d modelling with OpenSCAD

OpenSCAD compiles code into 3d structures. Below is the code and the resulting output from my first attempt to model the brackets.

$fn=100; //set high resolution difference() { union() { translate([1.5,6,6]) rotate([0,90,0]) cylinder(3,6,6,true); translate([1.5,36,6]) rotate([0,90,0]) cylinder(3,6,6,true); translate([1.5,21,6]) rotate([0,0,0]) cube([3,24,6],true); translate([4,14.7,13.5]) rotate([0,0,0]) cube([8,3,21],true); } union() { translate([1.5,6,6]) rotate([0,90,0]) cylinder(4,3,3,true); translate([1.5,36,6]) rotate([0,90,0]) cylinder(4,3,3,true); translate([5.5,14.7,19]) rotate([90,0,0]) cylinder(4,1.6,1.6,true); } } difference() { union() { translate([37.5,6,6]) rotate([0,90,0]) cylinder(3,6,6,true); translate([37.5,36,6]) rotate([0,90,0]) cylinder(3,6,6,true); translate([37.5,21,6]) rotate([0,0,0]) cube([3,24,6],true); translate([35,14.7,13.5]) rotate([0,0,0]) cube([8,3,21],true); } union() { translate([37.5,6,6]) rotate([0,90,0]) cylinder(4,3,3,true); translate([37.5,36,6]) rotate([0,90,0]) cylinder(4,3,3,true); translate([33.5,14.7,19]) rotate([90,0,0]) cylinder(4,1.6,1.6,true); } }

This worked well, but was not particularly flexible. What if I wanted 5mm thick supports instead of 3mm? Another way to use OpenSCAD is to extrude from a 2d drawing. I installed DraftSight, a technical drawing package. I hadn't used this type of program before, and it took a bit of getting used to, but I was able to produce brackets.dxf, pictured here:

The white and green shapes represent the body and stand components of the brackets respectively, and the red features are dimensions giving a material thickness and the stand offset.

$fn=100; //set high resolution mat_thickness = dxf_dim(file="brackets.dxf",name="mat_thickness"); stand_offset = dxf_dim(file="brackets.dxf",name="stand_offset"); union() { translate([mat_thickness/2,0,0]) rotate([0,270,0]) linear_extrude(height=mat_thickness,center=true) import(file="brackets.dxf",layer="0"); translate([0,stand_offset,3]) rotate([90,0,0]) linear_extrude(height=mat_thickness,center=true) import(file="brackets.dxf",layer="stand"); } union() { translate([mat_thickness/2+36,0,0]) rotate([0,270,0]) linear_extrude(height=mat_thickness,center=true) import(file="brackets.dxf",layer="0"); translate([39,stand_offset,3]) rotate([90,0,180]) linear_extrude(height=mat_thickness,center=true) import(file="brackets.dxf",layer="stand"); }

Using the code shown above, OpenSCAD generates this image:

This also worked well and introduces more flexibility into the system. The image looks very similar to the ouput from the coded brackets, with the exception of the surface colour inside the circular cutout regions. I think this is due to the fact that in the second image these aren't cutouts (produced by a difference procedure) but included in the original polygon that is extruded. Not sure that there's any practical relevance to this?

<<< Week 02

Week 04 >>>