Head on over to g00.eu to see what I’ve been working on lately!
As it turns out, the reason they give you the CD after you take an MRI or CT scan is not to show other doctors, but to print your own (or your girlfriend’s) body parts.
After reading a few great blog posts about selecting areas of interest from these scans and making a printable version of them, I managed to create a printable STL file of my girlfriends’ skull. These posts were good, but either I couldn’t read the DICOM data into the software they used or the latest version of the software was different. In the end I used 3dSlicer and Autodesk Meshmixer to create the model.
You can get 3dSlicer here. Start it up and load the DICOM data from the CD.
LOAD DICOM DATA > Import > Choose directory with all the scan files > Choose to copy files to local directory rather than just link them > Select patient > Load
Now that all the data is loaded, go to All Modules > View Controllers
Here you can choose the Axial Sagittal and Coronal (X, Y and Z, maybe not in that order) slices.
Once you’ve done that, the slices have to be centered in the three viewing windows. To do that you first have to click on all three eyes to set the visibility to on, for each view. Then, each view has a small crosshair shaped icon (upper left of each black view window) which you have to click to center the slices in their respective windows. You have to do this for each view.
Once all slices are loaded a label map can be created. A label, apparently is an area which you can select in all the slices (or something similar). We’ll use this to separate the area that we need to print.
Choose the Editor module from the Modules menu. The Master Volume is the direction or view that will be converted to a 3d model. Some work better than others, in my case the axial view had a better resolution (smaller distance between individual slices). The merge volume is the volume that will be referenced later on when creating the model. Make note of this name. Next, click on the icon with a gradient pictured. This is the Threshold effect. Basically you set some limits with the range slider and you look at the three windows to see which areas are glowing. These areas will make up our 3d model. After setting the threshold limits, take a look at what number the label has. The idea is that you can use different colors to highlight different areas at the same time and each will be a different label and have a different number. Make note of this number. Now click Apply.
Next, the model is created after the label map. Go to the Model Maker module. Here set the Parameter set to Create new command line module. Input Volume will be the name I previously mentioned to note and in Models choose Create new Model hierarchy. Choose a Model Name. Now, under Model Maker Parameters in the Labels field, fill in the number of the label previously noted. The filter type I used was Laplacian. You can also play around with the smoothing and other sliders. Now click Apply.
In order to save the model click on the save button in the upper left corner and choose only the model you just created with the Model Name, name and from the dropdown menu choose filetype: stl and the path where you wish the file to be saved.
Now open the model in Meshmixer. I first used the Inspector from Analysis to repair any mesh problems, with the Smooth fill option.
From Edit > Separate Shells is used to separate unconnected parts of the model. The object browser opens and you can delete the other shell parts and keep the one that’s needed.
To smooth the ridges left between the CT slices, I used the BubbleSmooth brush from the Sculpt menu and smoothed all areas that were rough.
I also cut the skull in half to print it more easily with the plane cut tool from the Edit menu.
Here is what the model looked like before exporting:
Now export the model as an Stl file and get printing!
I used supports for the lower half printed upside down and no supports for the upper half. 0.2mm layer height and 30% infill. After printing, the parts were acetone welded together and filed down imperfections. The seam is still visible for now.
While working on the HL2 Turret project I made myself some tea. Heat up water, add tea bag, forget tea bag in said water, drink horribly bitter tea. After repeating this process several times I got a bit fed up and decided it was time to fire up the printer and solve this very /r/Britishproblem. Luckily I had some terrible 9g servos and an Arduino Pro Mini to use.
Not having a lot of time on my hands, I decided to limit the design process to only two hours. if it could be done, great, if not, drop the project. Granted, I gave myself one hour before that to think about how this tea steeper should look and work. The good news is, I managed in only 1.5 hours but some mistakes were made.
The red servo horn is designed with ‘tabs’ because I thought it would be a good idea to file the axle of the servo to get better torque transmission through the joint. Bad idea. There is no torque to speak of in this design. It’s a damn tea bag. I drilled out the holes and it’s just an interference fit with screws now. This way the initial position of the horn is also adjustable. Another thing is that I made a hole in the purple case for the servo cables to go through. Never thought about the connectors and they didn’t fit. I filed the hole bigger and eventually cut off the connectors because they wouldn’t fit in the case anyway. D’oh!
While the parts were printing I decided to get started on the software side. After 3.5 hours of trying and failing to correctly calculate the inverse kinematics I was already tired and decided to just used predefined angles for the home position, lifted position for tying the bag to the servo horn and the dunked position. There also is an intermediate position for repeatedly lifting and lowering the bag to get it to fill up and stay vertical.
Once the print was done I acetone welded all the parts together and thankfully it came out great.
Basically, when powered on, it waits for you to hang the tea bag on it, then dunks it three times then waits for three minutes and lifts the bag up to let it drip. Perfect tea every time!
All in all, I used only 8 hours for this project. Which isn’t too bad. Future improvements include an LED or RGB LED to indicate status or time remaining to brew, and inverse kinematics for the servo positioning.
If anyone is interested, I’ll publish the CAD files also (Fusion 360 and STLs), and maybe the sketch (although it’s not really well made).
Edit: Get the .Step file here.
Your Majesty, I am ready to be knighted!
Okay, so I published my first Youtube video. I was really nervous while filming and I may have made one or two mistakes in editing and filming. So please, comment on the video to help me improve!
I needed to see what I’m filming while I’m doing it and a 7″ LCD left over from another project came in handy. The problem is that the enclosure was long gone and I also wanted to mount it on a small tripod.
This is what the final product looks like. I’m using a Li-po to power it, maybe not such a good idea but it was available.
Besides the usual measure once print twice issues, in editing I heard a hum or buzz when I powered on the LCD, maybe someone knows what that’s about so please comment.
Check out the video here.
- Parts printed in ABS
- Layer height 0.3mm
- Raft settings: 0.2mm air gap; Surface layers: 1; Extra margin: 4mm
- Slicer: CuraEngine
- Host: RepetierHost
After searching for a proper plate onto which I could fix the heat bed of the reprap I decided I would make it out of square tubing.
Here’s what I tried:
Aluminium profile at each set of linear bearings.
That was a bad (read stupid) idea because, not only did it limit my Y axis travel but it also allowed relative displacement between the two aluminium profiles because they weren’t connected between them. This caused issues when leveling the heat bed. The torsional stiffness of the bed while adjusting would lift one corner of the front profile and lower the opposite corner on the back profile. BAD.
One thing to note here is that where I am based, thicker plywood is not really available, which would have been ideal. I did try to use hobby plywood but that was a worse idea than the aluminium profiles. When the heated bed was turned on, the plywood quickly developed a beautiful arch. In hindsight, I shouldn’t have even considered using thing plywood.
An aluminium plate would also have been great but it would have also been expensive and difficult to cut nicely.
Therefore I decided to go with 12mm square tubing silver soldered together and then painted black to prevent corrosion.
After soldering the tubing, I drilled all the necessary holes with one side having a hole big enough for the head of the screw to go through and the other side just a pass through hole. Like so:
I also added aluminium tape over this structure to radiate the heat back to the heat bed. This decreases heating time significantly.
Edit: Youtube Series on the way! Check out my Channel.
After finally having gotten around to building a 3d printer of my own, and being inspired by youtube videos I thought about making a “real” HL2 turret/Sentry Gun. And by real I mean the turret body should rotate side to side about 90 degrees, the machine gun part should move up and down and be able to point the gun and body towards a face. The gun will only probably be an led or something safe like a
pellet gun. Edit: Oh my God, not a pellet gun! I thought they’re something else. Definitely not a pellet gun.
I will be using a Raspberry Pi for the brains of the operation. The basic idea is to have the Pi connected to either a webcam or a Pi camera mounted in the body of the turret and with a little image recognition identify the height and angle of body rotation at which a face is found and then via the serial port command and arduino to move the servos, change LED colors and so on. Of course, it will be able to play the turret sound from the game.
But how does one get started on such a project anyway? Well I did some googling and I couldn’t find any 3d models which I could use as a basis for my 3d printable, functional model, and the pictures I could find online with the turret were all isometric views which I couldn’t exactly use as a reference.
After a bit more searching, I stumbled over a paper craft model. There are a lot of these models available. After downloading it (I can’t find the link but I’m hosting it on google drive), I saw it had a *.pdo extension. What is that? Well, apparently it is a pepakura model and it can be opened with Pepakura Viewer which you can find here. I opened it, and guess what? It’s perfect for the scope of this project. On the left side of the screen you get a 3d view of the paper model and on the right you have the unfolded printable version of it. The 3d view will be perfect for taking snapshots of the model to insert onto sketching planes when creating the robotic version. Not only that, but you can click on the various parts and they’ll be isolated to increase visibility on that part.
So now I’ve got a good starting point. But what about scale? Well it sure won’t be 1:1 because that would be a bit too much to print, but what I did was to create a block shape the size of the raspberry pi, the brains of the operation and then scale the image of the turret until it fit into the body. Then, one by one I started sketching out the parts and assembling them. I started the project in Solidworks 2010 but I wanted to try out Autodesk Fusion 360 because it’s free so I transitioned to it by outputting the Solidworks assembly to a .STEP file and importing it into Fusion. It worked great.
One important issue with the functionality of the turret is that the panel on which the back leg is mounted interferes with the body when in search mode so it would be impossible for the turret to rotate when assembled. The front legs are a bit easier because they mount on a plate which is positioned directly under the body and would make a great axis of rotation. So for the back leg I decided it would be easiest to just extend the plate downwards until it can be solvent welded with acetone to the front legs plate.
After some deliberation I decided to use two bearings on 8mm threaded rod to enable the body to rotate and then used a mini or micro servo as an actuator. I’m a bit worried about using a small servo for the rotation of the turret because the movement should be smooth and I’m not sure how much torque will be required once the entire thing is assembled. Although right now, the bearings seem to be really easy to rotate. I’ve also printed some servo “horns” and I used a 2mm steel wire to connect the two (not pictured). It should be enough for only 90 degrees of rotation. Another possibility I considered was using a small stepper motor and belt drive, but I’ll leave that as plan B in case I get issues with the servo.
The bearing holder will be solvent welded to one of the base halves and the other half has two recesses in order to support the turrets weight once both halves are mounted.
Also, to get the back leg plate to fit onto my print bed I cut it in half and It will be solvent welded during assembly.
I there is interest in this subject I will make the CAD available for free. I think a Youtube series would also be nice.
If you need to control some stepper motors for a 3d printer or a CNC machine, you need a stepper motor driver. Usually, these come with parallel port connectivity and if you don’t have a parallel port on your PC or you want to drive your CNC machine from a Raspberry Pi, then you have the choice of either using a USB to parallel adapter, or you can use a microcontroller.
A friend purchased a chinese stepper driver based on the TB6560 and needed a way to run the steppers from an arduino, so I made a shield for this purpose.
The design is made in Eagle using the pinout information of the stepper driver from this website.
You can download the schematic and board here.