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.

8 May 2013

Todays result: Printing in the sun

Its such a lovely autumn day I think I will go outside and print in the sun.


5 May 2013

Todays result: Big blue lady


This is a test print to ‘quickly’ evaluate how the Pink panther woman model would print in layers. The model is a hollowed out version of the original and not just a ‘shell’ print. It was the precursor to the filled in version that I am currently working on.

It is printed in blue PLA at 0.2mm layer height, 20mms print speed, and took about 2-3 hours for each of the eight slices. The final height is 40cm tall. This was the limit my printer could manage, further and the horizontal foot print of the slices would exceed the print bed dimensions. 

Clips where necessary for the model to stand upright and balance the layers. The print has very little surface area for the next piece to sit on. I printed tray of clips but ended up breaking about 1/4 assembling everything.

The model was produced by:
  1. Scaling original to 40cm
  2. Offset surface inwards
  3. Repair and clean
  4. Invert model
  5. Merge with original
  6. Slice in to layers
  7. Flip some layers to print better

I used MeshLab for cleaning and merging parts and Netfabb for scaling, repairing, inverting and slicing into layers. Custom software of mine offset the original surface.

The hollow model is NOT available here.
Update: I'm sad to say I pulled the files. I didn't realise that the original was"All rights reserved" so I shouldn't be copying or distributing it.


The final model on top of my netbook for scale.


The nice lighting is from the sun shining through glass bricks at my front door.

3 May 2013

Todays result: Cooling cones

I have been using specifically designed cones to lengthen print times without decreasing the actual printing speed.

Models with a small amount of material in one vertical section can print rapidly over the same spot. This builds up heat in the part and leads to warping. This occurs frequently at the very tops of prints. Slicer and Cura have print speed limiting settings but I have found this changes the consistency of prints and appears as visually discontinuous vertical regions.

The cones are wider at the bottom with a single layer base for stability. Thin tall columns eventually get knocked over and make a mess. The cones are thin with holes cut in the sides as the delay comes from making the head move and not wasting extra material. By placing cones as far as possible from the object once per layer the print head will need to take time traveling to the cone then back again. This adds a cooling period between layers and gives the part a chance to solidify.

The model is a OpenSCAD file. The height and width can be changed. The height should be set to the same height as the part. Increasing the width slightly increases the delay, uses more material and may take up more room.

To use set the height of the cone then include the model with the object to be printed. Place the object and cone in opposite print bed corners. More delay can be achieved using multiple cones. I prefer placing the cone in the corner closest to [0, 0, 0], this will make it the first item printed on the first layer.

The OpenSCAD file is available here.



 Various cone from past prints.

 Cone used to print Carcassonne Cathedral

 Cone plated with Mendel90 x_motor_bracket







2 May 2013

Todays result: Part 3, 4 and 5 of 6, the abdomen, hips, and but


The last week has been busy printing parts for my version of the pink panther woman model.

The patterns for part 3 and 4 appear more disorganised than the other parts. They don't have a simple geometric shape as the basis for the pattern. Part 5 has one one the best patterns I have worked with so far.

I have fixed the Y belt issue that caused undesirable ripples in part 2. The ripple effect could be interesting in the right place - but not for this print

Producing this model has been a lengthy involved process.
  1. Make an inside shell for the Pink Panther woman model
    • Hollow out the original Pink Panther woman model
    • Shrink the outer shell of the model by offsetting each triangle along its normal
    • Trim triangles against neighboring triangles
    • Repair
  2. Slice into 50mm layers
    • Slice up the inside shell into 50mm layers
    • Save each piece
    • Flip the triangles of the complete inside shell
    • Merge with original unmodified model
      Slice into 50mm layers
      Repair slices
      Save each piec
  3. Generate cellular patterns
    • Run algorithm to generate patterns 
    • Filter duplicate patterns
    • Inspect and select patterns
    • Find good pattern orientation and size
  4. Combine model slice and cellular pattern
    • Break the pattern into wall planes
    • Create an OpenSCAD script and render each wall as a stl file
    • Propagate the wall stls over the space occupied by the modle
    • Use OpenSCAD to intersect the internal model shell and pattern walls
    • Merge the resulting walls and outer model slice
    • Trim erroneous triangles
  5. Slice and print
    • Print a test piece in a surplus colour
    • Fix model if necessary
    • Print final in Natural transparent ABS
  6. Finish
All up I have worked on this solidly for two months now, not including the mass of resources I accumulated previously. I have had to tweak the process a lot to work around various limits in skills, my code, OpenSCAD, and time. OpenSCAD handles simple stl csg operations ok, but sometimes it just fails.

The internal walls in the resulting models overlap at the seams. I haven't been successful at combining the walls into single shells so the final stl is a collection intersecting shapes. Cura seams to handle this ok, but I believe that an accurate model would achieve better results than I am getting.

Each piece is printed at 20mms with a 0.2 layer height. This produces nice results but takes an average of 9 hours per print.






