背景
FreeCADとはオープンソースの3D CADプログラムです。Spreadsheet機能を使うとFreeCADで変数を利用できて便利だったので、備忘録を兼ねて記事を共有します。
使ったもの
FreeCAD 0.18.4FreeCADは下記のサイトからダウンロードできます。
https://www.freecadweb.org/wiki/Download
Spreadsheetを作る
FreeCADをSpreadsheetモードにします。「新規Spreadsheetを作成」ボタンを押します。
コンボビューに「Spreadsheet」が追加されました。
コンボビューの「Spreadsheet」をダブルクリックすると、入力画面が表示されます。
Spreadsheetに値を定義してエイリアス名を割り当てる
今回はA列で役割、B列で値を管理し、2-4行にXYZ方向の長さを定義しました。Spreadsheetのセルには、エイリアスという値を呼び出す時に利用できる文字列を定義できます。
エイリアスを定義しておくと、セルの番地ではなく命名したエイリアス名で呼び出せるので、呼び出す際の手間を少なく出来ます。
B2に「x_length」というエイリアス名を付ける手順を例として紹介します。
エイリアス名を付けたいB2を選択状態にします。
エイリアスの編集画面を表示するにはいくつかの方法があります。
Spreadsheetモードで「選択したセルに別名を設定」ボタンを押すと、エイリアス編集画面を開けます。
ボタンにマウスカーソルを長く当てていると表示されるショートカットキーの入力でも編集画面を開けます。
OSによってコマンドが異なる可能性があるので、表示されるキーに従ってください。
編集したいセルを右クリックして、メニューからプロパティを選択し、エイリアスタブを開くことでも編集画面を開けます。
セルのプロパティのエイリアスタブは隠れていることがあるので、表示されていない場合は隠れているタブを表示するボタンを押してください。
エイリアスの編集画面を開いたら、エイリアス名を入力してOKを推してください。
B2のセルには「x_length」というエイリアスを設定しました。
エイリアスを割り当てたセルは、未選択状態の時に黄色く表示されます。
エイリアス名はマウスカーソルをセルにかざすと表示されます。
同様に、B3には「y_length」を、B4には「z_length」をエイリアス名として割り当てました。
これで変数の定義ができました。
今回は利用していませんが、Spreadsheetではエクセルのようにセルの値を利用して四則演算などができるようです。
使える機能は下記のサイトにまとめられています。
Expressions
定義した値を設計で使う
先ほど定義した変数を設計時に呼び出してみます。まず、プロジェクト名のタブを選択して設計画面に戻ります。
Sketcherを開いて、XY面に四角を描画します。
XY面の横軸(X軸)の長さを設定します。
長さ入力画面の値入力欄の右の方にある青いボタンを押します。
入力画面が出てくるので、Spreadsheet.x_lengthと入力します。
自動補完機能が動いていたら Sp -> 下矢印 -> x -> 下矢印 で入力できると思います。
入力できたらOKを押します。
Spreadsheetでx_lengthとして定義した8mmが割り当てられたので、OKを押して長さの入力画面を閉じます。
幅としてスプレッドシートに定義した8mmを割り当てられました。
同様にY軸の長さとしてy_lengthを割り当てます。
定義したXとYの大きさの四角ができたので、Zの長さ押し出します。
Sketcher機能を閉じます。
Partモードを選び、押し出し機能を選択します。
タスク設定画面では数式エディタを呼び出せないようなので、適当な値でOKを押して押し出しタスクを閉じます。
押し出してできたExtrudeをコンボビューの中から選択し、プロパティのLengthの値を押すと青いボタンが入力欄の右の方に表示されるので、それを押すt数式エディタが開きます。
Spreadsheet.z_lengthを割り当ててOKを押します。
斜め方向から見るボタンと矢印ボタンを押すと、表示モードの物体を斜め方向から適度な拡大率で表示できます。
Spreadsheetで定義したXYZ(8,4,2)の大きさの箱ができました。
値を変えてみる
Spreadsheetをダブルクリックして入力画面開き、z_lengthを2から4に変更してみます。設計画面タブを選択して、オブジェクトを中央に配置ボタンを押せば、XYZが8,4,4の箱を確認できます。
Spreadsheetの値を変えて、オブジェクトの形状を変えられました。
調べたけどできなかったこと
スプレッドシートのセルにエイリアス名を表示したかったのですが、エイリアス名を取得する関数が見つからなかったため、できませんでした。今の所、手動で名前と値を管理するしかなさそうです。
セルのエイリアス名を取得してセルに表示する方法をご存知でしたら、コメントなどで教えていただけると嬉しいです。
まとめ
FreeCADでSpreadsheet機能を利用して、設計する物体の大きさを管理できました。参考
Spreadsheet WorkbenchExpressions
0 件のコメント :
コメントを投稿