3D-CAD 雑感

以前にフリーの3次元CADを使ったポンプのインペラー作成記事を掲載しましたが、今年になってから、引き続きポンプのケーシング作成に取り組んでいます。

ただ今回は少し本格的な取り組みとして、流路断面(円周上の半径方向)を複数箇所で指定して、それらを円周上で滑らかに繋いでやろうと思っています。これを実現するには、CADツールとして、スィープロフトとか、スィープブレンド、といった機能が必要になり、たとえば“swept blend”で検索すれば、PTC:Creo Parametric(Pro/ENGINEER)を使ったチュートリアルがたくさん出てきます。しかし、残念ながら(数100万円級の)高価な市販ツールに関するものばかりです。個人事業主には手が届きません。

単純に断面形状をロフトもしくはスィープさせる機能は、たいていのフリーの3D-CADにも備わっているんですが、この断面積を徐々に変化させるとなると、フリーのツールでは実現できそうにないということも判ってきました。

但し、これはあくまでソリッド系の3D-CADについて言えることであり、blenderを代表とするポリゴン系の3D-CADであれば可能ではあるので、現在はこのスイープブレンドする部分だけをblenderにやらせる方法を模索中で、実用性はともかく、ほぼ実現可能の見通しを得るまでにはなっています。

その方法の中味については、今少しブラシアップして、いずれ別記事にて公開したいと思っていますが、本稿では、そこに至るまでの間で、判った事や気付いたことがあり、ほっておくと忘れてしまいそうな事が多くあったので、この長いまえがき(ここまでの経緯)を含めて、ここに記しておくこととしました。

 

 DesignSpark Mechanical

当初このツールで出来ないかと、さんざん調べましたが、結局出来そうにない・・・となって、ここしばらく別のソフトの調査にかかっていました。

しかし後述しますが、回りまわって最終的にスィープ・ブレンド以外の部分は、このソフトで出来そう(一番使い易そう)な感触を得ています。

 

FreeCAD

オープン系の代表格であるソリッド系3D-CADで、DEXCSにも搭載しているものですが、これに、以下のようなボタンがあって、

範囲を選択_560

 

これで出来るかもしれない・・・と思って、オンラインヘルプを探そうとしているのですが、このところ全然つながりません。FreeCADのサイトそのものは生きているようですが、出てくるはずのヘルプコンテンツが真っ白な状態です。

復活と、更なるブラシアップを期待しています。

 

123D Design

最近、3Dプリンタの話題が急速に広まってきて、その為の3D-CADツールとして、やたら取り上げられるのがこのソフトです。これも無償利用が可能で、オンラインヘルプやチュートリアルが日本語版を含めて充実しています。よくよく調べたら、すでに何冊か参考書まで発刊されていたので、そのうちの1冊を購入しました。

しかし・・・

まず躓いたのが、点や直線の位置を座標値で直接指定できない!ということ。これも上にあげた参考書やオンライン情報をさんざん調べた挙句、ようやくやまねこ@楢ノ木技研さんのツイート記事にたどりつきました。「円の直径は数字入力出来るけど、中心座標って数値入力出来ない」とかもありました。(話はそれますが、FreeCADもっと頑張れ!のコメントもありました)

とはいえ、これが出来ないからといって、致命的とまではいえないので、気を取り直してスイープブレンドの方法を探したんですが・・・まえがきにて紹介した、スィープロフトに関する記事を見つけて、ようやくこれで作ることはあきらめました。

 

Blender

すでに述べたように、Blenderであれば、スイープブレンド(Blender上では、Curve Modifierと呼ぶらしい)は可能で、検索すれば参考情報は多数見つかる(たとえば、その1その2)。

  • 実際に作ってみた例

範囲を選択_566 範囲を選択_569 範囲を選択_570

しかし、問題は、この機能が使えたとしても、総合的に見て、Blenderだけですべての操作(たとえば断面形状の作成など)を完結させるのは、よほどBlebder操作全般に習熟していない限り困難であるという点。

上の作例にしても、複数の断面形状そのものは、DesignSpark Mechanical を用いて作成⇒STLエクスポートしたものをBlenderで取り込み、再配置、側面の接続だけをBlender上で実施したものです。

  • DesignSpark Mechanical にて作成した複数の徐変する断面

範囲を選択_571

