16 August 2013

Todays result: Combinatory pixel based image processing

I have made some simple image processing software that works by applying combinations of functions to pixels in the image. Functions fall into a group determined by their input type and calculated output type. The program systematically combines functions into all permutations and applies them to the image. I have used every double <- double function in the C# math library. This does not really make sense, but some of the nonsensical combinations make interesting results. The program doesn’t really produce very meaningful results but some of them look nice.

Function categories
  • pixel <- value  
  • value <- pixel
  • value <- value
  • pixel <- pixel
  • image <- image

An example combination
  1. Function 1: Calculate the sum of elements in a pixel
  2. Function 2: Calculate the mean and standard deviation of all (Function 1) pixel values, and then calculate the Z values for each pixel
  3. Function 2: Map the Z values back to pixels by interpolating between black where z = -3, and white where z = +3.





Results of processed images

Some more results of processed images



23 June 2013

Todays result: 3D cellular fill patterns

3D cellular structures should be the standard fill mechanism used by slicing software. 

My recent work has lead me to the conclusion that 3D cellular structures make better fill patterns for 3D printing and that it would fit neatly as the fill pattern used by slicing software. Using cellular fill will have benefits over using horizontal alternating diagonal fills, and over 2D pattern fills such as hexagonal tessellations. 

Using cellular fill increases the strength of the part relative to the amount of material. Conversely, less material is needed to achieve the same overall strength. The cellular fill is a deliberate structure with plastic used sparingly but in a focused way. Each cell is a pocket of empty space with only the outer perimeter traced in plastic. This approximates a sphere producing a strong shape relative to the amount of material used. Each cell shares material with, and benefits from the stability and strength imparted by other cells. Using less material leads to less printing time.

This work has been my attempt to contribute back to the Reprap community. I have produced proof of concept model using the Pink panther woman but I feel pressured to release this idea before I can get it fully operational because of the recent plague of 3D patents and trolls.

In the near future, the use of cellular fill structures will be a normal and automatic part of slicing software instead of the current zig-zag fill a cellular pattern will used. At each layer the slicing engine will also slice (or more likely compute) the pattern and insert it into the object.

The generation of the pathways by slicing engines will also need to change. When sliced horizontally an object filled with cellular structure looks like a collection of different sized circles compressed together.  For the best outcome, every cell needs to be constructed as a series of complete circuits around the perimeter of the cell. In my experience, current slicing software tends to identify some cells as complete circuits, while others are afterthoughts once the complete cells are in place. The result is poor with the regions of the afterthought cells not connecting correctly to one or both adjacent walls. To date experimentation has been using objects filled with cellular structures within the model itself. 

Similar to the selecting layer height and print speed, the user will select the pattern used, wall thickness and size of the pattern. Orientation and location of the pattern may be advanced options.  By varying the settings the desired strength, density, and timing trade-offs can be controlled.

The main pattern of use is the truncated octahedron. It is a beautiful shape, made of six squares and eight hexagons all with equal length sides. It is single shape that will completely occupy 3d space with no gaps. It tessellates through uniformly via translation alone ie no rotations or other transforms. I have generated other more complicated patterns that could be used but I don’t believe at this point that they offer any additional advantages.


 Truncated octahedron pattern
This print is 100 * 100 * 50 mm and weight ~50gm.
It will support over 80kg placed on the thinner edge
I estimate it uses approximately the same quantity of plastic as a 10% zig zag fill



The Pink panther woman, scaled larger and cut into six segments.
Each segment is filled with a different cellular pattern
Printed in transparent ABS to show off the internal structure


Individual segments can be seen in previous posts.
The truncated octahedron model will be made available soon.

2 June 2013

Todays result: A box


I have made a box to cover my printer. It is made out a fruit packing box sourced from my local supermarket. It is a 65cm cube of 15mm thick cardboard and supports my full weight from the top. 