1 May 2013

Todays result: Modified Mendel90 y-idler-bracket

I tweaked the design for the bracket to add extra tension to the y belt as it is done up. The y bracket is responsible for the tension on the y belt. The y belt can be installed to within one tooth accurately. I used T2.5 belt so that is +/- 1.25mm as the belt doubles over. The last mm or so is achieved by the screw tension holding the y idler firm against the printer base. My printer is MDF. The screw hole for the bracket is stripped, and it quickly works its way free after tightening. Wood glue will hold it in place but only for a print or two. The belt being just a little loose has caused noticeable ripple patterns on prints as the bed wobbles back and forth.

The modification adds a slant to the back of the bracket. When tightening the screw the bracket acts as a leaver adding tension to the belt slightly. Trigonometry reveals that for T2.5 belt an angle of about 6 degrees will pick up the remaining slack.

I printed the bracket right way up, and then filed off the messy overhang. Flipping the model long way up would prevent this but also reduce the print area touching the bed. As the bracket screw hole on my printer has stripped I used a zip tie instead. The new bracket has removed the ripple effect on prints.

The modified scad file is available here. To use the Mendel90 repository is needed. Substitute the modified file for the original y-idler-bracket.scad in the directory Mendel90 \scad.

To install
  1. Setup the printer as follows 
    • Y-motor and bed in place
    • New y idler on the belt but unfixed to the base
    • Y-belt tighter than necessary
    • One belt clamp on the bed done up, the other tight enough to hold the position of the belt, but loose enough to give when pulled
  2. Place the y bracket on the base with the bearing side flat and screw hole elevated. Slide the bracket with the screw toward the screw hole until it is just able to reach. This should be the correct belt length to within one tooth.
  3. Tighten the belt clamps on the bed.
  4. Tighten the bracket screw until secure and the belt is tight

Angle to achieve desired tension


 Installed on my printer, this is before I did the math and has a 20 degree angle.

29 April 2013

Todays result: Filtering cellular patterns

I have implemented some rough and ready ways to cull the thousands of cellular pattern permutations down to a few for further use.The cellular patterns are the structures I am using to fill the slices of my pink panther woman print. 
 
The algorithm that generates the patterns uses a seed value that is arbitrary and will therefore generate limitless numbers of  patterns. In reality there are actually few interesting patterns. The algorithm is actually generating the same patterns with different transformations.
 
A pattern can be transformed back to every other member of its family set by translations, rotations, and scaling. I have defined a length function that 'measures' a pattern. Each pattern can be reduced to a minimum length and patterns are members of the same family if they can be reduced to the same minimum pattern. More than one pattern in a family is redundant. This is analogous to the set of multiples for prime number. Typically its the actual prime number that is important.

After minimising, several instances of the same pattern may continue to appear different because varying floating point numbers. In this case the exact position of vertices of a pattern are not important, instead the relative order of vertices along each axis is meaningful. To homogenise patterns the integer order of each vertex along the X,Y and Z axises is substituted for its coordinates. Patterns can then be compared and duplicates identified. Eg the set of points [0.1, 0.7, 0.5] [0.4, 0.8, 0.2] and [0.6, 0.3, 0.9] would become [1, 2, 2] [2, 3, 1] and [3, 1, 3] respectively.


27 April 2013

Today's result: A new power source

By using the outlet for the air-conditioning I can print more freely. My printer stops when other appliances are used in the house. I was limited to printing after dinner ->  before breakfast over night, and during work hours during the day, that is if no one else was using any of the disruptive appliances.

The print would usually stop when devices with electric motors where switched off. Disruptive appliances are fans, range hood, dishwasher, microwave, and I suspect the washing machine and kettle. Surprisingly the fridge doesn't cause problems.

Initial tests showed by using the AC outlet the range hood could be switched on and off safely, and a fan could be used from multiple places around the house without problems. When the fan was also plugged into the AC outlet the print stopped as expected. Since then I have successfully printed while dinner was prepared, and washing done.

Failed attempts to fix the problem
  • Using a dedicated power board for the printer and laptop controlling it had no effect
  • Using a desktop PC as a controller and powering the printer from the PC's power supply, this didn't seam to have enough capacity for both, in the end I accidentally shorted the 12v to GND and the power supply blew up
  • Multiple surge suppressors had no effect
  • Shielded USB cables had no effect
 
Individual circuit breaker for the air conditioner


Air conditioner outlet with a surge suppressor

23 April 2013

Todays result: Part 2 of 6 the breasts

This is the second price of my pink panther model, filled with a new pattern.

The base of the print stuck well to the print bed. The part shrunk slightly as it printed and resulted in the lower 3-4 mm appearing to taper out slightly. I forgot to clean the nozzle before printing and there is some burnt plastic spots embedded in the lower levels.
I was afraid the the print would not finish. I ran it over night but it was still going the next morning.The printer stops when other appliances are used in the house. Normally I try to fit prints in the period after dinner before breakfast. Last night I started later than desirable because the printer needed fixing. Fortunately my partner had breakfast out this morning and it the print finished.