したがって、現時点、スイープブレンドだけは、Blenderでやることとし、その他の作図は、ソリッド系の3D-CADを使用するという前提で調査を続けた。

 

データの互換性

複数のCAD間でデータをやり取りするには、データ形式を合わせなければならない。ソリッド系ではSTEP形式、ポリゴン系ではSTL形式が代表的であり、ここに取り上げた3D-CADツールでは、これらのデータ形式を通して、やり取り出来ます。

問題は、双方向のやり取りは容易でない、もしくは不可能であるという点です。以下に、それぞれのツールの特徴を記しておきます。

  • DesignSpark Mechanical
    • 入力:STEP(△),STL(△)
    • 出力:STEP(✕),STL(○)
  • FreeCAD
    • 入力:STEP(○),STL(△)
    • 出力:STEP(○),STL(○)
  • 123D Design
    • 入力:STEP(○),STL(△)
    • 出力:STEP(✕),STL(○)
  • Blender
    • 入力:STEP(✕),STL(○)
    • 出力:STEP(✕),STL(○)

入力で△となっているのは、読み込みは出来ても編集加工が出来ないという意味です。

実は、ここまでのところはある程度判っていたことで、これらのことから結論として、Blenderでしか出来ないことがあったとしら、Blenderを最終工程に持ってくるしかない、ということになってしまいます。BlenderではSTLしか出力できず、ソリッド系のツールでは、STLを読むことは出来ても加工出来ないからです。

これだと、Blenderのスィープブレンド機能だけを使いたいという、当初の前提に照らすと、かなり困難な作業になってしまいそうです。

 

データ変換

STLデータをSTEP形式に変換できないか?・・・ということで調べたら⇒ちょっと前までは、100万円級の有料ソフトを使うしか無い・・・でしたが、今回調べなおしたらフリーで使えるものが見つかりました。⇒InStep, Google SketchUpのプラグイン。

ということで、これからが今回調査の本題です。

InStep

Windows版しかないという点と、変換できるファイルのサイズに制限(3000 Facets / 1 Body)がありますが、ちゃんと変換してくれました。123D Design で読み込んで、加工編集が出来ることも確認出来ました。

  • InStepで取り込んだSTLファイルはSTEPに変換可能

範囲を選択_573

  • STEP形式であれば、123D Design にて加工編集可能

範囲を選択_574

なお、フリー版と製品版の比較表にもあるように、製品のフル機能版だと、サイズ制限がないのは当然、メッシュ(といっても表面パッチのことですが)を修正したりする機能もあるようで、これで、$149.99ということなので、このくらいであれば購入しても良いかな・・・という気にはなっています。ただ下の方法でも出来ることが判ったので、今のところはパッチ修正機能の様子見(下の方法で使い物になるか、この有料版を試すか)です。

 

DesignSpark Mechanicalのデータ互換性について、STEP形式はNGでしたが、実はSketchUp形式(*.skp)のデータであればOKであるという記事を見つけました。

Google SketchUp

このツールもかなりポピュラーで参考書籍もたくさん出ていますが、建築系の用途での情報ばかりが目立ってしまっている為、機械系CAE用のモデリングツールとしては考えていませんでした。標準の入出力で、STLやSTEP形式をサポートしていないから、という理由もありました。

ただ、後者に関しては、公開されたプラグインが多く出まわっており、とくにSTLに関しては古くからその存在は知られていました。

そこで、このプラグインについても、今回新たに調べ直すこととしました。

STLに関しては、やはり色々あるようで、STL for SketchUp というのをインストールしてみましたが、問題なく使えました。

これで、Blenderで出力したSTLファイルをSketchUpに取り込んで、加工編集出来る事も確認。さらにSketchUp形式で出力して、DesignSpark Mechanicalにインポートして加工できることも確認。これで当初の目論見(Blender上での作業を極力減らす)が何とかなりそうになった、ということです。

  • Blenderで出力したSTLをGoogleSketchにインポートして、加工(面の押し出し)しています

 

GoogleSketch

 

  • 上で作成したSketchUp形式ファイルをDesignSpark Mechanical にインポートして追加工(押し出した端面の向きを変えている)

DesignSpace

 

  • 加工編集のやり易さは、DesignSpark Mechanical >> Google SketchUp

ついでながら、STLだけでなく、STEP形式に関するプラグインがあるかどうか?についても調べてみました。

“skp to step converter”でググってみると、

