2017-02-15

More on OpenSCAD

This is a bit more on OpenSCAD, using the Valentine's heart as an example. This time, the "nub" which constrains the movement - you can turn the heart 180 degrees. When in a heart shape the lids are locked together. When in a lozenge shape the lids won't open. That is because of a small nub each side.

We have some variables, nubd1, nubd2, nub which are the diameters and height of a conic shape. The $fn means the surface is quite smooth. I'll explain "w" later.


It looks like this...
We actually stick this on a surface, and it is a good idea to have a base in to the surface, especially if the surface may not be flat, as you'll see. So lets add a base and make it a module.


Now it looks like this...
So lets stick it on the side of the heart, like this...

We'll put one both sides, and have it go in to a "track" on the other side. This means these nubs have to be slightly offset else the simply hit each other. But how do we make the track?

Well, an obvious thing to do is use the rotate_extrude function, but that works on a 2D outline, not a 3D shape as we have, so we can use projection...


Which looks like

Now we can rotate it.


We can cut that in to the side of the heart using difference, but it is exactly the same size as the nub, and that is where "w" comes in - it is an extra width to add to the nub, meaning we can make a slightly wider track.

But we only want the track to be 180 degrees. Sadly rotate_extrude does not have an angle limit until a later version of OpenSCAD, so we can cut it in half using difference and a cube.

The edges end up rather harsh, and actually the nub will not manage a whole 180 degrees like that, so let's add a nub shaped hole at each end as well. The "right" argument is used to tell the module which side we are working on, as each side is slightly different.



If you are watching closely you will see I have used a different function nub() not nubshape()... Well, that is because I want the nub itself to be slightly different - I want it to be wider so it is stronger.

I want to stretch the nub within the track, rotate it a bit - but again, rotate_extrude does not have angle yet, so I have actually just made two hull sections with a few degrees rotation. It comes out like this...



And, of course, as I use nub() for ends of the track/hole as well it makes sure the track is the right length as well.

And that is just one of the small details in the code for the heart box...


2017-02-13

TV has changed

TV has changed! I have noticed this, and so have others.

In fact it is the way I watch TV that has changed really. I have a TV in my "man cave" where I spend most of my time, but I have not watched anything like traditional broadcast TV for over a year now, not even Sky. There is one small exception exception of when I was on TV and wanted to record it. Even that, the last few times, was not actually done using my TV - instead someone managed to capture it for me, or the TV station provided a link to youtube, etc. For a lot of people, only watching TV when you are on it is not watching any TV!

I do watch TV, and I have TV in the background, but it is Netflix or iTunes.

For news and current events I catch up on Facebook, Twitter, and so on. I do not watch TV for that.

For background I have some TV series on Netflix with the annoyance of ever few hours clicking that yes I am watching still. I have just finished ignoring Voyager, the whole series...

For more direct entertainment, that I actually sit and watch, I have iTunes and Netflix, and some newer films and TV shows. Some I still watch, but not traditional broadcast TV in any way.

Seriously, if not for my wife and occasional grandchildren watching live TV, or iPlayer, I could ditch the TV licence. She pays for it anyway!

The world has changed, and as an ISP that is important to us - we see more and more streamed video as main IP traffic. The world is changing is many ways, and it is interesting to be a part of it.

2017-02-11

OpenSCAD with some heart, and balls!

There are a lot of tools for making 3D models, and if you have a 3D printer it is useful to have some of these. One of the most useful tools I have found is OpenSCAD. There are many types of tools, some more artistic, some scanning, but OpenSCAD is an engineering drawing programatic tool that lets you create 3D objects using code.

There is a a Secret Heart on Thingiverse which is really excellent and creates a complete object that then twists between a heart and lozenge shape, locking the compartments that only open when in the heart shape. I was always impressed with it and it "just works" on the Makerbot replicator 2. I tried it on my new TAZ 6 and it did not quite work, which is unsurprising. They publish the OpenSCAD file and I tinkered and did not get far, so in the end I decided it would be a really good learning exercise to make one from scratch.

There are a lot of small details in the final model, so I won't bore you with those, just some of the basics.

How to make a heart shape?

Well, let's start with a few basic constants :-


But how to use these to make a heart, well, a start is the basic "lozenge" shape. How about two spheres?
That does not look that good.

OK, let's use a hull function...

Better but not there yet... That is more a sort of medicine capsule!

How about slicing the top and bottom off...
Closer...

Now, let's cut it in half...
Better...

Now things are looking good... Let's try the other half...
That looks like a heart!
But I want a hollow section of a heart, so let's make the module that creates each half have an "offset" and we can subtract if from the solid.
As you can see, making the outside transparent, the inner makes a nice hollow.

But this was not enough. I needed the hollow to have chamfered edges, else the thin wall would mean the slicer had trouble bridging the top, so how to do that?

Well, make it have an offset for horizontal and vertical...
Here I have shown the two versions with offsets overlapped. Not quite chamfered edge yet.
Let's make a hull and subtract that...
As you can see, with outside transparent, the inside has a chamfered corners as intended.

