Introduction: 3D Printed Modular Table Lamp With Fusion 360 and Ikea!

About: Just a dude who is into DIY anything :) I do a lot of 3d printing with stained woodfill.

How much does a nicer, contemporary table lamp cost? $50-150US, but I was fairly sure I could design and print something equally as nice even with my zero experience with 3D modeling and at a much lower cost. So I set out to do the research and work to make it happen. I'm now sharing this with you so you can make your own or expand on my design.

This Instructable will walk you through the printing, finishing and assembly of a table lamp with a wood-like grain. You'll learn how to print, sand and stain woodfill filament. Provided are Fusion 360 and STL files if you'd like to make modifications. I've also included my settings for printing. As a bonus, additional lamp neck and shade files are provided if you want to change it up!

My background going into this:

  • 1 year of hobbyist 3D printing, mostly with woodfill
  • A bit of experience with wood finishing
  • Zero experience with 3D modeling
  • I've never written an Instructable


  • Use woodfill
  • Scandinavian wood lamp styling
  • Use Ikea parts for the electronics as Ikea has the same dimensions globally
  • A modular design
  • Full-sized table lamp. Final size is 22"/55cm tall with the smaller shade

After a bit of research into lamp design and watching a handful of videos on Fusion 360, I was ready to go! I'd like to give credit to these channels for Fusion 360 for absolute newcomers:

  • Lars Christensen
  • Paul McWhorter

