FreeCAD × 部品設計 | #05 アセンブリ入門

#2-1でシャシー、#2-2でモーターブラケットを作り、#2-3と#2-4で強度も確かめました。部品はそろってきたのに、よく考えるとロボットの姿をまだ一度も見ていません。今回は設計した部品を画面の上で組み立てます。そして組んでみると、実物の工作と同じ「事件」が起きます——部品の高さが合わない。それを印刷する前に見つけて直すところまでが、今回の本題です。

今回組む部品

  • シャシー(#2-1で設計した90×100mmの板)
  • モーターブラケット 右・左(#2-2章末課題の完成形。左は右の鏡像)
  • TTモーター ×2(購入部品。採寸して作った簡易モデル)
  • ボールキャスター(購入部品。タミヤの70144という定番品・2個入りで400円ほど。これも採寸モデル)
  • キャスターマウント(キャスターをシャシーに取り付ける下駄。今回の本文中で設計します
今回組む5種類の部品。ホイールだけは、次回 #06 で自分で設計する
今回組む5種類の部品。ホイールだけは、次回 #06 で自分で設計する

ひとつ注意。ホイールはまだありません。ホイールは次回#06で「はめあい」を学びながら自分で設計するので、今回はモーターの軸がむき出しのまま組みます。

部品ファイル一式はここからダウンロードできます:p2_05_parts.zip(FCStd 5ファイル)。#2-1・#2-2を自分で作った人は、ぜひ自分のファイルで進めてください。

コラム:買った部品まで全部モデリングするの?

モーターやキャスターは買う部品なので、設計する必要はありません。でも組立の検討には形が要ります。そこで使うのがダミーモデル(モックアップ)です。ネジ1本までは再現せず、外形と取付穴——つまり他の部品と関係する部分だけを正確に作った簡易モデルのことです。

今回のTTモーターのダミーは、ギアボックスが37.6×18.8×22.5mmの箱、モーター缶が円筒、車軸がØ5.4の円筒、それにM3取付穴2つ。これだけでも組立検討には十分役に立ちます。ただし「外形は正直に作る」のが鉄則です。手を抜くと何が起きるかは、後半の干渉チェックでお見せします。

Assemblyワークベンチ

ワークベンチを「Assembly」に切り替えると、タスクパネルに「New Assembly」が出る
ワークベンチを「Assembly」に切り替えると、タスクパネルに「New Assembly」が出る

部品の組立には専用のワークベンチを使います。ワークベンチ切替メニューからAssemblyを選んでください。FreeCAD 1.x なら標準で入っています(昔のFreeCADはアドオン頼みだったところで、1.0からの大きな進化ポイントです)。

最初にやることが2つあります。①組み立てる部品のファイルをすべて開いておく(あとで使う挿入パネルには「いま開いているドキュメント」の部品しか並びません)。②新しいドキュメントを作って保存し、タスクパネルのNew Assemblyを押す。ツリーに「Assembly」と、その中に「Joints」という入れ物ができます。

部品を呼び込む

Assembly メニュー →「挿入」。検索欄つきの部品一覧が出る
Assembly メニュー →「挿入」。検索欄つきの部品一覧が出る

Assemblyメニューから「コンポーネントを挿入」を選ぶと、開いている部品の一覧が出ます。部品名をクリックすると3Dビューに置かれます。まずはシャシーから。

「最初に挿入した部品を自動的に接地しますか?」英語だが慌てない
「最初に挿入した部品を自動的に接地しますか?」英語だが慌てない

最初の部品を入れた瞬間、英語のダイアログが出ます。ここでつまずく人が多いので訳しておくと、「最初に挿入した部品を自動的に接地(ground)しますか? アセンブリには少なくとも1つ接地された部品が必要です」。組立の基準になる部品は、動かないように固定しておくのが定石です。実物の組立でも、最初の部品は作業台に置いて(押さえて)から次を付けますよね。あれと同じです。Yesを押してください。

シャシーが接地された。赤い錠前マークが「固定済み」の目印
シャシーが接地された。赤い錠前マークが「固定済み」の目印

シャシーに赤い錠前マークが付きました。これが「接地済み=動かない基準」の印です。続けて残りの部品——ブラケット右・左、モーター2つ、キャスター、マウント——も同じように挿入します。

7部品が出そろった。配置はバラバラでかまわない
7部品が出そろった。配置はバラバラでかまわない

置き場所はバラバラでかまいません。手で几帳面に並べる必要はないのです。なぜか——位置合わせはこれからジョイントがやってくれるからです。

ジョイント=「組み付け関係」を教える

位置を手で合わせるのではなく、穴と穴の「関係」を教える
位置を手で合わせるのではなく、穴と穴の「関係」を教える

アセンブリの発想は、部品の位置を手で合わせることではありません。「この部品のこの穴と、あの部品のあの穴が、同じボルトで留まる」という関係を教えることです。関係さえ教えれば、部品をどこに置くべきかはFreeCADが計算してくれます。この「関係」のことをジョイントと呼びます。実物の組立でボルトを通す行為そのものを、画面の中で再現していると思ってください。

最初のジョイント:ブラケットをシャシーに

右ブラケットから付けます。実物ならフランジの穴とシャシーの穴を合わせてM3ボルトを通すところ。それをそのままジョイントにします。

  • シャシーのねじ穴の内面(円筒面)をクリックして選ぶ
  • Ctrlを押しながら、ブラケットのフランジ穴の内面も選ぶ
  • Assemblyメニュー →「固定ジョイントを作成」
固定ジョイントのパネル。参照に選んだ2つの面が入っている。OKで確定
固定ジョイントのパネル。参照に選んだ2つの面が入っている。OKで確定

パネルが開き、参照の欄に選んだ2つの面が入っています。種類はFixed(固定)のまま。ねじ止めで完全に固定される箇所は全部これでいきます(回転やスライダーなど「動く」ジョイントは、#2-7の歯車と#2-8のリンク機構でたっぷり使います)。OKを押すと——

ブラケットが瞬間移動してシャシーの穴に組み付いた
ブラケットが瞬間移動してシャシーの穴に組み付いた

ブラケットが瞬間移動して、シャシーの裏面に組み付きました。穴と穴の軸がぴたりと一致しています。はじめて見ると、ちょっと感動する瞬間です。

向きがおかしいときの直し方

穴の軸を合わせても残る3つ=回転・オフセット・反転。ジョイント編集で人間が指定する
穴の軸を合わせても残る3つ=回転・オフセット・反転。ジョイント編集で人間が指定する

ただし、一発で理想の姿勢になるとは限りません。穴の軸を合わせただけでは、軸まわりの回転差し込みの深さ裏表の3つはまだ決まらないからです(ボルト1本で留めた部品がくるくる回せるのと同じ理屈です)。ここは人間が指定します。ツリーのJointsの中にできたジョイントをダブルクリックすると、さっきのパネルが再び開くので:

  • 回転:部品が90°や180°ずれた向きなら、ここに角度を入れる
  • オフセット:穴の軸方向に部品をずらす(板厚のぶんめり込んでいるときなど)
  • 反転ボタン(⇄):部品の裏表をひっくり返す

今回の組では、右ブラケットは回転180°・オフセット3mmで正しい姿勢になりました。この数値は「どの面とどの面を選んだか」で変わるので、丸暗記しないでください。3Dビューを回して眺めながら合わせるのがコツです。

残りの部品を組む

あとは同じ作業の繰り返しです。左ブラケットも同様にシャシーへ。モーターはブラケット縦板の取付穴 × モーターの取付穴でジョイントを作り、オフセットで差し込み深さを合わせます。

ひとつだけ鬼門があります。左のモーターです。右と同じ手順で付けると、ギアボックスが車体の外側に張り出した変な姿になります。左ブラケットが右の鏡像だからで、モーターを裏返して付けないと辻褄が合いません。こういうときが反転ボタン(⇄)の出番です。反転すると上下の取付穴が入れ替わるので、狙った高さと違う場所に付いたら、ジョイントで選ぶ穴をもう片方に変えてみてください(このあたり、実物のモーターを左右に付け替えるときも同じことを考えますよね)。

左ブラケットは右の鏡像。左モーターは反転(⇄)して付けると缶が車体内におさまる
左ブラケットは右の鏡像。左モーターは反転(⇄)して付けると缶が車体内におさまる

キャスターマウントを設計する

キャスターはシャシーに直接は付きません。間に挟むマウント(下駄)が要ります。ここは買う部品ではないので、PartDesignでさっと設計しましょう。30×30mmの板に、シャシー側の穴2つ(ピッチ25mm)とキャスター側の穴4つ(20×20mmの正方形配置)、すべてØ3.2の貫通穴。厚みは——うーん、とりあえず3mmの板にしておきます。シャシーと同じ厚みだし、何となく良さそうです。

マウントをシャシーの後ろの穴2つに、キャスターをマウントの穴に、それぞれ固定ジョイントで付ければ——全部品がつながりました。

全部品を組んだ。ロボットの姿が初めて見えた——ように見えるが…
全部品を組んだ。ロボットの姿が初めて見えた——ように見えるが…

横から見ると…

組み上がった姿に満足する前に、いろんな角度から眺めてみます。横から見ると——あれ?

キャスターのボールが地面に届いていない
キャスターのボールが地面に届いていない

キャスターのボールが地面に届いていません。すき間は8.75mm。ロボットを床に置いたら、後ろが落ちてシャシーが傾く状態です。1部品ずつ見ていたときは何の問題もなさそうだったのに、全体を組んだとたん、矛盾が顔を出しました。

なぜ浮いた? 高さの計算

シャシーの高さはモーター側で決まっている
シャシーの高さはモーター側で決まっている

原因をたどります。シャシーの高さ(地面からの距離)は、自由には決められません。モーター側で既に決まっているからです。車軸はシャシー底面から15.75mm下にあり、ホイールは直径42mm(半径21mm・次回#06で設計する寸法)。つまりシャシー底面は地面から15.75+21=36.75mmの高さに浮くことが確定しています。

キャスター側の高さを計算すると、3mm板では8.75mm足りない
キャスター側の高さを計算すると、3mm板では8.75mm足りない

一方キャスター側は、キャスターの全高25mm+マウント3mm=28mmしかありません。36.75−28=8.75mm足りない。ボールが浮いたのはこのぶんでした。ということは、マウントの正しい高さは 25+x=36.75 を解いてx=11.75mmです。

「とりあえず3mm」と何となく決めた寸法が、まさにここで牙をむいたわけです。でも、これは失敗ではありません。3Dプリンタを1秒も動かす前に、画面の中で見つけられた——これこそアセンブリ最大の価値です。実物で気づいていたら、印刷のやり直しで数時間コースでした。

マウントv2:寸法を直すだけ

直し方は簡単です。マウントの部品ファイルに戻って、パッドの長さを3mm→11.75mmに変えるだけ。#2-1で学んだパラメトリック(寸法をあとから変えられる仕組み)が、ここで効いてきます。保存してアセンブリのタブに戻ると、組んだままの状態で部品が更新されます(もしジョイントがエラーになったら、そのジョイントを削除して付け直せば確実です)。

マウントv2(11.75mm)。ボールがぴったり接地した
マウントv2(11.75mm)。ボールがぴったり接地した

ボールの先端がモーター側の接地面と同じ高さにそろいました。ちなみに実物のタミヤ70144は、付属のスペーサーで全高を段階的に変えられる製品です。今回は25mmの設定で採寸しているので、実物もこのマウントでちゃんと接地します。

食い込みがないか調べる(干渉チェック)

干渉=部品の重なり。共通部分(common)の体積が0.0なら干渉なし・数値で全ペア確認
干渉=部品の重なり。共通部分(common)の体積が0.0なら干渉なし・数値で全ペア確認

見た目はきれいに組めました。でもCADには現実と違う点がひとつあります。部品どうしが平気で重なれるのです。現実の部品は同じ場所に2つ存在できませんが、画面の中では、めり込んでいても誰も止めてくれません。重なり(干渉)があるまま印刷すると、当然組めない部品ができあがります。

白状すると、この記事を作っている途中でも1件やらかしました。モーター缶のダミーを単純な円筒(Ø20)で作っていたら、ブラケットの縦板と4.39mm³食い込んでいたのです。実物の缶は側面が平らに削られた小判型(幅15mm)なので、ダミーモデルを実物どおりに直して解消しました。コラムで「外形は正直に作る」と書いたのは、この実体験です。

干渉は目で探すには限界があります(4.39mm³の食い込みは、正直、見た目では分かりませんでした)。そこで数値で調べます。表示メニュー→パネル→Pythonコンソールを開き、ツリーで調べたい部品2つをCtrl+クリックで選んでから、次の3行を貼り付けてEnter:

import Part
a, b = Gui.Selection.getSelection()
Part.getShape(a).common(Part.getShape(b)).Volume

最後に出る数字が、2部品の重なっている部分の体積です(common=共通部分)。0.0なら干渉なし。今回のロボットで隣り合う6ペア(シャシー×ブラケット左右・シャシー×マウント・ブラケット×モーター左右・マウント×キャスター)を全部調べて、すべて0.0を確認しました。これで安心して印刷に進めます。——いきなりコードが出てきて驚いたかもしれませんが、FreeCADはこうやってPythonで操作できます。第3部でじっくりやる内容の、ちょっとした先取りです。

完成:ロボット、初お目見え

差動二輪ロボットの全体組立。ホイールは次回ここに付く
差動二輪ロボットの全体組立。ホイールは次回ここに付く

シャシー・ブラケット2つ・モーター2つ・マウント・キャスター。7部品の差動二輪ロボットが、初めて姿を現しました。4回かけて部品を作ってきた成果がこの1枚です。むき出しの軸が「早くホイールをくれ」と言っています。それは次回のお楽しみです。

つまずきポイント

よくあるつまずきと対処(早見表):先に開く・向きは後から・付け直し
よくあるつまずきと対処(早見表):先に開く・向きは後から・付け直し
  • 挿入パネルに部品が出てこない:部品のファイルを開いていないのが原因です。一覧に並ぶのは「いま開いているドキュメント」の部品だけ。先に全部開いておきます。
  • 英語のダイアログが出て焦る:Ground Part?=「最初の部品を固定(接地)しますか?」です。YesでOK。あとから変えたいときは、部品を右クリック→接地の切り替えもできます。
  • ジョイントを付けたら部品が変な向きに刺さった:壊れていません。穴の軸は合っていて、回転・深さ・裏表が未指定なだけです。ジョイントをダブルクリック→回転・オフセット・反転で直します。
  • 左右対称の部品で穴の位置が合わない:反転ボタンで裏返すと、上下(前後)の穴が入れ替わります。付けたい場所と違う穴に付いたら、ジョイントの参照をもう片方の穴に変えてみてください。
  • 部品を編集したらジョイントがエラーになった:ジョイントが参照していた面が、編集で作り直されたのが原因です。エラーのジョイントを削除して付け直すのがいちばん早い対処です。

今回の課題:分解図を作る

組み上がったロボットで、プラモデルの説明書のような分解図を作ってみてください。Assemblyワークベンチのタスクパネルに「分解図」という機能があります。起動して部品をドラッグすると、組立位置から引き出した状態を作れます。どの部品がどこへ刺さるのか、一目で伝わる図になったら成功です。「組み立てる」と「分解する」は同じ知識の裏表——分解図がすらすら作れたら、この組立を本当に理解した証拠です。

課題:組み上げたロボットから、この分解図を作る
課題:組み上げたロボットから、この分解図を作る

むずかしそうに見えますが、やることは「部品を選んで、矢印を引っぱる」のくり返しだけです。引っぱった記録がステップとして1つずつ積み上がり、それが分解図になります。まずは自分で触ってみて、行き詰まったら下の解答を開いてください。

解答を見る(手順つき)

手順1:分解図コマンドを起動する。ツリーでアセンブリ(Assembly)をダブルクリックして編集モードに入ると、左のタスクパネルにアセンブリの道具が並びます。いちばん下の「ツール」を開くと「分解図」があります。

手順1:アセンブリのタスクパネル、いちばん下の「ツール」に分解図がある
手順1:アセンブリのタスクパネル、いちばん下の「ツール」に分解図がある

手順2:パネルの見方をつかむ。分解図パネルには、これから作るステップの一覧が並びます。1回の引っぱりが1ステップです。下の「放射状に分解」を押すと全部品を自動でいっぺんに散らせますが、これだと組み立てる順番は伝わりません。説明書として使いたいので、今回は自分で1ステップずつ作っていきます。

手順2:分解図のタスクパネル。ステップを積み上げて分解のようすを作る
手順2:分解図のタスクパネル。ステップを積み上げて分解のようすを作る

手順3:部品を選んで矢印を引っぱる。3Dビューで動かしたい部品をクリックすると、その部品に矢印(ドラッガー)が現れます。X・Y・Zの矢印をドラッグすると、その向きにまっすぐ引き出せます。手を離した瞬間に、いまの移動が1ステップとして記録されます。

手順3:部品をクリックすると矢印(ドラッガー)が出る
手順3:部品をクリックすると矢印(ドラッガー)が出る

手順4:モーターを外向きに引き出す。まずは左右のモーターです。モーターは車軸の向き(X方向)にブラケットから抜けるので、引き出す向きもX方向にします。左右それぞれ70mmくらい引くと、あいだのブラケットが見えてきます。抜ける向きと同じ向きに引く——これが読みやすい分解図の唯一のルールです。

手順4:左右のモーターを車軸の向きに70mmずつ引き出す
手順4:左右のモーターを車軸の向きに70mmずつ引き出す

手順5:ブラケットも同じ向きへ。ブラケットもシャシーから見て左右に外れる部品なので、同じX方向に35mmほど引きます。モーター(70mm)より手前で止めるのがコツです。こうすると「シャシー → ブラケット → モーター」という組み立ての順番が、並んだ位置だけで伝わります。

手順5:ブラケットも同じ向きに35mm
手順5:ブラケットも同じ向きに35mm

手順6:キャスターまわりは真下へ。キャスターとキャスターマウントは、シャシーの下に付く部品です。そこでZ方向のマイナス側、つまり真下に引き出します。キャスター本体を55mm、マウントを25mmと差をつけると、「マウントがシャシーに付き、そのマウントにキャスターが付く」という入れ子の関係が図で分かります。

手順6:キャスターとマウントは真下へ
手順6:キャスターとマウントは真下へ

最後に正面(Front)から見てみましょう。左右対称に部品が並び、赤い点線がそれぞれ「どこから来た部品か」を指しています。プラモデルの説明書で見たことのある、あの図です。

正面から見ると、そのまま組立説明書の1ページになる
正面から見ると、そのまま組立説明書の1ページになる

うまくいかないときは、引き出す向きを疑ってください。ネジや軸が抜ける向きと違う方向へ引くと、部品どうしが交差して「どこに付くのか分からない図」になります。また、ステップを消したいときはパネルのステップ一覧から選んで削除できます。納得できたらOKを押すと、ツリーにExploded Viewとして保存され、いつでも組立状態と分解状態を切り替えられるようになります。

まとめ

  • アセンブリは部品の位置を手で合わせるのではなく、ジョイント=組み付け関係を教える。位置はFreeCADが計算する。
  • 最初の部品は接地(ground)して基準にする。英語のダイアログはYes。
  • 穴の軸を合わせても、回転・差し込み深さ・裏表は決まらない。ジョイントの編集(回転・オフセット・反転)で人間が指定する。
  • 組んで初めて見つかる矛盾がある。今回は「シャシー底面の高さ36.75mm」にキャスター側が8.75mm届かなかった。1部品ずつでは完璧に見えても、全体では破綻しうる。
  • 矛盾は印刷する前に画面の中で直す。パラメトリックなら寸法ひとつの変更で済む。
  • 干渉チェックは見た目でなく数値で。common(共通部分)の体積が0.0なら重なりなし。
  • ダミーモデルでも外形と取付穴は正直に作る。手を抜いた円筒は4.39mm³食い込んでいた。

次回 #06 ははめあいとクリアランス。いよいよホイールを設計して、モーターの軸に「ちょうどよく」はめます。3Dプリンタ工作でいちばん悩ましい「きつすぎて入らない/ゆるくて空回り」を、公差という考え方で数値から攻略します。

【応用のヒント】① 部品の色を変えてみましょう(ツリーで部品を右クリック→外観)。この記事のスクショも部品ごとに色分けしています。色が分かれていると、向きの間違いや干渉に目で気づきやすくなります。② キャスターを「前」に付けたら走りはどう変わるでしょうか。シャシーには前側の取付穴がないので、#2-1のスケッチに穴を2つ追加するところから——パラメトリック設計の練習になります。③ 電池ボックス(単3×4本)を採寸して自分でダミーモデルを作り、シャシーに載せてみましょう。実物のロボットづくりに一歩近づきます。

Back to top