That is just the basic shape of the heart sorted, hollow, chamfered edges on inside. There was a lot more detail to add, to make joints and hinges and so on, but that should give you some idea of how OpenSCAD works for now.

The end result...



And yes, the moral of the story is that a Valentine's heart starts with a pair of balls...

P.S. I am used to coding, and usually with code there is a reasonably clear end point when it all works - apart from finding and fixing bugs. But this is more art than code in many ways, so I have spent a couple of days fine tuning the design and doing test prints - you really do not know when to stop with things like this - there is always some tiny tweak to improve it either technically or aesthetically, and there is always a way to test the limits of the printer.

2017-02-07

3D print graveyard

As I posted, I have a new 3D printer. The Lulzbot TAZ 6 is much like the Makerbot Replicator 2 but with a lot of refinements. So now I am looking at the software you use with the printer.

With the Makerbot, you use their software. It just works, and does so very well. Some models need "support" material and some do not (you cannot print in thin air, so overhangs need support). But models tend to print well, and there are a lot of models designed and tested to just work on a Makerbot.

The TAZ 6 is usually used with Cura, which is free software and there is a profile for the TAZ 6 (i.e. all of the various settings) to allow printing in PLA, ABS, etc. It offers much the same in simple settings - fast/medium/fine print speeds, with supports or not, etc. Again, for most things, it just works.

However, Cura, unlike the Makerbot software, does allow a lot of advanced options. For a lot of people you do not need to touch these.

One thing I tried to print, what with Valantine's day coming up, is the Secret Heart Box (on thingiverse). This is a very impressive 3D model, which is designed to print on a Makerbot.


It opens, and can fold to a non heart shape. Quite clever, with hinges built in and printed as one.

I tried on Cura and TAZ 6 and it did not "move", the parts were fused. Thankfully they publish the OpenSCAD model, which, after some updating, allowed me to change tolerances, but still it tricky.

So I thought I would experiment with some other software, and have bought a copy of Simplify3D ($149). For a start, it is quicker and easier to use than Cura. The print preview is really impressive and quick.


Simplify3D has way more fine tuning options, and in fact has allowed me to make a much better "profile" for printing on the TAZ 6. What seems odd if the profile for the TAZ 6 as supplied was still somewhat lacking. Here are just a few things I ended up fine tuning...
  • To get the first layer to stick better I am heating the bed more (100C) just for first layer
  • Printing first layer slower (25%)
  • Printing first layer 200% thickness
  • Printing a brim at 0.1mm spacing for small footprint objects
  • Horizontal adjusts of -0.05mm
  • Extrusion multiplier 1 (why was default 0.9, odd)
  • Fewer base layers (2)
I also tried a few other tricks, and reverted them. One trick is printing at a small negative Z offset to force first layer in to the bed, and hence allowing 100% thickness, but that was not as reliable as just printing first layer 200%.

There are still many more features I could adjust, and I can tell it to print using different processes for different layers if I want.

Brims, Skirts, and Rafts

One of the things that 3D printing often needs is additional adhesion to the print bed - the TAZ 6 helps a lot by having a heated bed. In an ideal world you just want to print the model exactly and no extra bits (many models do not need support material).

However, if you are not careful the model comes unstuck during the print.

A raft is the normal solution on the Makerbot (I do not think it supports a brim). This means printing a thick layer on the bed (sticks well) then some thinner layers, then the model.

A raft is important if the bed is not smooth or exactly level. The TAZ 6 is very good with bed levelling and the bed is (so far) very smooth and flat. The Makerbot can easily be slightly off level and can easily be marked or pitted by previous removal of prints.

There are downsides with a raft. It sticks very well to the bed. Well, you want this while printing, but afterwards it is very easy to injure yourself trying to break the raft from the bed (on a Makerbot). Less of an issue on the TAZ 6 as the cooled bed tends to allow things to unstick. Also, separating the raft from the print can be tricky. and has same risk of injury! It can also leave some raft on the model which is almost impossible to remove. Rafts also use time and plastic, and for small models can be more plastic than the model itself! As a rule I dislike rafts!

A brim is a simpler solution. This is an outline, several layers wide and usually one layer thick that touches the model. This simply makes the base layer much larger, and is easy to break off after printing. Indeed, I have set it 0.1mm from model, which creates that slight weak point and makes it ever easier to separate. Brims work well but only really needed on models with small footprints.

If the footprint is big enough you do not need a raft or a brim, but you may need a skirt - this is an outline or some such that simply gets printed first to ensure the extruder is extruding and printing cleanly. The makerbot uses a long line at top of build plate for this, the TAZ 6 typically uses a skirt (outline away from the model).

Building bridges

One issue with all slicers (the software to turn a model to a tool path for printing) is where there is a lid on something, i.e. a print layer between the sides. You have to extrude filament to span over thin air from one side to the other.

The cura code coped with the top of the heart model perfectly, spanning over the thin walls each side.

The Simplify3D was stupid. It plotted the border for the top over the thin walls, and then tried to print the bridge totally over thin air, unsupported.  I had to tweak the model to make thicker walls so the bridge was supported on something. It tool several latest to actually build up a layer on top of a load of spaghetti, and even then it was not complete.

