[M004] Double Edge Router Assembled!

One evening of CAD.  One evening of CAM.  One evening of CNC.  And it fit together (quite well).  This is just held together with precisely located wooden dowel pins.  We will add screws tomorrow.

The only missing piece is the actual guide for running the blocks through.  That is separate so that it can be “dialed in” to the perfect cutting depth.

20180914_004625.jpg

 

 

 

 

 

 

[M004] Double Edge Router

Working on another machine to speed up yet another tedious workshop process.  Think of it as a special router table that takes 2 routers set to 45 degree angles.  The guide (not shown) will allow precise alignment of the work piece AND cover the cutters to prevent injury.

explorer_2018-09-11_23-52-20

Barrel Sander (M002) Progress

The Barrel Sander is coming along again, after a small detour to build the (M003) Auto Loading jig.  Here is the nine sides bolted inside the barrel.  They do three things:

  1. Make the barrel stronger so the wheels that it turns on have more support than just thin metal.
  2. Provide a disrupted circle which will cause the materials to actually turn instead of sliding.
  3. Protect the inside of the barrel from the sanding action.

Auto Loading CNC Router Jig

After years of making the same part repeatedly on the CNC router, I finally decided it was time to make the router load it’s own material.

Friction is a valid way to hold a part for routing.  That is how most vices and clamps work.  The key here is to calculate an amount of friction that will resist the cutting forces while at the same time keeping it low enough for the router to be able to overcome it while loading and unloading.

I’ll post more on this when we have it working.  For now, here is a cool picture of the jig.

Fusion360_2018-08-24_00-41-19

Barrel Sander (M002) Motor Assembly

Most standard 60HZ AC motors come in approximately 3600 RPM or 1800 RPM.  The barrel sander needs to spin at about 30 RPM.  To achieve this, the following approximate pulley sizes will be used:

  • 1800 RPM motor
  • Shaft to 2″ Pulley
  • Belt to 7.5″ pulley
  • Shaft to 1.75″ pulley
  • Belt to barrel (approx 23″)
  • End Result is approx 30 RPM

(This was from memory so might be fractionally off).

Here is a render of the pulley assembly (draft):

Fusion360_2018-08-10_01-23-43

Example of Python Generator Function.

One of the great features of Python is Generator Functions.  Generator functions allow you to convert any function to a generator function by simply including the yield keyword somewhere in the function body.  When a generator function is called, the response is a generator object, which can be iterated over among other things.

To boil this down to basics, generator functions allow you the programmer to create a function which yields one value at a time (and pauses until the next value is requested) until you decide it is done.  This opens endless possibilities for converting sequences, creating sequences, filtering, and more.

The following example is a generator function which will take a simple list or iterator and return pairs of (element, previous_element).  This is a great use for generators and the yield statement.

Generator Function:

def lineandlast(listish, first=True, last=True):
    iterator = iter(listish)
    lastline = next(iterator)

    if first:
      yield lastline, None

    for line in iterator:
        yield line, lastline
        lastline = line

    if last:
        yield None, lastline

Example:

for line, last in lineandlast([1,2,3,4,5]):
    print(line, last)

Output:

1 None
2 1
3 2
4 3
5 4
None 5

Notes:
There are two keyword arguments, first and last, which can be used to control the output of the first and last items on the output example above.