This section of the model is:
Natural ABS
50 mm high
Weighs ~80gm
Uses a hexagon style pattern
Took 10h44m to print

The second section of Pink panther woman model

Update:
It turns out that this is a good example of a slightly loose Y belt. The fine wave pattern that can be seen particularly in the the flat regions of the print was caused by the bed rocking back and forth.


22 April 2013

Todays result: Acetone finishing chamber


A soup pot, fan, heater, grill, and acetone.

Initial experiments have been cold, some using the fan. Have not achieved even results yet. The coffee heater was insufficient to vaporise the acetone. The heater is I have is a an old USB coffee heater. The wire grill holds the part above the pool of acetone. 

I have tried parts for 10, 20, 40, and 80 minutes. 10 minutes was hardly noticeable, while the 80 minutes test came out varied. Some areas where very nice, some where very under done, and others areas melted and deformed.

Using electrical tape to seal the lid is sufficient to contain the acetone. I have use a single dribble for all the experiments, and there is still a puddle sloshing around in the base of the pot.

Before preforming longer tests I designed and printed a fine grill out of PLA. It was intended to support the ABS part while finishing deforming be base of the part less than the wire along. While the PLA didn't melt, it did soften and warp into a U shape. Heating it in the oven trying to flatten it out again only resulted in the melting the mesh into a solid disc.

Surprisingly the fan seams unaffected even after several hours operating in the pot. The wires on the heater suffered and went the consistency of jelly.

  • The pot was purchased from KMart for $9. It has a 7.6 LT  capacity and large enough for most parts coming off my printer.
  • The base grill was made out of 1/5" wire mesh cut slightly smaller than the diameter of the pot with each corner folded back.
  •  The design for the fine grill can be found here.

Sealed pot


Old USB coffee heater, wire grill, 80mm PC fan

 Fine grill model


19 April 2013

Todays result: Part 1 of 6, the neck


I printed out the neck piece of my modified version of the Pink panther model. The original can be found at http://www.thingiverse.com/thing:1216. The final print will be 30 cm high, it was going to be bigger but I was unsure if I would have enough plastic and printing time. This is one layer of six that will make up the full print. Each layer will have different internal structures. The final pieces are intended to be stacked vertically but remain separable so you can inspect each piece individually. The print is an ice breaker to approach the head of department I would like to network with. I used a new roll of natural ABS that I have never tried before but worked first time.

To produce the model I have used the free version of Netfabb studio, OpenScad, MeshLab, and a bunch of my own code.
  • Netfabb was used to slice the model into 50mm blocks, repair models, and edit triangles manually.
  • Open SCAD was used to render generated structure into meshes and cut meshes from each other ('difference').
  •  MeshLab was used mostly to merge ('flatten') meshes together
  • My code 'hollowed' out the initial model and generated the internal structure

The neck in slightly see through plastic

18 April 2013

Todays result: A new A.B.S. x-motor end


Wednesday is my self-funded project day, ie I choose not to work Wednesdays so I have time to do my own things. I was disappointed to realise the day of printing I had hoped couldn't happen instead I needed to fix my printer again. During my last print the stepper motors got very hot, hot enough to soften and warp the PLA brackets they were attached to.

Printed a new ABS x motor end and fixed Mendel 90

Looks crap coming off of my old printer. Printed at 0.3m layer height, waves in the walls, very top deformed but repaired with soldering iron. Respect to Nophead for a good printer and model design. Notably easier to repair than other printer

Printed partial neck model missing walls

Eventually I did get one print in before bed time. I printed it to see the result of specific internal structures, but they didn’t even print. Otherwise looks good at 0.2mm layer height & 20mm/s print speed, much better than 0.3mm layer height 50mm/s print speed.

Simple mesh differencing algorithm unusable

The algorithm tries to cut one mesh from another. It works for the tests I have written and can a cube from a Pyramid successfully. However fails on even simple real meshes. It results in backwards triangles, hollow shapes, sharp corners, but there is evidence that it was trying to do the right thing. It assumes that shape is convex and hole cut can be simply filled over – rather than taking shape of cutting mesh. In my case this is acceptable even desirable as all the meshes intersect equally, along corners of the structure. Think of walls of a box where each wall is a rectangular prism, the walls intersect as each rectangle is the full length, width, and or height of the box.
I have looked for some existing functionality that I may be able to use, but haven’t anything that I can use quickly from c#. There are a couple potential libraries in c/c++ but I figured in my simple-ish case it would be quicker to hack together something that will get me across the line than to deal with all the silly problems caused crossing language boundaries and wrapping existing code. I may be wrong on this point.


Motor out of place because of warped PLA



Pink Panther woman neck with (incomplete) structural fill