Helyx-OS version 2.0.0

Helyx-OSは昨年の11月に新しいヴァージョンがリリースされていましたが、ようやくそこそこに使ってみる事が出来たので、その評価記事といったところです。

 

インストールの問題

バイナリーインストールではうまく起動しないという不具合がありました。この問題については、オープンCAE勉強会@岐阜(第27回)において、FSさんからいち早く取り上げられ、その時にはバイナリーインストールを諦めてコンパイルする方法について教えてもらいました(説明資料は本記事をアップした時点でまだ未掲載)が、かなり面倒で手を出すまでには至っておりませんでした。

その後、公開元HP情報を時々チェックしていましたが、いつまで経っても更新がないまま、先日(1/18)の第35回オープンCAE勉強会@関東にて、開発元に近い人からの情報で対処方法を教えてもらうことが出来ました。

起動スクリプト(HELYX-OS.sh)中、

#!/bin/bash

LANG=”en_US.UTF-8″

THIS_FILE=`readlink -f $0`
THIS_FOLDER=`dirname $THIS_FILE`

export HELYX_LAUNCHER=$THIS_FILE
source $THIS_FOLDER/bin/launcher.conf

launchSuite $@

LANGの環境変数を追加指定する必要があった(赤字部分)という、たったそれだけの問題でした。

変化点

これも公開元HP情報を見ても、何が変わったのか判りません。画面全体のデザインがかなり洗練されてきた印象は確かにありますが、実質的な機能としては下のキャプチャ図に丸抜き数字で示した4点くらいでしょうか。


範囲を選択_582

 

(参考) version 1.0.2

範囲を選択_584

  1. ParaViewを起動できるようになった。
  2. Multiphase/VOF ( = interFoam )のソルバー設定が可能になった。
  3. メッシュ作成やソルバー実行時の出力画面が、全体の操作画面の中に収納されるようになった。
  4. 解析中のケースフォルダを対象として、端末画面やファアイルマネージャを起動できるようになった。

このうち、1., 4. あたりは、OpenFOAMをちょっとでも使い出すと、誰でもが思いつくニーズでしたね。これで、2. のあたりの対応ソルバーのラインアップが充実してくれば、汎用ツールと比肩できるもになっていきそうな感触はありますが、まだまだ道は永そうです。

DEXCS for OpenFOAMにも、Helyx−OSは搭載させてもらっておりますが、現時点では、TreeFoamから起動するメッシャのプラットフォームとして使い、ソルバーの為の様々な設定はTreeFoamを使う方法を推奨しており、この方針はまだしばらく続きそうです。

ただ誰でも簡単にすぐに使えるというDEXCSの狙いからすると、ソルバー設定機能部分が2.のように機能拡張することよりは、単機能でも良いので、もっと簡単になってくれることを期待しているのですがね。

いや、それよりもメッシャーとして使う部分において、この新しいヴァージョンでは却っておかしくなってしまった部分があるのが心配です。単なるバグで、いずれフィックスされることを期待しているんですが、いましばらくは、こういうものだと思って使っていくしかなさそうです。

課題1. Blenderで出力するSTLファイル対応の問題

Blenderから出力されるSTLファイルでは、

solid Exported from Blender
facet normal 0 0 0
outer loop
vertex 0.278489 0.358779 0.164229
vertex 0.289535 0.361037 0.167021
vertex 0.301157 0.362951 0.170137
endloop
endfacet

solid名で、上の赤字部分のように、 Exported from Blender という付帯情報が勝手に付けられてしまいます。問題はその付帯情報の中にスペースがあるという点です。

以前のヴァージョンでは、こういう名前があった場合に、スペース部分を_(アンダースコア)で置き換えた形(Exported_from_Blender)にしたSTLファイルをpolyMesh/triSurfaces フォルダ下に収納し、snappyHexMeshDict 中でも、同じように記述されていたのに対し、新しいヴァージョンではその処理がされておらず、solid名にスペースがあると結果的にレイヤーを追加することが出来なくなってしまうということです。

課題2. snappyHexMeshDict のパラメタ変更の問題

 メッシュ作成をやり直そうとすると、何故かsnappyHexMeshDict 中、refinementSurfaces ブロックのlevelパラメタが認識されなくなってしまいます。画面上で指定は出来るのですが、Dictファイルに反映されません。

snappyHexMeshDictを手修正して保存しておいても、画面上のメッシュ作成(create)ボタンを押してメッシュ作成しようとした途端、その時点でsnappyHexMeshDictが書き換わってしまいます。なのでパラメタ変更したかったら、後はコマンド実行するしかないという事です。

ということでこれはかなり致命的に辛い。もっとも、自分の環境に問題がある可能性もありますが。

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

 

 

STLの細長い三角形パッチを修正する方法

範囲を選択_356

昨日のオープンCAE勉強会@岐阜にて、表題の質問がありました。

 
blenderを使えば、「細分化」で一発OKと回答してしまいましたが、もう一手間必要でした。ここに修正報告するとともに、具体的な方法を記しておくこととします。

なお、実際には頂角が0.5度以下が問題になったという報告事例でしたが、ここでは説明をわかりやすくする為、もっと大きな頂角(細長い円筒面の分割を粗くしたもの)で説明しています。

また、この問題(頂角が小さすぎる)は、LIGGGHTSでSTLファイルを取り扱う際に問題になったということでしたが、OpenFOAMで取り扱う際には、多分問題にはならないだろう点は追記しておきます。

細分化の前に

三角形パッチを四角形パッチに統合

してやる必要がありました。

範囲を選択_357

 

  • 全選択の状態で、メッシュ⇒面⇒三角面を四角面 を実施します。円筒側面は細長い長方形になってくれます。

 

