Arcane Game Lore

Gaming is not in the blood, it's in the dice!

3D Modeling – The Assault Scout – part 2

This post is coming out a little later than usual as I left the thumb drive with all my model files at work over the weekend. I wanted to have pictures of the models to go along with the text and I couldn’t create them as I didn’t have the models proper as I was writing.  Sorry about the delay.

Now that I had my desk model (see part 1), it was time to make the miniature that was in scale with all the others for use in the game.  This post will cover that process.

As I mentioned in my Sathar Destroyer post, my goal was to try to create as many of these miniatures to the same scale as possible and that I had settled on 1/3000th scale.  That’s the scale I produced the sathar destroyer to.  Well, the Assault Scout is 50 meters tall/long in the game, so to scale the miniature would be 16 2/3 mm in size (just over 5/8 of an inch).  That was the goal but that’s pretty small and I may have to make it a bit bigger.

First Attempt

Printing path of the assault scout model showing the holes due to the small wings.

The MakerBot export model of Jay’s Assault Scout scaled down to 20mm

My first attempt was simply to shrink down Jay’s model that I had used for the big one.  I loved the shape and design and the model was already created.  Scaling it down was easy enough and could be done in the software that I used to actually print the model.  However, this turned out to be impossible to print.  Once scaled down, the wings were just too thin.  The fins vanished (which I expected) but even the wings themselves were so thin that the software decided that no plastic needed to be printed.  It was putting plastic in parts of the wing but not everywhere indicating that making it a little larger might work.  In the image to the right (click for full size) you can see the missing plastic, towards the bottom of the wings.

So I got out one of my old original lead miniatures and measured it.  It turns out that the original Assault Scout miniature was actually 20mm tall.  So I scaled Jay’s model to that size (which is actually 20% size increase) but still no luck.  The wings were just too thin.  I briefly considered trying to play with the Sketchup model to make the wings thicker but after a little bit of fiddling I realized that doing so would not be an easy proposition and that my Sketchup skill level simply wasn’t up to the task.

Back to the Drawing Board

Since I couldn’t use Jay’s model I was going to have to build my own.  So I had to make a couple of decisions.  The first was scale, was I going to try to stick to the 1/3000th scale as I planned or, like the original miniatures, make the Assault Scout a little bigger.  The second decision was whether or not to use Jay’s model as the basis for mine or go with something closer to the original model.

I knew I had a couple of constraints based on the nature of the 3D printing process.  First, I wanted the wings to be at least 1mm thick.  The print nozzle on my printer (and on most consumer class 3D printers) has a 0.4mm diameter.  Thus if the thickness was at least 0.8mm, I get two layers of plastic.  I could get away with one but two would make them stronger.  Second, the nozzle diameter, combined with the fact that I would be printing at 0.2mm vertical resolution, limited the amount of detail I could possibly achieve on the model, I needed to take those into account when detailing it.

In the end I decided that what I would do is try to recreate the original Assault Scout miniature as accurately as I could.  The wings on that model were about 1mm in thickness and there weren’t a lot of small details.  I should be able to reproduce it almost exactly.

Building the Model

There are really three main components to this model I’ll detail them each in turn.

The Engines

Probably the most detailed portion of the the model is the engines so I decided to tackle them first.  At first blush, they look pretty simple.  They are basically a squished cylinder with a cap on top.  However, there is a lot of detail on there.  There is the curved cut out, the ridge along the side, and the small indention in the top of the engine.  This was going to be trickier than I thought.

Looking at the original miniature, the upper part of the engines are actually kind of blocky. While there are curves to them, they have corners.  I did want to eliminate that and make them rounder.  (For a couple of reasons: one I liked the look better, and two, it was actually easier to model).  Also, I felt that the base of the engines in the original lead miniature were too small and wanted to make them a little bigger.