The original box carried pumpkins. It was a large octagon shape about 1.8m across with 4 square panels alternated with four smaller rectangular panels. Each panel had a flap that was stapled to a wood pallet.  I cut the box into pairs of one squares and one rectangle. The sections where reassembled into a cube with one face missing. Fencing wire and small MDF blocks where used to stitch the panels together. The wire was pushed through the cardboard and looped through a piece of MDF on either side. I sealed the edges and the holes left by handles in the original box.

I made to box to help keep it the printer warm while printing ABS. It has the added benefits of containing plastic smells and dampening some noise. 

The printer cables travel under the edge of the box.  I keep my circuit board outside of the box for better cooling. The MOSFETs get very hot and the steeper drivers warm a little. The box puts too much pressure on the Z-motor cable which is the shortest connection to the printer. The circuit board connector bends slightly and every time I lift the box to check progress I fear something will go wrong. 


 Box, grey sealer applied liberally, and fasteners visible

Model before assembling box to ensure it would fit.

27 May 2013

Todays result: A full set of Mendel90 parts

I now have one or more spares for every printed Mendel90 part.

I have lost count of the number of parts on my original Mendel Prusa style printer that I have replaced. It now is made of more replacement printed and electronic parts than original parts. After a period of being broken, once operational again the first thing I did was to print a spare for every printed part. 

The reasons parts have broken
  • PLA parts warped when printing ABS,
  • Extruder gears broke from ware,
  • Parts broke from stress or over tightening,
  • Generally delicate parts - the manufacture appears to have reduced the printed volume of many parts.

The same applies to the Mendel90, I have had to make at least four repairs now. The broken parts have either been PLA warping at ABS temperatures or bad prints to begin with. The Mendel90 is a much more reliable design. 

Having a 'spare' printer has reduced the need to backup the Mendel90, but I am also keen to one day convert the Prusa style printer into a Mendel90. I have been using periods between large prints to print a spare or two. The majority have been in PLA. I got carried away trying to print everything quickly and used PLA for some items that need to be ABS. I now have a few PLA spare of spares.

When printing ABS or for long periods in an enclosed chamber, parts near the extruder or in contact with the X Y or E stepper warp if made from PLA. PLA seams fine for the other parts.

In my experience parts that should be ABS
  • x-motor 
  • y-motor bracket
  • d_motor_bracket
  • wades_block
  • wades_gear_spacer
  • wades_idler_block
  • x_belt_clamp
  • x_belt_grip
  • x_belt_tensioner
  • x_carriage
  • x_carriage_fan_bracket
  • x_carriage_fan_duct
  • x_motor_bracket
  • y_motor_bracket

Full set of Mendel90 v2 printed parts (grey PLA, black ABS)


Mendel Prusa style printer, Note that the original part colour was dark grey.


22 May 2013

Todays result: Carbon filter


I have created a filter to add to my printer. It helps by removing some of the bad plastic odours. The filter medium is activated carbon pellets purchased at an aquarium shop.

It is a box shape with a fan at both ends and a diagonal wall of carbon through the middle. The intent was to double the force moving the air through a large area of thin carbon. It was designed to mount on the side of my Mendel90 it fits neatly on the inside of the right stay. I directed the air flow downwards. When the printer is operating in enclosed box it will pull warm air back down from above.

The y length is 17cm, almost the full length of the printer bed. The z height is 70mm - the fan size, and the x width is fan size + 2 cm wall of carbon. The filter grill is spaced with 3mm gaps to hold the 3.6mm diameter pellets.  I used 70mm fans due to a surplus from a botched order and 2cm of carbon seamed a useable thickness. Each end has m3 nut traps to attach the fan, and a slide cover to hold the carbon. 

The very bottom layer is mostly missing. The second layer droops a little when printed and restores a flat bottom. All but a few mm around the perimeter of the bottom layer have been removed. This reduces the adhesion to the bed otherwise it would be very difficult to remove.  To avoid severe warping the bed needs to be heated. I used PLA, ABS is a different beast where a complete bottom layer would probably work better.