Skim through this Instructable first but do not be intimidated! Note that most images have annotations as well. Sanding PLA is quick and easy, woodfill is not difficult to print and can be easily patched with wood putty. We are sanding and staining this as well to hide any printing flaws. You can definitely make a very nice and functional piece that you will be proud to put in your living room.


    • PLA Woodfill filament, 500g. You can't go wrong with Hatchbox, but I use MG Chemicals all the time too with similar results. Feel free to use whatever you like, but if this is your first attempt at woodfil filaments, just spring for the Hatchbox
    • An Ikea Holmo floor lamp ($13 US). Protip: you might want to grab two for a pair of lamps :)
    • White filament that you like, 250g or if you don't want to print the lampshade, a lampshade from Ikea close to 10"/25cm.The one pictured is an Ikea Jara lampshade. $6 US
    • .5 or bigger nozzle for the woodfill, otherwise you risk clogs on long or hot prints. I'd recommend a .6 or .8 if you have to buy something and this will speed up print times by using large layer sizes.
    • Various grit wet/dry sandpapers- 120 to 1200+ grit
    • A cherry or darker wood stain. If you want my look or this is your first time staining, get Varathane Traditional Cherry gel stain. You'll only use maybe 1/4 of a pint, if that
    • A very dark wood stain. I used Varathane Kona. You won't need much
    • A 3D printer that can print a 300mm cubed volume. Fusion files are included if you need to print smaller or split the print into multiple parts.

    Nice to have:

    • Mouse sander + safety glasses
    • Rotary tool + safety glasses
    • Printable 90 degree sanding tool - .stl included in this step
    • Wood putty to fill in any holes in your prints

    But don't worry, sanding PLA is not time-consuming and you do not need power tools for this.

    Step 1: Print the Lamp Neck and Top

    Included are three files for the top portion of this lamp. Use the woodfill and print two of either "LampNeck1" or "LampNeck2" and one of "LampTop". Neck1 is tall and narrow, Neck2 is shorter and squatter. Print settings are straightforward:

    • Three shells
    • 185 nozzle- woodfill likes cooler
    • 50 degree bed
    • 20-25% infill for a nice, flat top surface that reduces our sanding time
    • .3 - .4 layer height. We are going to sand this anyway, so big layers are fine
    • Three top and bottom layers
    • The LampTop has just a bit of support that is needed for the rim but woodfill is extra easy to remove so no worries there. I used 50% support, zig-zag pattern
    • 40mm/sec and increase jerk to 25 for sharper corners
    • You will need extra retraction for woodfill, but since we are sanding anyway, this doesn't matter as much. This depends on your hardware as well. I add 2-3mm of retraction on a bowden setup on my stock cr-10.

    This was about a 4 hour print for me. Once this is done check your part and now would be the time to fill in any gaps with wood putty if needed.

    Protip: If you aren't confident in your retraction settings, print these parts individually for better results!

    Step 2: Let's Get Fancy- Adding Wood Grain

    Generate G-Code:

    Load up LampBody.stl in your favorite slicer and save out the gcode. This is an easy print and no supports are needed. My settings:

    • 4 shells for .6 or bigger nozzle, 5 shells for .5. The lamp body has walls that are 2.4mm thick
    • .4 layer height. Use .3 if you are using a .5 nozzle
    • 185 nozzle temp (this is going to get changed anyway)
    • 50 degree bed
    • 50 mm/sec print speed
    • 100% infill
    • 6-8 bottom layers
    • Retraction settings as before, but this print shouldn't have too much retraction

    Make the G-Code woody:

    If you don't have a working installation of Python on your computer, you will need this now. Go here and follow their instructions for an installer for your OS:

    Next, go here and download the gcode post-processor:

    If you've never used GitHub before, click the "Clone or Download" green button and then click "Download Zip".

    Expand the archive and then we'll need the gcode_postprocessors > wood > Python script for the wood texture magic.

    You now will want to run your gcode through this post-processor to adjust temperature at each layer. What this will do is ever so slightly change the color of the woodfill filament but more than that it will change the texture of the filament and also the extrusion width. Once we go to sand and stain the print, these changes will really pop.

    Open a python command prompt that is included with the python installer. Navigate to wherever you expanded or saved the script. Run "python" to see the help output:

    Usage: -f gcodeFile (-i minTemp) (-a maxTemp) (-t startTemp) (-g grainSize) (-u deltaTemp) (-r randomSeed) (-s spikinessFactor) (-z zOffset)

    For my look, these are the settings I used and what I recommend. Cooler temps will be greyer and smoother while higher temps will extrude with with a rougher texture and thicker.

    • Min temp: 185
    • Max temp: 230
    • Grain size: 4.8

    So the command to modify your gcode file should look like (you don't need all the parameters):

    python -f <path to your gcode file> -i 185 -a 230 -g 4.8

    Once you run this script, the g-code will be edited in place and the temperature will be altered at each layer. Open the gcode in your favorite text editor to verify the edit and to see the temperature curve that is shown as text at the end of the file. Note this graph starts at the first layer.

    ;WoodGraph: Wood temperature graph (from 185.0C to 230.0C, grain size 4.8mm, z-offset 0, scanForZHop 5):<br>;WoodGraph: Z 0.200000 @190C | #..................
    ;WoodGraph: Z 0.600000 @202C | #####..............
    ;WoodGraph: Z 1.000000 @215C | ##########.........
    ;WoodGraph: Z 1.400000 @228C | ###############....
    ;WoodGraph: Z 1.800000 @185C | ...................
    ;WoodGraph: Z 2.200000 @193C | ##.................
    ;WoodGraph: Z 2.600000 @196C | ####...............
    ;WoodGraph: Z 3.000000 @196C | ###................
    ;WoodGraph: Z 3.400000 @192C | ##.................
    ;WoodGraph: Z 3.800000 @187C | ...................

    Next, send this gcode to your printer and let the print finish. This is a longer print, 12+ hours for me.

    Now is a perfect time to move on to the next step and start sanding the lamp top.

    Step 3: Let's Get to Work! Sanding and Staining the Neck and Top

    Sanding PLA is easy and quick. This step is straightforward and shouldn't take more than an hour for a very nice result. You can clearly see where you need to sand- unsanded woodfill has a beige color and sanded will be much lighter.

    First, sand all of the vertical surfaces of your neck pieces. Lay down some sandpaper on a table and hold it flat. Use medium pressure on the piece to be sanded. Start with the center area side where the two neck pieces touch. Start with 180 grit and sand until they can touch without much of a gap. Move up in grits to 400 grit to make it smooth.

    Next sand the other three vertical surfaces. Your corners will have a slight bump that will make them not fit perfectly into the lid piece. Check their fit into the lid after removing any blobs or strings in the lid. Again, make your way from 180 grit to 400 until the fit is very good. You want it to fit snugly but not to press out on the neck part creating a gap. We're going to stain this with a very dark color anyway to hide seams too.

    Protip: Mark your pieces Left and Right with a specific orientation when checking the fit and sanding for an extra seamless look!

    Once you are satisfied with the neck fit, it's time to sand out the center hole for the lamp wiring. Grab the one piece you need from the Ikea Homlo and put it in the center. Chances are you will need to remove 1-2mm from the inside semi-circle on each side. Go ahead and use 180 grit until the neck pieces can come together snugly on the Homlo lamp. Something round like a dowel is helpful, but your fingers should do just fine too. This allows you to adjust the height of the final lamp.

    Next, sand the lid and exterior of the neck. Keep the parts together and in their orientation for a seamless look. Again, start with 180 grit and work your way up to 400. This is where a rotary tool can come in handy but be aware- this material is soft and will gouge easily! If you're not experienced with a rotary tool and PLA, just do it by hand. This is also where the printable 90-degree sanding block comes in handy. Feel free to use whatever tools you like to sand. Be careful of the vertical portion of the thinner outer lip that you dont tear away a layer.

    Next, switch to wet sanding. PLA can come out very smooth with wet sanding. Wet sand with 600 and work your way up to 1200 grit. I like to use a paper towel to remove debris periodically. Remember to let the sandpaper do the work and only use a lighter pressure. Wet sanded PLA should feel smooth and hard and will be a bit shiny as well.

    Once you are satisfied with the sanding, it's time to stain! A small brush works well here. Take the pieces apart, clean any dust off with a damp paper towel, open your extra dark stain and do a light coat all over the exterior.

    Let this dry until tacky at least and then apply another coat. You're done with the bulk of the sanding now! Congrats!

    Step 4: The Extra Pretty Stuff- Sanding and Staining the Lamp Body

    Ok, before you panic, sanding the lamp body is MUCH quicker. If your print has any gaps or blobs, fill in the gap with wood putty and try to cut off or pick off the blobs.

    Sanding this is just a coarse sanding to allow the wood stain to absorb more into certain areas. This will make the texture really pop and look great.

    Protip: Do this step in bright light or outdoors to really see where you need to sand to make it all even.

    Get a sanding block or a mouse sander and use 180 grit and go over the exterior lightly. Rotate this in the light to see that each side has the same amount of sanding. What you want to do here is just rough up the portions of the texture that are slightly over extruded from higher heat. These portions will absorb the wood stain more adding to the texture.

    Sand each side of the lamp body until each side looks even with the other sides. I like to use a brush to clean off the dust after each grit. Again, we are not sanding this smooth, just hitting the thicker extrusion with some sanding. This is where good lighting helps. Work your way up to 400 grit and then stop. Clean off your piece with a damp paper towel to make sure all the dust is gone and then let it dry which will only take two minutes.

    Open your stain and apply a thin coat to the exterior. A brush, a sponge brush or a piece of terrycloth towel all works well here. This will be only the thin initial coat. Make sure it looks even and if you are using gel stain, you will have less time to rework an area before it gets tacky. The next coat is what really makes the difference so don't worry if this coat is not perfect.

    Let this dry, 6+ hours is recommended. Next, apply your final coat using the same tools. This will take the piece from a dull cherry to a much deeper and even look.

    Now pat yourself on the back and grab your favorite drink to admire your work. After that, move on to the next step which is optional, printing the lampshade.

    Step 5: The Trials of the Lampshade Print

    This step is only for the adventurous and brave DIY-er. Up for a challenge? Cool, because printing tall, two-walled prints is not the easiest thing. Any imperfections in a lampshade will be highlighted by light shining through as well. If not, just get a lampshade you like from Ikea. Any lampshade around 10"/25cm is fine. Included are two designs as both .stl and Fusion 360 files. The round "Shade1.stl" is an easier print than the square Shade2.

    Protip: Failing at 3D printing builds character and patience!

    Now if you are an experienced 3D printer (not me) with well-tuned equipment and an enclosure (nope, have neither of those), this step will be easy. If you are like myself and have neither, here are my tips for pulling this off. I spent countless hours tweaking settings and letting prints run and these are the settings that worked best. For reference, I have a CR-10s, no fancy mods or enclosure.

    • Make sure you have great adhesion and a nearly perfect level across your bed
    • No fans or drafts in the room (an enclosure is even better)
    • Bed: 50 degrees
    • Temp: 195 (I used Hatchbox white)
    • Speed: 40mm/sec
    • Layers: .3
    • Cooling: 50%
    • Extrusion: 103%
    • In Cura, under experimental, set the resolution up to max: 0.001
    • Supports:15%, zig-zag
    • Two Shells
    • 100% infill

    Load "Shade.stl", start the print and watch it. Make sure you have good adhesion everywhere and that the outer perimeter lines for the shade are the same thickness. If you don't, adjust your bed level until it all sticks and is even. Got this far? Awesome. Let it go for another three hours and then check it. If after three hours or so of print time, you aren't seeing any deviations in the vertical thin walls, you are probably good. The total print time here is around ten hours for myself. Once this is done, carefully remove the support material. Use snips and go slowly. A proper lampshade should come down to cover up the bulb housing, hence the need for supports in the design.

    Step 6: Assembly

    Now that we have all the pieces, it's time to put it all together.

    Thread the Holmo lamp wiring up through the bottom of the lamp body. Thread the lamp socket through the hole in the lid and then press the neck pieces around the lamp neck. Press the lamp neck pieces into the lid and press down on the lamp body. Awesome!

    Next feed some of the lamp cord into the body of the lamp until the switch is a length you'd like. The lamp cord just pressure fits into a cutout into the lamp bottom. Easy!

    Next, remove the ring from the Holmo socket and put on the lampshade. Screw the ring back on and you are done! Congrats, you made a beautiful table lamp!

    Step 7: Making It Yours!

    Part of my motivation of this project is simply to give folks a starting point. This is a modular setup with two different neck styles included. Now that you see my technique for using inexpensive Ikea parts and finishing woodfill, I hope you use it as an inspiration to make your own designs with the included Fusion files. Nice table lamps are super expensive and I wanted to share my experience so you too can have nice furnishings for your home or as a gift. Ikea is a great source of parts as well. Many nods to both Autodesk and Ikea for their innovations and generosity with inexpensive products for us consumers.

    As a total noob to 3D modeling, I found Fusion 360 fairly easy to learn. Parametric modeling for functional prints rocks- you can go back and edit steps or edit parameters. See my images for the small number of steps required to build out these shapes. (Steps are the small icons on the bottom next to the "Play" buttons if you aren't familiar with Fusion 360)

    Woodfill is not hard to use and neither is Fusion 360. Putting those two skills together you can make beautiful items for the home beyond lamps. I hope you will do this project or at least take away some good knowledge from the write-up and share your designs for the home with the Instructables community. Bonus points from me if you publish Scandinavian style table lamps. Happy printing!

    Indoor Lighting Contest

    Participated in the
    Indoor Lighting Contest