• Stars
    star
    169
  • Rank 224,453 (Top 5 %)
  • Language OpenSCAD
  • License
    Other
  • Created over 4 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

3D printable mini Shoji lamps

These are mini lampshades in the Shoji style that are fully 3D printable. They make use of some ancient joinery techniques to fit together like a puzzle and can be assembled with no glue or screws.

shoji3 shoji1 shoji2 shoji4

Equipment

I used a Prusa i3 MK3 for this project. You'll also want to make sure your firmware is up-to-date, and that you have the latest PrusaSlicer 2.2.0 which can insert color changes mid-print (required for the Shoji screens).

Filaments

These are the filaments I used, if you want to duplicate the look. I highly recommend you use PETG or ABS if you plan to use them outdoors. (PLA just all-around sucks, will disintegrate in the sunlight, and is a bad choice for outdoor projects. It may also not hold the joints together well.)

  • 3D Universe PETG, Medium Brown. I found this Medium Brown shade to look very much like wood when viewed from a distance and if the 3D print striations are aligned correctly and with some light sanding after printing to remove the glossy sheen.
  • White PETG for the back of the screens. Any white PETG will do. I have had very good results with eSun PETG in general.
  • Small amount of black PETG for the "birds" and "bamboo" screens.
  • Small amount of black and red PETG for the "sakura" screen.
  • Small amount of black, red, grey PETG for the "fuji" screen.

Printing the roof, bars, base, and lockpins

These are all straightforward parts to print and presented no problem on my Prusa i3 MK3. The bars are the only required part for the lamp to stay together. It will hold together without the roof (although it may not look as nice), and the base is completely optional. The lockpins attach the rest of the lamp to the base, so you don't need those if you aren't printing the base.

I highly suggest you set your fill angle to 0 degrees instead of 45 degrees, so that the topmost layer will print like wood grain (in PrusaSlicer: Print Settings -> Infill -> Advanced -> Fill angle). Make sure you rotate the print to the correct orientation.

fill angle direction

Printing the Shoji screens

verticallines grid grid2
traintrack circlemodern fuji
birds bamboo sakura

The Shoji screens require printing sequentially in multiple colors. You can do this with a single extruder setup and just change the color for different layer heights. Assuming you are using a layer height of 0.15mm, the white screen is just one single layer thick and the rest of the layers going up from there comprise the "wooden" structures (brown). Those that have drawings have them inserted at the 2nd-4th layers.

The trickiest part of printing the screens by far is making sure your bed level and Live Adjust Z is calibrated properly, since the white screen is only a single layer thick, so imperfections in your Z calibration will show. If you are using a Prusa, please use the 7x7 bed level correction mode present in more recent firmware as it works much better than 3x3.

For the color changes, use PrusaSlicer 2.2.0 or later which allows you to insert a M600 color change code in the sliced layer view. For the screens that have no drawings (i.e. no birds, bamboo, etc.), you only need white PETG (for the first layer) and one color change at the beginning of the second layer to brown PETG.

For the "birds" and "bamboo" screens you need 3 colors (first layer = white, second layer = black, third layer onwards = brown).

The "sakura" screen requires 4 colors (first layer = white, second layer = red or pink, third layer = black, fourth layer onwards = brown).

The "fuji" screen requires 5 colors (white, grey, red, black, brown in that order).

When changing the colors have some tweezers handy because the printer will often drip some filament just before it starts printing the first layer with the new color so be ready to catch that.

multicolor

panel-sakura-process

Assembly

The assembly of these lanterns uses puzzle joints and needs no glue or screws.

There are 3 types of bars: X, Y, and Z. Note that Y has a rounded section while X has a square section:

assembly0

Begin by placing the Z bars into the roof, allowing the angled sections to lock into the cutouts. Make sure that the slots for the Shoji screen are all facing inwards. Place two Y bars (the rounded ones!) as pictured. Although not required, you may want to orient them such that the worst-looking face of your Y bar faces outward at this point, since it will eventually be rotated to not face outwards.

assembly1

Now fit two X bars carefully over both the Y and Z bars, as pictured. Pay close attention to how it is in the picture. The X bar should be snap into place flush with the Z bar. Make sure it is pushed in as far as possible.

assembly2

Now rotate the Y bar to lock the structure into place, being careful not to break your 3D printed parts.

assembly3

Do the exact same for the bottom part of the lantern as well, and the structure should now be fairly rigid and ready to install the Shoji panels.

assembly4

The Shoji panels are best inserted from the back. They should snap into place into the grooves on the Z bars. As long as you printed these in PETG or ABS they should tolerate the slight amount of flexing necessary to snap them into place.

assembly5

Completed assembly.

assembly6

The base can help you permanently fix the lantern to another structure. It includes two countersunk holes which you can use with M4 countersunk screws or wood screws to attach the base to another structure. The 5x5 grid of small holes is to attach custom lighting apparatus (such as a Pixie) using M2.5 self-tapping plastic screws and an adapter that you have to design.

