- Authors
- Name

はじめに
3Dプリンターはアイデアを物理的なオブジェクトに変えるツールです。Arduinoケース、ドローン部品、キーキャップ、フィギュア——想像したものを作ることができます。この記事ではモデリングから出力まで全工程を整理します。
3Dプリンターの種類
FDM vs SLA vs SLS
| 項目 | FDM | SLA(レジン) | SLS |
|---|---|---|---|
| 原理 | フィラメントを溶かして積層 | UVでレジンを硬化 | レーザーで粉末を焼結 |
| 解像度 | 100〜400μm | 25〜100μm | 80〜120μm |
| 材料 | PLA、PETG、ABS、TPU | UVレジン | ナイロン、PA12 |
| 価格(入門) | 2〜5万円 | 3〜6万円 | 50万円以上 |
| 後処理 | サポート除去、ヤスリ | 洗浄+後硬化が必須 | 粉末除去 |
| 用途 | ケース、部品、試作品 | フィギュア、ジュエリー、歯科 | 産業部品、少量生産 |
| おすすめ機種 | Bambu Lab A1 mini | Elegoo Saturn 4 | -(産業用) |
FDMフィラメント比較
| フィラメント | 温度 | ベッド | 強度 | 特徴 |
|---|---|---|---|---|
| PLA | 190〜220°C | 60°C | 中程度 | 最も簡単、環境に優しい、臭い少ない |
| PETG | 220〜250°C | 80°C | 高い | 耐薬品性、透明可能、実用的 |
| ABS | 230〜260°C | 100°C | 高い | 耐熱性、収縮大、換気必須 |
| TPU | 210〜230°C | 50°C | 柔軟 | ゴムのように柔軟、スマホケース |
| ASA | 240〜260°C | 100°C | 高い | 紫外線耐性、屋外使用 |
Part 1:Fusion 360モデリング
基本ワークフロー
1. Sketch(2D図面)
├── Rectangle、Circle、Line
├── Dimension(寸法拘束)
└── Constraint(水平、垂直、対称)
2. 3D変換
├── Extrude(押し出し):2Dに3D高さを付与
├── Revolve(回転):2Dを軸中心に回転
├── Loft(ロフト):2つのプロファイル間を接続
└── Sweep(スイープ):パスに沿ってプロファイルを移動
3. 修正
├── Fillet(フィレット):角を丸める
├── Chamfer(面取り):角を削る
├── Shell(シェル):中を空にする
├── Mirror(ミラー):反対側に複製
└── Pattern(パターン):円形/直線の繰り返し
4. エクスポート
└── STLまたは3MF(スライサー用)
Arduinoケース作成例
Fusion 360の手順:
1. 新規スケッチ(XY平面)
2. Rectangle:70mm × 55mm(Arduino Unoサイズ+余裕)
3. Extrude:25mm高さ
4. Shell:壁厚2mm(上面開放)
5. スケッチ(内壁):USBポート穴(12mm × 11mm)
6. Extrude Cut:USB穴を貫通
7. スケッチ(底面):マウント穴4つ(M3、φ3.2mm)
8. Extrude Cut:穴を貫通
9. Fillet:外部エッジ3mm
10. フタ:新規Body → スケッチ72mm × 57mm → Extrude 2mm
→ 内部突起1.5mm(はめ込み式)
11. Export → STL(High Resolution)
3Dプリント設計ルール
設計ルール(FDM基準):
├── 最小壁厚:1.2mm(ノズル0.4mm × 3ライン)
├── 最小穴径:2mm
├── はめ込み公差:+0.2〜0.3mm(きつめ:+0.1mm)
├── ネジ穴:-0.2mm(M3 = φ2.8mmでモデリング)
├── オーバーハング:45°以下(サポート不要)
├── ブリッジ:最大50mm(サポート不要)
├── 最小ディテール:0.4mm(ノズル径)
├── テキスト突出:最小0.6mm
├── スナップフィット:フック1mm+ギャップ0.3mm
└── 45°ルール:45°以上の傾き → サポートが必要
Part 2:OpenSCAD(コードで3Dモデリング)
// 開発者に最適!コードで3Dモデルを生成
// Arduinoケース(パラメトリック)
board_w = 68.6; // Arduino Unoサイズ
board_h = 53.3;
board_d = 15; // 部品高さ
wall = 2; // 壁厚
clearance = 0.5; // はめ込み公差
// 本体
difference() {
// 外部ボックス
rounded_box(
board_w + wall*2 + clearance*2,
board_h + wall*2 + clearance*2,
board_d + wall,
r = 3
);
// 内部空間
translate([wall, wall, wall])
cube([board_w + clearance*2, board_h + clearance*2, board_d + 1]);
// USBポート穴
translate([-1, wall + 10, wall + 3])
cube([wall + 2, 12, 11]);
// 電源ジャック穴
translate([-1, wall + 30, wall + 2])
cube([wall + 2, 10, 12]);
}
// M3マウント穴
mount_positions = [[14, 2.5], [15.3, 50.7], [66.1, 7.6], [66.1, 35.6]];
for (pos = mount_positions) {
translate([pos[0] + wall + clearance, pos[1] + wall + clearance, 0])
cylinder(d = 3.2, h = wall, $fn = 20);
}
// モジュール:丸角ボックス
module rounded_box(w, h, d, r) {
hull() {
for (x = [r, w-r], y = [r, h-r])
translate([x, y, 0]) cylinder(r = r, h = d, $fn = 30);
}
}
// CLIでSTL生成:
// openscad -o case.stl case.scad
OpenSCADコア文法:
├── cube([x,y,z]) — 直方体
├── cylinder(d, h) — 円柱
├── sphere(r) — 球
├── translate([x,y,z]) — 移動
├── rotate([x,y,z]) — 回転
├── scale([x,y,z]) — スケール
├── difference() — A - B(引き算)
├── union() — A + B(合体)
├── intersection() — A ∩ B(交差)
├── hull() — 凸包
├── linear_extrude(h) — 2D → 3D押し出し
└── rotate_extrude() — 2D → 3D回転
Part 3:スライサー設定
主要パラメータ
Cura / PrusaSlicer 共通設定:
レイヤー高さ:
├── 0.12mm:高品質(遅い、フィギュア用)
├── 0.20mm:標準(一般部品)
├── 0.28mm:超高速(試作品、テスト)
└── ルール:ノズル径の25〜75%(0.4mmノズル → 0.1〜0.3mm)
壁/上下厚:
├── 壁ライン数:3〜4(1.2〜1.6mm)
├── 上/下レイヤー:4〜5(0.8〜1.0mm)
└── 強度が必要なら壁を増やす
インフィル(充填):
├── 10〜15%:装飾用(弱い)
├── 20〜30%:一般部品(標準)
├── 40〜60%:機械部品(強い)
├── 100%:ソリッド(最強、遅い)
└── パターン:Grid(標準)、Gyroid(強度/柔軟性)、Lightning(高速)
サポート:
├── オーバーハング角度:45°(デフォルト)
├── サポート密度:10〜15%(デフォルト)
├── サポートZ距離:0.2mm(除去しやすい)
└── ツリーサポート:複雑なモデルにおすすめ
速度:
├── 外壁:30〜50mm/s(品質)
├── 内壁:60〜80mm/s
├── インフィル:80〜150mm/s(速度)
├── 移動:150〜250mm/s
└── Bambu Lab:300mm/s以上(加速度20000mm/s²)
温度:
├── PLA:ノズル200°C、ベッド60°C
├── PETG:ノズル235°C、ベッド80°C
├── ABS:ノズル245°C、ベッド100°C(エンクロージャー必須!)
└── 最初のレイヤー:+5°C、速度50%(定着力)
G-codeの基礎
; 3Dプリンターの命令 = G-code
G28 ; ホームポジション(原点)
G29 ; オートレベリング
M104 S200 ; ノズル温度200°C設定
M140 S60 ; ベッド温度60°C設定
M109 S200 ; ノズル温度到達まで待機
M190 S60 ; ベッド温度到達まで待機
G1 X50 Y50 F3000 ; X50 Y50に移動(3000mm/min)
G1 Z0.2 F300 ; Z 0.2mm(最初のレイヤー高さ)
G1 X100 E10 F1500 ; X100に移動しながら10mm押し出し
G1 Y100 E20 ; Y100に移動しながら追加押し出し
M106 S128 ; ファン50%(0〜255)
M84 ; モーター無効化
M104 S0 ; ノズルヒーターオフ
トラブルシューティング
問題 → 原因 → 解決:
最初のレイヤーが定着しない:
→ ベッドレベリング / ノズルが高すぎる
→ Zオフセットを下げる、ベッド温度を上げる、接着剤を使用
糸引き(Stringing):
→ リトラクション不足
→ リトラクション距離6mm以上、速度40mm/s以上、温度を下げる
レイヤー剥離(分離):
→ レイヤー接着不良
→ 温度を上げる、ファン速度を下げる、エンクロージャーを使用
エレファントフット:
→ 最初のレイヤーの押し付けすぎ
→ Zオフセットを上げる、最初のレイヤーフロー90%
詰まり(Clogging):
→ ヒートクリープ / 不純物
→ コールドプル、ノズル交換、PTFEチューブ点検
クイズ — 3Dプリンターモデリング(クリックして確認!)
Q1. FDMとSLAの主な違いは? ||FDM:フィラメントを溶かして積層(100〜400μm)、低価格、大型出力可能。SLA:UVでレジンを硬化(25〜100μm)、高解像度、フィギュア・歯科用。FDMは機能部品、SLAは精密モデル向き||
Q2. レイヤー高さ0.12mmと0.28mmのトレードオフは? ||0.12mm:高品質、レイヤーラインが見えない、出力時間2.3倍。0.28mm:高速、レイヤーラインが見える、強度はほぼ同等。ノズル径(0.4mm)の25〜75%の範囲||
Q3. オーバーハング45°ルールとは? ||45°以上傾いた面は下の支えなく空中に出力されるため垂れが発生。45°以下なら前のレイヤーが十分に支持。45°超過時はサポートが必要||
Q4. OpenSCADのdifference、union、intersectionの違いは? ||difference:AからBを引く(穴)。union:AとBを合体。intersection:AとBの交差部分のみ残す。CSG(Constructive Solid Geometry)方式||
Q5. インフィルパターンでGyroidが優れている理由は? ||全方向に均一な強度、柔軟性、レジン・水の排出可能(非ソリッド)。Gridに比べて等方性強度が優れ、印刷中の振動も少ない||