sketch is done with SKETCHUP
file is export in IGES with plugin iges_export.rb
the backup is done in STEP avec FreeCAD
STEP file is open with 123D BETA

という記事が見つかりました(記事の内容は、同サイトにてユーザー登録しないと見れないようです)。

どうやら、iges_export.rbプラグインというのがあるらしい・・・となって、今度はこれを探したのですが・・・どうにもGoogle検索では見つけられません。結局判ったのが件のサイト sketchUcation にて SketchUcation Tools なるものをダウンロードしてSketchUpにインストールすると、そのサイトにある700本以上のプラグインをダウンロード出来るようになって、そのうちの一つが、iges_export.rbであったという顛末でした。

あと、件のサイト でのユーザー登録は、色んな料金システムがあって、ひょっとして有料でないと使えないかも?・・・との心配はありましたが、無料登録でもOKでした。

何は、ともあれ、これをインストールすると、、、メニューはファイルメニューでない予想外のところに追加されましたが、ちゃんと使えました。上のBlenderからSTLインポートしたファイルを取り込み、今度は、IGES形式で出力。これならFreeCADでインポート出来て加工編集もOKでした。

  • IGES Export は、toolメニューから

範囲を選択_563

  • FreeCADでインポートして追加編集

範囲を選択_564

今回の用途では、このIGES変換はあまり使うことはないかもしれませんが、完全フリーでこれが出来るようになった事は、(特に構造系のメッシュ作成向けに)かなり朗報といって良いじゃないでしょうか。

 

 

DesignSpark Mechanical でポンプのインペラを作ってみた

範囲を選択_201


フリーの本格的3次元CADの検証:第2弾は、オープンCAE勉強会@関西(2013/4/20)で公開された

の資料(ここではFreeCADで作成している)を参考に、同じものを作ってみました。

前回の作品に比べると、ずいぶん複雑なので必要テクニックを調べるのにほぼ1日を費やしましたが、やり方がわかってしまえば簡単でした。図面と照らし合わせながらの作業で、15分もあれば出来てしまいます。

備忘録を前回と同じように残すことも考えましたが、前回をはるかに上回るボリュームになってしまいそうなので、今回は動画チュートリアルで残すことにしました。それでも、これもサイズが大きくなって3部作です。

 

 

ベースプレートの作成

Winkチュートリアルはこちら

断面図をスケッチで描いて、原点軸まわりに回転体を作るだけですね。ここまでは、前回の作業とほとんど変わりありません。回転押し出しはむしろ簡単でしたね。ただ前回は気づきませんでしたが、原点や軸を最初に入れておいたほうが作図しやすいですね。

範囲を選択_213 範囲を選択_214 範囲を選択_215

 

ブレードの作成

Winkチュートリアルはこちら

ブレードの断面は、円弧の組み合わせからトリミングを使ってチャチャッと作成して、垂直押し出し、端面にフィレットかけて、枚数分コピーを作成、と前回の作品にはない新しいテクニックが満載です。

範囲を選択_208 範囲を選択_209 範囲を選択_210 範囲を選択_211 範囲を選択_212

 

 

アノテーション

Winkチュートリアルはこちら

CADデータとしては本質でなく、これで製造図面になるものでもないですが、こうやって簡単にアノテーションが入れられるとなると、作成したモデルの寸法検証が簡単に出来るってことだし、モデルを説明したりする為のチャート作りにも役立ってくれそうです。

範囲を選択_205範囲を選択_206範囲を選択_207

 

 

日本語メニューについて

前回の作品は操作画面が英語メニューになっていましたが、今回は日本語です。自分の前回の環境(Win7)ではデフォルトで英語になっていたのが、別のWin8のマシンでは日本語が立ち上がってくれました。

先日の岐阜の勉強会にて報告したところ、言語メニューを切り替える方法を教えて頂きました。File ⇒ Option ⇒ Advanced ⇒ Language: です。

範囲を選択_203

範囲を選択_202

範囲を選択_204

DesignSpark Mechanical でMixingElbowを作ってみた

01

1ヶ月ほど前に、

  • オープンソースということではないが、市販ツールの評価版によくある、機能制限や使用期限付きということでもない。

というツール(無償の3次元CAD)記事が気になっていたのですが、ようやくこれを検証することが出来ました。

 参考サイト

 

 

結論から言うと、

これはOpenFOAM用途には、かなり使えます。