assembly7

After your base is setup with your lighting equipment and installed where you want it, set the rest of the lantern into the 4 holes for the feet, noting the direction of the triangular cutout.

assembly8

Insert the lock pins from the side and you're done.

assembly9

Lighting

You have multiple options for lighting. The simplest is to skip printing the base (it will hold together perfectly well without it) and just place the lamp over an electronic candle. (Don't use a real candle as your plastic is likely to melt, or worse, catch fire.) You can also make your own elaborate lighting setup -- the included base has a 5x5 grid of 10mm-spaced holes that you can use to screw in your PCB or other lighting design using M2.5 self-tapping plastic screws.

I used Adafruit Pixies which have an awkward PCB design but work extremely well for this lamp. Since my lamps are placed outdoors, I used silicone conformal coating and MR30 connectors (with a little extra E6000 to seal them) to wire together a string of the lamps that are powered from a power supply and microcontroller indoors.

pixie

More Repositories

1

rosshow

Visualize ROS topics inside a terminal with Unicode/ASCII art
Python
1,054
star
2

rosboard

ROS node that turns your robot into a web server to visualize ROS topics
JavaScript
899
star
3

android-wearcamera

Remotely control a phone camera with an Android Wear smartwatch
Java
170
star
4

bokeh-camera

C++
107
star
5

ros-semantic-segmentation

ROS package for semantic segmentation
Python
104
star
6

magicimport.py

Python
95
star
7

rospy2

Python
85
star
8

ros-imu-bno055

ROS1/ROS2 C++ driver for Bosch BNO055 IMU (I2C)
C++
81
star
9

mnist-clock

A clock that displays digits using randomly selected MNIST digits.
Python
81
star
10

android-wearface-matrix

"The Matrix" watch face for Android Wear
Java
76
star
11

scripts

personal scripts to make life easier
Python
70
star
12

fooplot

LGPL JavaScript embeddable graphing calculator with Google maps style panning and other features.
JavaScript
61
star
13

ros-pwm-pca9685

ROS package for PCA9685 16-channel PWM driver, used in motor and LED applications
C++
47
star
14

python-termgraphics

Library to draw Unicode braille art in a terminal
Python
39
star
15

android-wearmaps

Pannable maps for Android Wear
Java
36
star
16

android-attopedia

A smartwatch-friendly interface for Wikipedia
Java
32
star
17

android-sesame

Door opener
Java
30
star
18

shadow-clock

a wall clock
OpenSCAD
29
star
19

python-fordreader

Python library to read steering wheel angles and more from a Ford car over OBD
Python
27
star
20

robot-luxo

JavaScript
27
star
21

aqi-monitor

Python
26
star
22

robot-botparty

CSS
23
star
23

big-yellow-proxxon-mf70-conversion

Proxxon MF70 mini-mill CNC conversion with 3D printed parts including y- and z-axis extensions
OpenSCAD
21
star
24

iceland-thermal

Python
19
star
25

roscpp2

C++
15
star
26

android-googlepinyin-dvorak

Dvorak version of Google Pinyin for Android
Smali
15
star
27

ros2-wifi-geolocation

Python
10
star
28

roslite.js

JavaScript
8
star
29

ros-power-ina219

ROS node for Texas Instruments INA219 current/power monitor
C++
8
star
30

first-photon-imaging

first photon imaging
MATLAB
7
star
31

ros-ford-can

ROS node for Ford vehicles to read steering wheel angle, speed, and much more over CAN
Python
6
star
32

robot-europa

ADAS system based on Jetson Xavier
C++
6
star
33

web-dheeranet

Personal website
HTML
6
star
34

python-belleds

Python implementation of the Belleds API
Python
5
star
35

phd-thesis

phd-thesis
TeX
4
star
36

ros-motor-pololu-qik

ROS package for Pololu Qik motor controllers
C++
3
star
37

ros-motor-romeo-quad

ROS driver for Romeo BLE Quad
C++
3
star
38

ros2-home-assistant

Python
2
star
39

web-sustainabilitysummit

MIT Sustainability Summit website
Python
2
star
40

photo-hacks

cameras + motors + arduinos
Arduino
2
star
41

ros-motor-roboteq-modbus

C++
2
star
42

ros-system-stats

ROS package providing simple system statistics e.g. CPU, GPU usage
Python
2
star
43

clip2type

C++
1
star
44

watchdog

C++
1
star
45

hydraharp-tools

GNU C file reader for PicoQuant Hydraharp binary files (for Time-Correlated Single Photon Counting)
C
1
star
46

lists-of-things

1
star
47

ros-pynodelet

Python
1
star
48

ros-lidar-avoidance

C++
1
star
49

iot-arduino

C++
1
star
50

install-scripts

Because everything is so complicated to install these days.
Shell
1
star
51

dheera.github.io

JavaScript
1
star
52

ros-imu-bno055-arduino

C++
1
star