Computer-Aided Design

Week 02 was about testing and getting familiar with 2D and 3D design tools. Since I am mostly familiar with 2D Sketch Tools, such as Inkscape, Sketch, and Illustrator, I began designing a small prototype of a possible final project in 123D Design. So far I used only OpenScad for rather simple and geometric designs. In the following I will provide some sketches and designs which I created.




123D Design

Design Process

STL View

It seems you are using an outdated browser that does not support canvas :-(

123D Design was easy to use. It took me about an hour of getting to know the basic concepts. I used a lot of boolean operations with primitive objects to create more complex shapes.



Application Web Page

Lightsaber Hilt STL File

Lightsaber Hilt 123D Design File

Sketch


I am a huge fan of this application. It is not open source and only for mac but it simplifies the creation of vector graphis to a degree which is perfect for beginners. Tools like Inkscape and Illustrator are very complex and making even simple shapes can be realy frustrating. Sketch provides a simple interface and I was yet not at a point where I missed the complexity of other vector tools. In the following I provide some vector graphics which I created with Sketch.






Application Web Page

Sketch Files

OpenScad


Since I am a computer sience student the approach of OpenScad is very comfortable for me. I like to use it to make easy geometric shapes which I can adapt later. If for example the thickness of my material differs from what I have planned.




            

baseLength = 273;
baseWidth = 343;

materialThickness = 3;

boxLength = 67;
boxWidth = 46;
boxHeight = 20; 

widthFittingCount = (ceil(baseWidth/(boxWidth+materialThickness))-1);
lengthFittingCount = (ceil(baseLength/(boxLength+materialThickness))-1);

widthEdge = (baseWidth - (widthFittingCount*(boxWidth+materialThickness)))/2;
lengthEdge = (baseLength - (lengthFittingCount*(boxLength+materialThickness)))/2;

echo(lengthFittingCount);

if(widthEdge>=(materialThickness/2))
{
    difference(){    
        square([baseWidth,baseLength]);
        for (lengthCount = [0:lengthFittingCount-1])
        {
            for (widthCount = [0:widthFittingCount])
            {
                translate([
                widthEdge-0.5*materialThickness+widthCount*(materialThickness+boxWidth),
                (lengthEdge+0.5*materialThickness+lengthCount*(materialThickness+boxLength))+boxLength*0.25,
                0])
                {square([materialThickness,boxLength*0.5]);}; 
            }
		}
		for (lengthCount = [0:lengthFittingCount])
		{
			for (widthCount = [0:widthFittingCount-1])
			{
                translate([
                (widthEdge+0.5*materialThickness+widthCount*(materialThickness+boxWidth))+boxWidth*0.25,
                lengthEdge-0.5*materialThickness+lengthCount*(materialThickness+boxLength),
                0])
                {square([boxWidth*0.5,materialThickness]);};
			}        	
		}
	}

    for (pieceCount = [0:widthFittingCount])
    {
        translate([baseWidth+1+pieceCount*(boxHeight+materialThickness+1),0,0])
        {
            difference()
            {
                union()
                {
                    for (gap = [0:lengthFittingCount-1])
                    {
                        translate([
                        boxHeight,
                        materialThickness+0.25*boxLength+gap*(materialThickness+boxLength),
                        0])
                        {square([materialThickness,boxLength*0.5]);};
                    }
                    square([boxHeight,(materialThickness+boxLength)*lengthFittingCount+materialThickness]);
                }
                for (gap = [0:lengthFittingCount])
                    {
                    translate([
                    0,
                    gap*(materialThickness+boxLength),
                    0])
                    {square([boxHeight*0.5,materialThickness]);};
                }
            }
        };
    }
    
    for (pieceCount = [0:lengthFittingCount])
    {
        translate([baseWidth+1+(widthFittingCount+1)*(boxHeight+materialThickness+1)+pieceCount*(boxHeight+materialThickness+1),0,0])
        {
            difference()
            {
                union()
                {
                    for (gap = [0:widthFittingCount-1])
                    {
                        translate([
                        boxHeight,
                        materialThickness+0.25*boxWidth+gap*(materialThickness+boxWidth),
                        0])
                        {square([materialThickness,boxWidth*0.5]);};
                    }
                    square([boxHeight,(materialThickness+boxWidth)*widthFittingCount+materialThickness]);
                }
                for (gap = [0:widthFittingCount])
                    {
                    translate([
                    boxHeight*0.5,
                    gap*(materialThickness+boxWidth),
                    0])
                    {square([boxHeight*0.5,materialThickness]);};
                }
            }
        };
    }
}


            
        

Application Web Page

Box Generator OpenScad File