円筒側面の全辺を選択

範囲を選択_358

 

  • 円筒側面の長辺だけを選択するのに、ワーヤーフレームの表示状態で、ボックス選択します。

 

この状態で辺を細分化

範囲を選択_359

 

  • 側面の長辺だけが選択できたら、 メッシュ⇒辺⇒細分化 を実施します。(上の例では、これを3回実施しています)
  • これで側面の細長い長方形の長手方向に分割されたことになります。

四角形を三角形に変換

範囲を選択_360

 

  • このままSTL形式でエクスポートも出来ます(しても構いません)が、ここでは四角形を三角形パッチに変換して、出来上がりを確認しました。(四角形のままSTLエクスポートすると、自動的に三角形に分割されます)

 

補足というか蛇足

範囲を選択_361

 

  • 三角形を四角形に統合しないで、単に側面の長辺だけを細分化すると、上の図のようになります。
  • 確かに円筒中央部あたりは問題が解決されていますが、上面および下面最端部では、問題の三角形を単に縮小した三角形が残ってしまいます。
  • これでは解決策にはなりませんでしたね^^;

blenderでサイズの大きいモデルの処理方法

表題の問い合わせを頂きました。自分でも1年ほど前に色々調べたのですが、ネット検索ではblenderの旧いヴァージョンで説明したものを見つけたという程度。結局あれこれ試行錯誤して、やり方は判ったものの、今回改めて思い起こすのに苦労したので、ここに記しておくこととしました。

通常のCADはミリメートル単位で作図

するので、そこからエクスポートしたSTLファイルをインポートすると、blender上ではスケールアウトしてしまいます。特に透視表示の場合。たとえば、以下のような感じ。

Blender_268

ビュー切り替え

とりあえずは、ビューを平行投影に切り替えてみると。。。

Blender_269

何やら、見えてくるが、変なところでクリッピングされてしまっている。

Blender_270

 

ビューメニューが臭そうだと、色々調べてもどうにもならない。答えは意外なところに・・・

数値パッド

Nキーを押して、数値パッドを表示させる。⇒一番大きなオブジェクトを選択して、サイズを確認してみよう。

Blender_271

数値パッドの少し下のあたりに、クリップ範囲(開始値と終了値)が指定されており、この終了値がデフォルトでは1000になっていたので、上のように表示されていたということです。この数字を物体のサイズより大きくしてやれば良いということでした。

Blender_272

 

蛇足

自分がOpenFOAMでの計算用にモデルをインポートする場合は、インポートして、即メートルにスケール変換して(s0.001)しまいます。なので、ほとんどこの機能を使うことがなく、思い起こすのに苦労した次第です。

 

DEXCS2013 for OpenFOAM(R) リリースノート

DEXCS for OpenFOAM(R) は、OpenFOAMと、これをより簡単・高度に活用できるようにする為の様々なツールをすべてインストール済のオール・イン・ワンパッケージで、誰でも簡単・即使えるようにしたマシンイメージ(isoファイル)です。

範囲を選択_999(280)

DEXCS2013では、

  • OpenFOAMやその他の組み込みツールのヴァージョンアップに対応
  • 初心者向けのランチャーは、ほぼ機能開発が完了したとして、国際化対応に向けての英語版(翻訳は未熟ですが・・・)での動作も可能にした
  • DEXCS2011から搭載するようになった中級者向けツールの機能強化を図りました。

なお、DEXCS2012までは、32/64bit版がありましたが、DEXCS2013からは、64bit版のみです。

インストールと利用法

範囲を選択_161

詳しくはこちら資料はDEXCS2012のものですが、DEXCS2013でも画面イメージが異なるのみで同じです)2013/10/22更新

  • マシンイメージなので、DVDにイメージ書き込みすれば、DVDから起動してそのまま利用することができます。 (DEXCS初体験の人はこのライブDVDとして「まずは使ってみる」方法をお薦めします。)
  • 起動後にインストール機能により、HDD等に直接インストールできる上、使用するユーザー名等を選択することができます。
  • VMWare Playerや、VirtualBox等の仮想環境で起動して、仮想環境を作成することも簡単です。
    • VirtualBoxにインストールする方法は、こちらに詳しく記されています
  • 基本的に、DEXCS2011でやった方法と同じですが、同じやり方が通用しない部分が一部あるので、DEXCS2011の利用経験者はご注意のほど。

同梱プログラム

範囲を選択_999(281)

OSはLinux Mint13

といっても、ベースはUbuntu-12.04なので、アプリケーションのインストール方法などは、ubuntuのそれと全く同じです。違うのはデスクトップのGUI環境だけです。
標準のターミナル、ファイルマネージャ、テキストエディタがubuntuとは異なりますが、DEXCSランチャーやTreeFoamは、ubuntuの標準ツールを使用することを前提に作られているので、ubuntu互換ツールとして起動できるようにしてあります。

その他のドキュメントについて

    • DEXCSランチャーのヘルプメニューを参照下さい。
    • 本当に初めて使う人は、「ランチャーの使い方」-「まずは使ってみる」をご覧下さい。
    • 「ランチャーの使い方」-「形状作成」にて、Swiftツールの使い方を概略説明しています。
    • 「ランチャーの使い方」-「メッシュ」「計算実行」「結果処理」を理解できるようになると、OpenFOAMの基本的なファイル構造を理解できたことにもなります。
    • 以上は動画チュートリアルになっていますが、「フラッシュプレーヤー」を変更して参照することを強くお勧めします。変更方法は、最下段の「フラッシュプレーヤーの変更方法」をご覧ください。
    • TreeFoamの実践的な使用方法