The top came out well; I have to admit I was surprised, but it is not air tight. Along the sides of the top there are gaps between strands of plastic. This is where the largest bridging was. I suspect in 1 or 2 more layers it would have completely sealed. Painting it should resolve this. The model has inbuilt support structures and does not need generated support when slicing. The supports for the top branch off the filter grill and walls. They snap away easily after printing allowing access to the nut traps. The nut traps are still fiddly to use as they face into the chamber.

This is my third filter attempt; the previous filters had too much carbon and almost no air flow. 

The model is available here, though I am not releasing the scad files due to objections to thingiverse. I may produce stl files for other configurations if you leave a request it in the blog comments (no promises!).


 Mounted filter box on Mendel90

Failed filter attempt #2, converted broken PC power supply box. 
Electrical tape covered the screw holes and a tissue was placed inside the box over the vents on the far side.

Failed filter #1, printed mesh tube ends, designed to hang off my spool holder rod.


16 May 2013

Todays result: 72 playing tiles

I printed a set of game tiles for a friend. They are in a gift box waiting to be discovered.

They took about three weeks of evenings to print which included a lot of failures. This print taught me the importance of correct extruder settings. I probably lost a half a spool of plastic to failed or poor prints. I noticed by chance that Cura was setting its own extruder steeps and overriding the correct value in firmware. Prints would use too much plastic and cause infill to bulge up. The bulges would catch the end of the nozzle and either cause the X/Y motors to miss steps and misalign the extruder or just knock the tile free of the bed.

I used green for the base and grey for the top. I stole the idea from images of other people’s prints. The tiles came as separated models for the base and tops. My printer has a single extruder. To achieve two colours I printed the green base for a plate first, changed the filament, reset the z value back to zero, and then printed the grey tops. The base and top where sliced independently with different settings and printed as separate jobs on top of each other.

The tiles where arranged in plates of 9. Often some of the tiles where ok while other printed poorly. To replace failed tiles I ended up cutting up the plates then reforming my own arrangements.

The grey top didn't always span the same horizontal area as the green base. This would lead to misalignment as Cura would centre each job. When I figured out what was going on I started using cooling cones at each corned to force the equal horizontal areas and ensure alignment. The cooling cones also produced better prints of towers and cloisters.

Some of the pieces had tab/sockets that where too small and needed to be made larger. Other model changes included adding a shield to the four way city, trim the corner walls to match the other wall heights, add corner wall to cities, elevate city shields, and add a termination to the T intersection. Use rounded corner roads.

Changes to slicing settings for the base
  • Leave the heater and bed on at the end of the print, remove M104 S0 and M140 S0
  • Leave the Z height at the level it finishes printing, remove G1 Z+0.5 or similar

Changes to slicer settings for the top
  • Set Z to 0, G92 Z0
  • Turn off skirt
  • Do not home Z, remove Z0 from the G28 line, but leave G28 X0 Y0

The model is available here



All 72 tiles

Close up of connected tiles


10 May 2013

Todays result: Business cards

I made some business cards. They look good in transparent ABS. I made them to try and connect with other 3d printing minded people. I have been rather impressed with them and have made about 10 now trying different things. Most of them have ended as melted puddles of plastic as I "refine" the abs finishing process.

The cards are 0.6 mm thick for the background and the text is a further 0.6 mm. I have printed them at 20mms speed 0.2 layer height, but not noticed much difference printing them at 50mms 0.3 layer height. They take 15-30 min each so I won't be producing boxes of 500 any time soon. The text works best when viewed through the card, this means that it need to be printed backwards. The cards are made in OpenSCAD with the text imported. The background needs to be printed at 100% fill. The extrusion rate needs to be exact or the outcome is poor. The cards look good straight off the printer, but even better when acetone finished slightly, [then poor again if over finished]. Some trial and error is needed to get the text right, too fine and details go missing.


 Card just after printing.


 Card after acetone

This isn't a fair comparison as the before shot was lit from above and the after shot lit from below. The point is the lettering is more rounded, the lines from the diagonal fill pattern has been smoothed out, and the card is more see through.