This is a poor design in Simplify 3D which Makerbot and Cura manage with no problem!

Time (and plastic) consuming

Each time you try something you can spend hours waiting for the outcome. It is a good job I have real work to do whilst it is printing another broken model for the grave yard.

Important tip: If you have a heated bed like the TAZ 6, always wait for it to cool before removing the model, else your perfect flat base gets all warped as you remove it, D'Oh.

Some times you can test something with a small test model, that helps a lot. To get the -0.05mm horizontal adjust I printed a small test cube, and measured it carefully.

P.S. I finally ended up with layer one done as a separate "process" for the first layer with 1.75 extrude factor (i.e. more plastic) but same layer thickness. This means not having to skip a layer by making first layer 200% thick.

P.P.S. I redesigned the heart from scratch - which was, in itself, quite fun. Just in time for Valentine's day. http://www.thingiverse.com/thing:2097443



2017-02-02

Investigatory Powers Act on EuroNews

http://www.euronews.com/2017/01/27/adrian-kennard-challenging-surveillance


This was the day I coughed so hard an ambulance crew was called - not sure if cracked rib or badly pulled muscle, but this interview was literally as ambulance crew and their "gas & air" left and before I was on the pain killers...

2017-02-01

Moving

It is strange...

I was born in Worcester, and have lived in Birmingham, Chalfont St Peter, Slough, London, Harlow, Newcastle Under Lyme, and Bracknell. I think that is it. I may have missed some. The idea of moving is always a challenge but at no point in my life did I ever consider that there may be some reason I could not simply move. The hassle was renting or buying somewhere, and that was basically it, after getting a job (which usually came first).

For me the idea of moving to say, Glasgow, or Cardiff, or anywhere else in the UK all fell in to the same category. Of course I could. It was obvious.

To be honest, it only occurred to me, maybe 20 years ago, I could move somewhere else, when a friend moved to Finland. The EU has opened things up, and yes, until recently, I would have said that it was obvious I could do the same, or Germany or France or whatever. I assumed the language issues, cultural differences, and availability of Marmite would be my only issues really.

I always assumed moving to US or Canada or some other place would be harder and need a visa and becoming a national - emigrating, basically. I have skills and money so they would be possible, but would be harder, and I always assumed that.

Over the last year I realise some of these assumptions are not as clear cut.

  • Moving to US? Why the fuck would I right now? Why would anyone?
  • Moving to Canada? Interesting idea - but clearly needing some work, visa, money, something.
  • Moving to mainland EU? Well, yes, or maybe no - with brexit that could break once I have moved.
  • Moving to Edinburgh? I always assumed yes, but what if Scottish independence was to happen?

How long before moving to the other side of Bracknell needs a visa?

What is the world coming to?

Lulzbot TAZ 6 - when things go wrong

Too be fair, this has happened at one time or another with every 3D printer we have had, I even did a video for sorting it on a Makerbot Replicator 2.

Well, sadly, it happened on my new TAZ 6, and was basically the same. At the top of the hot end, above the cooling fan, there is a removable brass bush. If you leave a print jammed up, it carries on with the filament stuck. Eventually that causes a plug to form in the bush, and you are screwed. That bush is not meant to get hot enough to melt the plastic, so it won't clear when that happens.

The fix is removing the extruder assembly (one Allen bolt), and disconnecting the hot end assembly (two Allen bolts). This allowed me to access the blocked bush.

I removed the bush (it unscrews). A soldering iron helped as it allowed me to push a 2.5mm Allen key in and use that to unscrew the whole thing and remove the filament down to the hot end. The hot end had to be warm enough to allow it to be removed.


It could then remove the plug (some use of soldering iron, 2.5mm Allen key, and a pen-knife), and re fit. Now filament could feed all the way to the hot end.

I thought I was done, but trying to print still resulted in it jamming up. I stopped the print before another plug formed this time. I was stuck, nothing seemed to work. I adjusted tension on the feed roller, but no joy. It would feed, but too slowly and hence jam up and strip the filament with the feed roller.

The final fix was a very fine "beading" needle which my wife provided, 0.45mm diameter, pushed in to the (hot) hot end nozzle (which is 0.5mm) to clear it. After that printing was fine.

It is worth checking things like the size of the needle, obviously, else you could damage things. I have a nice set of digital callipers for that.

I can only assume some contaminant, perhaps from the 6 year old reel of PLA I was using, had blocked it in the first place. Always worrying when something is not quite plug and play.

I have a partly printed TARDIS!

I have ordered some new plastic, and we'll see how that goes. For now, the ABS I have is working well. A print of a pangolin is going well at 8 hours so far.

Even so, I am still impressed with the TAZ 6 and feel it outstrips the Makerbot Replicator 2 in pretty much every way.

P.S. blaming the 6 year old PLA I was using is not unreasonable. Since this, many hours of printing using ABS and new PLA, and no sign of nozzle clogging up at all. Back to being plug and play...

QR abuse...

I'm known for QR code stuff, and my library, but I have done some abuse of them for fun - I did round pixels  rather than rectangular, f...