LED通信事業プロジェクト エンジニアブログ
FreeCAD v1.0.0でスイッチ誤操作防止部品を作る
記事更新日 2024年12月3日
はじめに
以前の記事で取り上げたFreeCADが、バージョンアップしてv1.0.0になったというニュースを11月下旬に見かけました。
これは筆者も触っておかねば!ということで久々にFreeCADに触り、せっかくですのでスイッチ誤操作を防ぐための部品を作ってみます。
FreeCAD v1.0.0 のダウンロードとインストール
筆者のPCにインストールされているFreeCADはv0.21.2、以前の記事でインストールしたバージョンです。
例によって、まずはインストーラーのDLから進めていきます。FreeCAD公式サイトからダウンロードページに移り、使用しているPCのOSに適したインストーラーをダウンロードします。筆者PCはWindows11なので「x86_64 installer」をDLしました。v0.21.2では500MB弱あったインストーラーがv1.0.0では400MB弱となり、軽量化されているみたいです。
FreeCADは寄付を受け付けておりますので、気に入った方は是非ご支援していただければと思います。
DLできたらexeファイルを実行し、インストールを進めていきます。インストール方法や、インストール時のオプションについては以前の記事からとくに変更なしですので、スキップします。
インストールが完了したらFreeCADを起動し、初回起動時は基本設定オプションについて指示を求められるので、好みの項目を選択し「終了」をクリックします。
FreeCADで設計-1
初回起動時の基本設定オプション画面で「終了」をクリックすると、通常のFreeCAD起動画面が現れます。
新規ファイル欄の「パラメトリックパーツ」をクリックして、設計画面に移行します。
設計に入る前に、今回の記事で作りたい部品の概要を説明します。
荷物の保管や出荷の関係で弊社横浜事務所の一室を新たに使用することになったのですが、掃除してもどうにもホコリっぽさが取れない環境で、多少なりとも空気が良くなればと思い換気扇を常時回すようにしています。ただ、換気扇のスイッチが照明スイッチと近いこともあり、退出時に照明を消す流れで換気扇まで止めてしまうことが多々ありました。
その対策として、通常指が触れた程度ではスイッチが押せないようなカバーを作ってスイッチに被せ、換気扇を止めないようにします。完全に操作できないのも不便ですので、小指の先やボールペンでスイッチを押せるように操作用の穴を設けて、流れ作業での誤操作を防止します。
少し見づらいですがスイッチ周りの風景と、スイッチの各部寸法、設計する部品のイメージを以下に示します。
完成形のイメージの共有ができていないと読み進めるのも退屈かと思いますので、完成形も添えておきますね。
それでは設計を進めていきます。以前のバージョンではワークベンチと呼ばれる箇所の切り替えから始めましたが、今回はデフォルトで「Part Desigin」となっていたので、画面左側タスク欄にある「スケッチを作成」をクリックし、どの平面上にスケッチを作成するか決めます。
この際、タスクの表示領域が非常に小さく扱いづらいため「オーバーレイの切り替え」やメニューバーの表示からドッキングオーバーレイの項目にカーソルを移動し「全てのオーバーレイの切り替え」をクリックして表示領域を調整しました。ただ、何度か操作した後に現在の表示になったので、どの順番で操作したのかわからずです……
気を取り直して、スケッチを作成する面として「XY平面」を「アタッチメントを選択」の欄から選択し「OK」ボタンを押します。
ワークベンチが「Sketcher」に変更され、ツールバーがスケッチ仕様になった様子が確認できます。
それでは、XY平面上に四角形を作成するため、ツールバーから「四角形」を選択します。
平面上の適当な位置で選択し、マウスカーソルを任意の量移動した後、もう一度選択すると平面上に四角形の元となる頂点を配置することができます。
筆者環境では3DナビゲーターをOpenInventorに設定しているため、選択の際は「Shift+クリック」を行います。
先の図中ではタスク欄「ソルバーメッセージ」が「4 自由度」となっていますので、まだ完全に四角形を定義できたわけではありません。ここから四角形の各部への寸法指定を行い、四角形を定義していきます。
まずはXY平面の原点を選択し、四角形の頂点の中から最も原点に近い頂点を選択します。
原点と頂点を選択した状態で右クリックし、展開したメニューの寸法から「水平距離拘束」をクリックします。
サブウインドウが展開するので「長さ」の部分に「10 mm」と入力してOKを押します。
これで、XY平面の原点に対して水平距離で10mmの位置に四角形の頂点が存在することが定義できました。ソルバーメッセージも「3 自由度」となり、定義しなければならない寸法が1箇所指定できたことがわかります。
一箇所ずつ寸法指示を入れていく作業を行うにつれて、徐々にFreeCADの操作感を思い出してきたわけですが、Autodesk Fusionの便利機能に慣れきった身体には少々堪えます……
それでは先程選択した2点間について、今度は垂直距離拘束を行います。<br.
右クリックしメニューから「垂直距離拘束」をクリックします。寸法を指定する作業は水平距離拘束の際と同じで、寸法についても先程同様「10 mm」を指定します。
垂直距離拘束により、XY平面の原点に対して垂直距離で10mmの位置に四角形の頂点が存在することが定義できました。ソルバーメッセージも「2 自由度」となり、さらに寸法の指定が進んだ様子がわかります。
次に、四角形の辺の長さを指定します。<br.
四角形の隣り合う2つの頂点を選択し、水平距離拘束・垂直距離拘束を行うことで辺の長さを指定することが可能です。
まずは横に隣り合う2つの頂点を選択し、右クリックメニューから「水平距離拘束」をクリックします。
サブウインドウが展開するので「長さ」の部分に「60 mm」と入力してOKを押します。これで四角形の横辺が60mmであることが指定できました。
ソルバーメッセージについても「1 自由度」となり、残る一箇所を指定すれば四角形の定義が完了します。
それではラスト、四角形の縦に隣り合う2つの頂点を選択し、右クリックメニューから垂直距離拘束を行います。長さについては「26 mm」を指定します。
最後の垂直距離拘束により、四角形の縦横の辺の長さも指定できました。これまでの作業によりソルバーメッセージが「完全拘束」となり、四角形の位置と各部寸法が完全に定義できました。
ここまで完了したら、タスク欄にある「閉じる」を押すと、ワークベンチが Sketcher から Part Design に変更されます。
FreeCADで設計-2
先程までのスケッチで描写した四角形に厚みを与え、立体形状にします。<br.
ワークベンチが「Part Design」に変更されていることを確認したら、タスク欄にあるモデリングツール内の「パッド」をクリックします。
すると、先程作成した26x60mmの四角形に、デフォルトでは10mmの厚みが与えられました。指定したかった厚みが10mmなので、このままパッドパラメーターの上にある「OK」をクリックして進めます。
また、この後の作業で設計内容が吹き飛ぶと非常に悲しいので、一度保存しておきます。
パッド操作によって部品の土台が出来上がったので、ここからは差のブーリアン演算で余分な箇所を削って形を整えていきます。
ブーリアン演算は過去記事でも記載している通り、図形同士を組み合わせて目的の形状を得るための操作です。
差のブーリアン演算を行うための図形を作成するため、画面左側から「ボディを作成」をクリックの後「スケッチを作成」をクリックします。今回は「XZ平面」にスケッチを作成していきます。
スケッチによる四角形の配置、頂点間の水平・垂直距離拘束を行う手順は先程と全く同じです。
ここでは、四角形の原点に最も近い頂点とXZ平面の原点との距離は水平10mm・垂直2mmとしました。また、四角形の横辺は15mm・縦辺は8mmとしました。
各寸法の指定が完了したらタスク欄にある「閉じる」をクリックします。
出来上がったスケッチを立体にするため、モデリングツールから「パッド」をクリックします。
最初に作った立体と重なるようにしたいので、パッドパラメーター内の「逆方向」にチェックを入れた状態で、長さの指定を行います。若干オーバー気味ですが「50 mm」を指定しました。
寸法の指定が終わったら「OK」をクリックします。
FreeCADで設計-3
それでは作成した2つの立体の間でブーリアン演算を行います。
ワークベンチを「Part」に変更します。ツールバーがガラッと様変わりしている様子が確認できるかと思います。丸が2つ重なったようなアイコンの「ブーリアン演算」をクリックします。
画面左側、タスクの欄に設定画面が現れますので、ブーリアン演算の欄は「差集合」を選択します。1番目の図形に最初に作った立体である「Body」、2番目の図形に2個目に作った立体である「Body001」を選択します。
上記項目の選択が完了した状態で「適用」をクリックすると、BodyからBody001が被っている箇所が削除されます。
ブーリアン演算が完了したら「閉じる」をクリックします。
これで片側の耳ができましたので、逆側の耳も作ります。やることは同じですので、サクッと進めます。
ワークベンチを「Part Design」に変更、ツールバーから「ボディを作成」の後「スケッチを作成」をクリックし「XZ平面」に四角形を配置します。四角形の原点に最も近い頂点とXZ平面の原点との距離は水平55mm・垂直2mm、四角形の横辺は15mm・縦辺は8mm、各寸法の指定が完了したらタスク欄にある「閉じる」をクリックします。
出来上がったスケッチにパッドを適用して立体にしてからブーリアン演算を行う流れも同様です。
モデリングツールから「パッド」をクリックし、パッドパラメーター内の「逆方向」にチェックを入れた状態で、長さ「50 mm」を指定し「OK」をクリックします。
ブーリアン演算については少々注意で「差集合」のブーリアン演算を行うことは同じなのですが、1番目の図形として先程のブーリアン演算によって得られた立体「Cut」を、2番目の図形に3個目に作った立体である「Body002」を選択します。
上記項目の選択が完了した状態で「適用」をクリックし、CutからBody002が被っている箇所が削除されたことを確認したら「閉じる」をクリックします。これで両側の耳ができましたね。
今度は耳と耳の間にスイッチが収まる部分を設けます。
またまた作業内容は一緒で「XZ平面」に四角形を配置します。四角形の原点に最も近い頂点とXZ平面の原点との距離は水平26mm・垂直0mm、四角形の横辺は28mm・縦辺は8mm、各寸法の指定が完了したらタスク欄にある「閉じる」をクリックします。
実を言うと、これまで指定した寸法に一部誤りがあった (スイッチが収まる部分の周囲の壁を2mm厚にしたかったが1mmになってしまった) のですが、1mm厚でも実用に耐える強度はありますので、このまま突っ切ります。
モデリングツールから「パッド」をクリックし、パッドパラメーター内の「逆方向」にチェックを入れた状態で、長さ「34 mm」を指定し「OK」をクリックします。
ブーリアン演算については「差集合」を選択し、1番目の図形として「Cut001」を、2番目の図形に「Body003」を選択します。
上記項目の選択が完了した状態で「適用」をクリックすると、スイッチの収まる部分が設けられました。
最後に、操作用の穴を設けます。
今回は「XY平面」に四角形を配置して進めます。四角形の原点に最も近い頂点とXZ平面の原点との距離は水平26mm・垂直0mm、四角形の横辺は28mm・縦辺は8mm、各寸法の指定が完了したらタスク欄にある「閉じる」をクリックします。
モデリングツールから「パッド」をクリックし、パッドパラメーター内の長さはデフォルトの「10 mm」のまま「OK」をクリックします。
ブーリアン演算は毎度おなじみ「差集合」を選択し、1番目の図形として「Cut002」を、2番目の図形に「Body004」を選択します。
上記項目の選択が完了した状態で「適用」をクリックした後に「閉じる」をクリックします。これで操作用の穴ができました。
このままではカクカクの豆腐建築で見た目が悪いので、エッジにフィレットを設定して丸みを帯びさせます。
ワークベンチが「Part」の状態でフィレットアイコンをクリックします。
選択した図形を「Cut003」に、選択範囲を「エッジを選択」とし、先程設けた操作用の穴の四隅に対して半径「4 mm」でフィレットを設定します。視点をぐりぐり回しながらエッジを選択し「OK」を押すと、選択したエッジに対して指定した半径のカーブが掛かります。
操作用の穴だけでなく、様々な箇所にフィレットを設定してみました。
3Dプリンターで部品を造形
ここまでできたら、メニューバーのファイルからエクスポートを選択し、STLファイルとして3Dモデルをエクスポートします。STLファイルを3Dプリンターに投げて、できあがったのがこちらの部品です。
スイッチに当ててみると寸法的には問題なさそうなので、両耳の裏面に両面テープを貼り付けてスイッチに取り付けてみます。これで部屋の退出時、照明を消すついでに流れ作業で換気扇まで消さずに済みます。
ただ、表面に2mmでフィレットを掛けた部位がなぜか反映されていません。ファイルの保存状況を再確認しても、フィレット後に保存しているので古いモデルがエクスポートされているということもないはず……いつも使っているAutodesk FusionにSTLファイルをインポートしてみても、やはり適用されておらずで、エクスポートの段階でフィレットの情報が欠落している模様。
筆者の操作が悪かったのか今後のバージョンアップで解決されるのかはわかりませんが、使用感には影響ない部位ですし、これはこれでということで。
まとめ
以上、FreeCAD v1.0.0でスイッチ誤操作防止部品を作る、でした。
久々のFreeCADの操作に大苦戦、自分で書いたブログを読み返しながらの執筆となりました。
クセのある操作感なので個人的に使いやすいとまでは言えませんが、今回の記事執筆のための作業中、操作ミス以外でエラーを吐かなかったこと (フィレットの件は筆者に原因がある可能性もあるので除外) は素直に好印象です。以前のバージョンではイマイチ原因のわからないエラーで操作を蹴られることが度々あったので……
それでは、今回もご拝読いただきありがとうございました。