Introduction: Print Your Own Moon
This instructables show how to made a fully customizable 3D moon model from scratch.
Update
This is the 1st generation of Moon Lamp, please also find next 2 generations here:
2nd generation: https://www.instructables.com/id/High-Detailed-Mo...
3rd generation: https://www.instructables.com/id/Progressive-Deta...
Step 1: Why Self Make It?
There are various 3D Moon you can found on the web. You can directly buy some on the web or you can download and 3D print the others.
The finished products can break into 2 categories:
- Good Moon surface details but no glowing details when put a light inside, such as: https://www.thingiverse.com/thing:2344879
- Good glowing details but not a Moon surface when the light turned off, such as: https://www.thingiverse.com/thing:2531838
I would like to make a Moon that have both details at the same time.
And also self making can fully customize the parameters, such as the size, thickness, resolution, rotation, plane cut location, make a hole to put in light bulb...etc.
Step 2: Existing Cat1: Good Moon Surface Details
But no glowing details when put a light inside.
Step 3: Existing Cat2: Good Glowing Details
But not a Moon surface when the light turned off.
P.S. if you do not have a 3D printer, you can buy this type of Moon Lamp on the web.
Step 4: Software Preparation
Below are the list of software I am using, once you know the technique you can use your familiar tools to do the same thing.
3D Modeling tools
Download my modified version of Banate CAD from GitHub:
https://github.com/moononournation/BanateCAD
If your are not familiar with GitHub, simply click the green button at the right middle and select download ZIP.
Banate CAD is written in Lua, you also require Lua for Windows to run Lua scripts in Windows.
STL edit tools
Meshmixer: https://www.meshmixer.com/download.html
Step 5: Material Preparation
Filament
The above picture capture from one of the PLA filament supplier. Same 3D Model print with different brand White PLA may have different effect. The supplier claim B is the best, but its filament simply stuck my extrude :(
Light Source
There are various method light up the moon model, portable or wired, different size printout also affect select which light source. Since too many variation and out of the 3D print topic, I will not mention it more here. Only one suggestion, warm white light have better effect ;>
Matte Spray Paint
And also most PLA printout have some sort of reflection, it is better to make a matte surface finishing. It is easy to make with a matte spray paint (sometime it call flat spray paint).
Step 6: Moon Images
There are 2 Moon images required for 3D modeling. You can find the required image at BanteCAD/Examples folder. I have shrunk the image to 720x360, it is good enough for 3D modeling. If you insists perfect quality, you may find much larger image on the web.
Moon Bump Map
There are a special image map for modeling 3D surface, usually, it is called bump map. The grey level in each pixel represent the height of the corresponding point at the sphere. You can model a very good detailed surface once you have it's bump map. However, when you direct see the bump map image, it is not very like a moon in the sky.
Moon Visual Map
When you see the Moon in the sky, the details is not only based on it's height on each point. It also based on the material color. Yet we can direct 3D print different colors, fortunately Moon nearly look like in gray scale. We can use the shell thickness to adjust how much light goes out from the model, so that we can project a gray scale image on the 3D model. First of all, we need a Moon visual map to adjust the Model thickness.
Post Processing
- Moon Surface Map: it simply a bump map. But we need reserve some space for the internal thickness, so I use Level function to shift the value to right hand side (you will see the bump map image brighter).
- Moon Interior Map: it is the interior shape of the 3D model. This determined the thickness at each point, i.e. the light gray scale value. This map is come from visual map in addition with bump map variation value. (Or in another calculation method, it is bump map subtract inverted visual map.)
Adjustable parameters
- If you narrow the bump map level, the "hill" on the surface will be shorter, it can help reduce hanging but trade off the surface details.
- If you shift the visual map level more to the left hand side, the shell will be thicker and vice versa. But remember don't shift to the right too much. The shell should at least 0.4 mm thick (if you are using 0.4 mm Extruder Nozzle Head), or you will make a hole on the shell.
- The light gray scale range depends on visual map level range.
Step 7: Interior Shape
The interior shape represent the shell thickness, i.e. the grey scale level.
Step 8: Moon Shell Too Thin Introduce Hole
If the shell thickness thinner than your printer extrude size, it simply not print anything there and introduce some unexpected holes.
Step 9: 3D Modeling - BanateCAD
BanateCAD can modeling a 3D shape base on a bump map. I have prepared a script in examples folder. The script read the Moon surface and interior maps and modeling both shape.
Here are the steps for 3D Modeling with BanateCAD:
- Open BanateCAD.wlua
- In File menu, select Open
- Open moonlamp.lua in Examples folder
- Optional: edit parameters
- In Compile menu, select Compile and Render
- Wait a while until show up 3D model
- In File menu, select Export -> Export STL
- Input STL filename and then save
Adjustable parameters
Sphere output diameter (inches), bump and interior map build on it:
local outputSize = 3 -- inches
Surface height factor:
local heightFactor = 0.3 -- bump map height factor
Resolution (2 occurs), should not over the resolution of the PNG image:
USteps = 720, WSteps = 360,
Step 10: Building Shell - Meshmixer
Base on BanateCAD built shapes, we can use surface shape subtract interior shape to build the shell.
Here are the steps for building the shell with Meshmixer:
- Open the exported STL with Meshmixer
- Wait a while until finish loading
- Select both model in Object Browser
- Select Edit on the left toolbar and then select Boolean Difference
- Wait a while until finish calculation
- Select accept
- Wait a while until finish calculation
- Remain 1 model in Object Browser, this is the shell of the Moon
- Save the file for backup purpose
Step 11: Adjust & Output - Meshmixer
Now you can make any adjustment before 3D printing.
Here are some of my suggest:
- If you would like to put the Moon on your desk, I suggest rotate Z axis -45 to -60 degree so that the familiar Moon face can facing you seamlessly
- If you would like to hang the Moon on the ceiling, I suggest rotate Z axis 120 to 135 degree so that the familiar Moon face can facing you seamlessly
- If you would like install a light inside, remember make a hole for the wire (if your are not familiar with 3D software like me, just use a drill after print :P)
- Plane cut the moon at around 90% place, so that you can hide the seams easily but still easily to print without hanging
After the adjustment, export a STL file for printing.
Step 12: 3D Printing
Open with your 3D printer slicer, double check the shell have no holes and then print it.
If you want to print a perfect Moon, you can skip the previous plane cut step and enable support option. But in my opinion, it is a painful task to remove the support.
If you get stuck at previous step and failed to output the STL file you may find my one at thingiverse:
Step 13: Assembly
Stick upper part, light component and lower part together.
Step 14: Matte Surface Finishing
Most PLA printout have some sort of reflection, it is easy to reduce the reflection by a matte spray paint.
Step 15: Techniques & Parameters
I have tried many downloadable model in this 2 years;
And also I have tried many modelling techniques and parameters in this few months this instuctables shared the simplest method I can found.
If you have better techniques or parameters, welcome to share with us in comment area ;>
P.S. I am trying to print a bigger moon lamp with 110 mm diameter. (It is the biggest size I can print with Robo C2) Here is the parameters I would like to try: (It require tens of hours to print once :<)
local r = 52
local h = 3
Step 16: Happy Gifting!
It's time to show off what you have done or give one to your friends!
Update
This is the 1st generation of Moon Lamp, please also find next 2 generations here:
2nd generation: https://www.instructables.com/id/High-Detailed-Mo...
3rd generation: https://www.instructables.com/id/Progressive-Deta...
Step 17: Optional: Fill Shell Holes
If you want to keep the shell not too thick at the same time don't want thin shell introduce unexpected hole, this is a workaround:
- Open STL file generated from BanateCAD in Meshmixer
- remove the interior model
- Select Edit
- Select Hollow
- Fill 0.5 mm thickness (for 0.4 mm extrude)
- Update Hollow
- Accept, now you have a Moon surface with 0.5 mm thick shell
- Rotate and plane cut as same as the Moon shell settings
- Export STL
- Open the Moon shell STL in Microsoft 3d Builder
- Repair object if any
- Insert the Moon surface 0.5 mm thick shell STL
- Repair object if any
- Select all
- Merge, now you have a Moon shell with at least 0.5 mm thick shell
- Export STL
Step 18: Optional Readings: Original BanteCAD
William A Adams's BanteCAD does a great job on 3D modeling, it only have a little bug on modeling circular object. I just modified a few lines to fix it. Hope it does not introduce further bugs. :P
If you are interesting in BanteCAD, one of its old release have more 3D modeling examples, enjoy!