So I started simply with a cylinder for the base of the engine. On top of that I added an inverted cone (how to make a cone is detailed later) that had a 30 degree angle out to the diameter of the cap I wanted to add to the top of the engine.  This was for printing purposes.  The printer can print objects with a 30 degree slope but anything more than that an it wants to start adding supports which I wanted to avoid.  Next I added a short cylinder to give the engine some extension.

On top of that I used half of a stretched sphere for the cap.  Now, OpenSCAD only creates full shapes, either cubes, cylinders, or sphere.  If you only want a portion of something you have to use their difference() command.  Basically you give the full shape and then one or more shapes you want cut out of the first one.  So to make a half sphere, you use the following construct:

     translate([0,0,-radius]) cube(2xradius, center=true);

This creates a sphere, and then a cube centered on the sphere that is then shifted down to cut off the bottom half (the shifting is preformed by the translate() command.

This shows the basic shape described in the text.

Basic engine shape

To stretch the sphere, you preface the difference() command with the scale() command which looks like:


if you want different stretches on the different axes or you can use just a single scale value if you want to just grow/shrink by the same amount in all 3 directions.  Putting it before the difference() command  stretches the entire construct.  You could put it on the individual commands inside the difference construct if you wanted to but then you’d need to adjust appropriately.  In my case I was only scaling in z so my command looked like: scale([1,1,6]).  You can see the basic shape of the engine to the right.

This image includes the rectangular extension along the bottom and circular cutouts at the top of the engine

The engine with the extension and circular cutouts

Adding the extension down the side of the engine was easy, that was just a cube that stretched through the entire lower cylinder.  I just had to make it the right size to match up with the overhanging cap.  Actually, it’s a little smaller than that to provide a small step but it was just a matter of sizing it appropriately.

Removing the little circular indentation at the top of the engine was easy as well.  I just had to use another difference() command to cut a cylinder out of the cap I created before.  I needed to do one cylinder for each side of the engine.

This is a representation of the bits that need to be cut away from the engine model.

The bit to cut away from the engine top to add the detailed desired

The hardest part was getting the curved cut outs with the cross bar.  To do this I created another cap identical in size to the original one.  From this I cut out the middle using a smaller cap so that the thickness was equal to the size of the cut out I wanted in the end.  I then added and cut various pieces out of this “cap” until it was exactly the shape I wanted to remove from the actual model.  I then used the difference() command to subtract this constructed shape from the main model.  You can see the bit to cut away in the image to the right.  This took a lot of trial and error to get right. I didn’t do a perfect job of this (you can see some floating bits in the image) but the engine is so small that you can barely see its detail anyway.  On the final model it looked pretty good.  Plus some of that is just from the way the program renders the image.

Once I had the engine model the way I liked it, I used the translate() command to shift it over into position.  I then wrapped the entire bit in a for() loop along with a rotate() command.  The rotate() command looks a lot like the scale() command:


where the rotations are in degrees around the respective axes. In this case I was rotating around the Z-axis 180 degrees.  I used the for() loop to set the rotation values (0 & 180) and put the loop variable in the [z-rotation] section of the rotate command.  This gave me two engines, one on either side of the model as seen below.  I’ve added some color to highlight the details.

Two engines in their proper places

Adding the Wings

The wings were created using a combination of the polygon() command and the linear_extrude() commands.  The polygon() command allows you to draw arbitrary shapes.  It takes two lists, the first is a list of (x,y) points.  These points are the vertices of the polygon.  The second list is a list of point numbers (the first point is point zero).  This is the order you want the points connected.  It then draws the specified polygon but has no thickness.

To get a physical object, you then have to extrude the polygon so some thickness.  This is done with the linear_extrude() command.  In its simplest form, it just takes an extrusion height as its argument and then you include the shape you want to extrude in curly braces ({}) after the command.  It does more but I didn’t need that for this model, I discuss additional abilities in later models when the need for them come up.  In this case, I extruded the wing shape to be 1mm thick.

I now had a wing but it is laying flat on the drawing plane instead of standing up so we apply a rotate() command, rotating it 90 degrees around the x-axis.  I also added a cone to represent the wing fins and match the design of the original miniature.  Cones are made by using the cylinder() command but instead of just specifying the radius and height, you specify two radii (r1 & r2) which are the radius of the top and bottom of the cone respectively.  This cone was then moved into the proper position on the wing by use of the translate() command.

Once I had the wing done, I moved it into the proper place on the model and inserted it into the for() loop the engines were in to get it to be replicated on either side of the model.

The model with the wings added in as described in the text

The Fuselage

The fuselage caused me a bit of headache at first as I was trying to match the original mine exactly.  The lower part was easy, it was just a cylinder.  But I couldn’t match the upper bit as it wasn’t a cone or a rectangular pyramid shape (which I could have modeled with the linear_extrude() command) or a stretched sphere.  It was somewhere in the middle.  After looking at the different shapes, I decided to go with the stretched sphere as the simplest and best looking option.  This was created the same way I did for the engines but I stretched it out much more.

That formed the basic body.  Adding the little bit of detail to the fuselage also was a bit tricky as there is no way in OpenSCAD to make triangular pieces.  To pull this off I had to use the difference() command and some cubes.  I made a base cube and then using the rotate() command angled some other cubes to slice off forming the triangular shape I needed.  These shapes were then moved into proper position using a series of rotate() and translate() commands.

Here’s the finished model:

The full model as described.


The next step was to try to print the model.  I knew from the shape that it would need supports under the engines and because it was small, I’d want to print it on a raft to help hold it in place.

Fits and Starts

In the fuselage section above I made it sound easy.  However, in truth I actually printed several of these with the different fuselage shapes and in different sizes, trying to get a shape I was happy with.  Some were too small and didn’t print properly, some were too fat.  It was definitely a bit of a trial and error process to get the shape write.  Luckily, since the print is so small a single print job only took about 7 minutes.  Rapid prototyping at its best.

Once I got the shape I wanted, I added in the fuselage details and did a final “check print” to make sure all was well.  Here is the final model compared to the original metal miniature.  It doesn’t have all the detail as I simply can’t recreate that with the 3D printer but it looks pretty good.

The two models side by side.

Comparison of the plastic and metal miniatures. I’ve played with the contrast on the plastic piece to try to make the details a little more visible so it appears yellowish instead of the brilliant white of the actual piece.

One is the Loneliest Number

While the single print worked, I wasn’t completely happy with the quality of the nose of the ship.  At that point in the print, that is the only part of the model printing and the printer is moving so quickly that the plastic doesn’t really have time to cool enough so it is still soft.  That was tending to make the nose a bit wavy as the plastic was being slightly dragged around by the print head.  You can see this in the tip of the printed miniature above. I had noticed this in my destroyer print as well.

Four models being printed at once.So I decided to print four of the models at a time. The image at right was taken about three quarters of the way through that print job (click for full size) just as the engines were finished.  Since it would be printing four of them, it would be moving around much more and be longer before each individual layer was put down an a given model allowing the plastic time to cool.  The resulting print was much nicer than the single print.  Plus it had the added bonus of requiring slightly less plastic on the raft for the four models than it would have for four individual models making the print cost less.

Final thoughts

I was quite pleased with the print for this one.  I haven’t painted them completely yet as these little models are hard to paint.  But in doing this model  I definitely caught the 3D modeling and printing bug and decided that it would be fun to recreate all the miniatures.  More in future posts.

As always, leave questions, comments, and suggestions in the comment section.

Categorised as: 3D Modeling/Printing


  1. [...] making the Assault Scout miniature, I decided to do a miniature for the other small ship that I had designed, the CSS Nightwind.  The [...]

  2. [...] command in OpenSCAD).  The top half is one of the stretched cylinders that I used in the Assault Scout mini.  The difference here is that while the Assault Scout started out as a flat cylinder and tapered [...]

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>