Windows版しかないという点が、唯一残念ですが。

  • 今回の記事を作成するのに、ほぼまる一日ツールを使い倒しましたが、一度もフリーズしたりすることはありませんでした。
  • アンドゥも結構効いて、間違えたところをやり直して救われることが多々ありました。
  • スケッチ画を描く操作が非常に直感的で簡単です。これを使えるようになってしまうと、FreeCADには戻れません。

 

なんとか使い方もわかって、使えそうな感触も得たので、ここに毎度おなじみのMixingElbowを題材に、使用方法など備忘録としてとりまとめておくこととしました。

なお、FreeCADでmixingElbowを作成する方法をまとめた記事中の寸法図

mixing_elbow

をそのまま参考に作成しています。しかし上記記事での作成方法は基本図形(円柱)をベースに変形押し出しで作成していますが、ここではパイプの中心線を先に作成し、これに沿って、パイプ断面を押し出す方法にて作成しています(FreeCADでも、この方法が出来ないことはありませんが、過去記事にも記したようにかなり面倒な作業になります)。

 

 

起動画面

02

デフォルトはスケッチ描画⇒Plan view

03 04

図面通りにキッチリ描くには、PlaneViewです。

メインパイプの中心線を描く

直線ツール

05

06 07

メインパイプの直管部分の中心線を想定して、とりあえず適当に2本の直線を直角配置する

接線ツール

10

11 12

接線ツールを使って、2つの直線の端点をつなぎます。寸法は成り行きになっています。

寸法を整える(Selectツール)

select

 13 14 15

作成した部品(直線と円弧)の寸法は、Selectツールを使って簡単に変更できます。(ここがFreeCADとの大きな違い!)

サブパイプの中心線は補助線を使って作成

寸法図を参考に、円を作成(メインパイプの外形線)

16

 

17

曲がり部の中央点を特定すべく、右下45度方向に半径線を引く

18

曲がり部中央点を起点にサブパイプの中心線を作成

19 20

円と半径線の交点は自動認識されるので、交点あたりをクリックして交点が基準となる中心線を作成することが出来、必要な長さ(10mm)だけ伸長することで、サブパイプの起点を作ることができたということです。

不要になった補助線は削除

21 22

パイプ中心線の作成完了

23

パイプ断面は、新たにSketch画面を作り、その上で作成することになるが、Select New Sketch Plane ボタンを使うと、中心線の端面にて、簡単にSketch画面を作成することが出来る。(これもFreeCADと大きく違う!)

サブパイプ断面作成用のSketch画面で断面円を作成

24 2526

押し出しツールでサブパイプを作成

27

28 29

メインパイプの断面作成用のSketch画面で断面円を作成

30 31 32

メインパイプの押し出しはパス指定の押し出しで

33

 

Pullツールで面を選択したあとに、Swepボタン(上図の赤枠部分)をクリック

 

34 35 36

Sweepパスの選択はCtrlキーを押しながら中心線パーツを複数選択。

押し出す作業は、少しコツが必要かも。

ソリッドモデル完成、不要オブジェクトの削除

37

 

境界面の分割(Detach All)

38境界面の名前付け

39複数の境界面をまとめる(Combine)

40名前付け完了

41

 

ファイル⇒名前を付けて保存

42

デフォルトは.rsdoc

43

STL形式はオプションも豊富

44

 

Override Units にチェックマークを入れて、単位をMeters にしておけば,

ミリメートル(描画時のスケール単位)からメートルへスケール変換して出力してくれる。

Optionsはデフォルトのままでは駄目で、以下のように変更する。

 

45

 

OpenFOAMユーザーにとって重要なことは、ここでASCII形式を選ぶことと、FileをPar body(パーツ毎に)作成するように指定すること。

本例の場合、パーツが4つ(in1,out,side,in2)あるので、MixingElbow.stl,MixingElbow(2).stl,MixingElbow(3).stl,MixingElbow(4).stl という4つのファイルが出力されることになる。これをLinux環境に持ってきて、たとえば、

$ cat *.stl > mixingElbow.stl

と打ち込んでやれば、1つのファイル(mixingElbow.stl)になってParaViewやOpenFOAMでそのまま取り扱うことができるようになる。

 

ParaViewでの可視化例

46なお、STLの出力オプションでメッシュの分解能も指定できる。下の図は、Facet maximum edge length: 1mm にチェックマークを入れて作成したもの。

47