# Basic Flat Tooth Gear

This short tutorial will help you create a basic gear in OpenSCAD. The gear will need two cylinders to create the gear and a 3 sided polygon to create the teeth.

The concepts you can learn about in this Tutorial

• cylinder()
• circle()
• linear_extrude()
• difference()
• for loop
• translate()

We will actually start with the 2d items. It will be easier to create a triangular tooth using a 2d circle with 3 sides. The radius of the circle will be half of the “Whole Depth” of the gear. If we draw a line perpendicular to the “Root Diameter” to the “Pitch Diameter”, this will be equal to the radius we use.

`circle(3,\$fn=3);`
```Press f6 to see the 2d rendered version
```

Next we nee to give our gear tooth some meat. We will use linear_extrude() to add 3 Dimensions

`linear_extrude(2) circle(3,\$fn=3);`

Then we will offset the circle using the translate, this will set the single gear to to it’s final diameter. When we rotate in OpenSCAD it is around the main Z-Axis. In order to rotate around our diameter we set tooth the diameter distance from the Z-Axis.

`translate([18,0]) linear_extrude(2) circle(3,\$fn=3);`

Next we will repeat this cylinder around the Z axis.We will use the for loop to add the desired number of gear teeth and rotate() to position the tooth around the axis.

```for(i=[1:1:20]){
rotate([0,0,(360/20)*i])
translate([18,0]) linear_extrude(2)
circle(3,\$fn=3);
}```

Each time through the for loop, a triangle is added at Z angle. The Z angle is calculated by dividing 360 by the number of teeth, then multiply the resulting angle by the tooth we are on.

Next we can add a cylinder that will define the Root Diameter. This is a cylinder that extends all the way to the edges of the Gear Teeth.

`cylinder(h=2,r=17);`

Finally we will add a second cylinder that will remove the center with difference()

Press F6 to get the finished render.

```difference() {
cylinder(h=2,r=17);
cylinder(h=2,r=3,\$fn=25);
}```

Here is the final code for our super basic gear.

``````difference() {
cylinder(h=2,r=17);
cylinder(h=2,r=3,\$fn=25);
}

for(i=[1:1:20]){
rotate([0,0,(360/20)*i])
translate([18,0]) linear_extrude(2)
circle(3,\$fn=3);
}``````