CYBERNET

CAEを学ぶ

UIDLを用いたAnsys GUIのカスタマイズ

Ansys環境のカスタマイズに関しての概要を紹介いたします。

はじめに

一般にソフトウェアの世界では、機能性と操作性にトレードオフの関係があると言われます。この傾向はAnsysに関しても例外ではなく、往年の度重なるバージョンアップによって多様なニーズに応える機能性は着実に追加されていますが、その一方で操作性が問題視されることになってしまいました。そして、Workbench環境の登場によって、いつしかAnsys環境は解析先任者向け、Workbench環境は設計者向けという位置づけで捉えられるようになりました。
とはいえ、Ansys環境にはWorkbench環境のユーザーから見ても魅力的な機能は沢山あります。その機能利用の足枷となっている要因の一つには、やはり操作性の問題があると考えております。また、操作性には各ユーザーの主観で良し悪しが判断されるという一面もあることから、カスタマイズの必要性が自ずと表れてきます。そこで本稿では、Ansys環境のカスタマイズに関しての概要を紹介いたします。

Ansys 環境とWorkbench環境のカスタマイズ

図1と表1にて、AnsysとWorkbench環境のカスタマイズに関する特徴をまとめました。操作性の問題とは相反して、カスタマイズ性に関しては多くの点でAnsys環境に長所があります。
Workbench環境のカスタマイズには必要とされるスキルが多く、且つ関連するドキュメントもないために、手探りの開発になりがちです。

さらに現在のWorkbench環境は、バージョンアップのたびに内部仕様が修正・変更される傾向にあり、旧バージョンのプログラムをそのまま流用することができず、従来のバージョンで得たカスタマイズに関するノウハウが通用しないこともしばしば起こります。
それに対して、Ansys環境のカスタマイズに要する敷居は極めて低いといえます。カスタマイズに必要な言語はUIDLを除いては、多くがバッチ処理による解析に使用するものであり、関連するドキュメントも充実しております。


表1 カスタマイズ性の比較

図1 カスタマイズに要する知識

カスタマイズ言語UIDL(User Interface Design Language)

UIDLはAnsys環境のGUIをカスタマイズするための言語です。
UIDLを使ってカスタマイズできるGUIコンポーネントは次の3つです。


  • Ansys メインメニュー
  • ダイアログボックス(ピッキングダイアログを含む)
  • オンラインヘルプ

図2にカスタマイズされたダイアログボックスの動作原理を示しました。UIDLでは、ボタンやチェックボックス、値入力ボックス等のコンポーネント構成と、OKボタンをクリックした際に実行されるAnsysマクロの名前を定義します。この時、各コンポーネントに設定された内容はAnsysマクロの引数として渡されます。さらに、少しの工夫でAnsysマクロだけではなく、FORTRANやC言語等で作成したプログラムと関連付けを持たせることも可能です。
各種ダイアログのレイアウトに関しては若干柔軟性に欠ける点もありますが、その分だけコードの書式が簡易で手軽に開発ができるため、簡単なGUIを短期間で作成するという点では大いに役に立つと言えます。


図2 ダイアログボックスのカスタマイズ概念

カスタマイズ事例

UIDLを使ってAnsys環境をカスタマイズすることによってどのような利点が得られるのか、ここでは3つの事例を使って紹介いたします。


(1) 独自に作成したAnsysマクロをGUIから実行する

Ansysマクロは、インプットウィンドウから実行するのが一般的な使い方ですが、これをGUIのダイアログ画面から引数を入力して実行する形で運用することができます。類似の使用方法としてAnsysツールバーにマクロ実行用のボタンを追加する方法もありますが、UIDLとは2つの意味で決定的な違いがあります。
まずはマクロをツリー構造で整理することができる点です。ツールバーにマクロを登録する方法では、ボタンを無作為に並べることしかできないため、マクロの数が膨大になると該当するマクロを探す手間がかかってしまいます。それと比べて、UIDLを用いてAnsysメインメニューにマクロとのリンク付けを定義する方法をとれば、操作性やメンテナンス性の良いマクロ実行環境が構築できます(図3参照)。
ちなみに、弊社で販売しているMultiscale.Simもこの利点に着目して、マクロをAnsys GUIに組み込みました。


図3 カスタマイズされたAnsysメインメニュー例

そして二つ目はマクロに渡す引数に直感的なインターフェスが提供できる点です。Ansysマクロ単独で引数を受け取るためには、*askコマンドを使用しますが、この方法では図4に示すような入力ボックスの形でしかダイアログを表示させることができないため、引数の取り方に柔軟性がありません。UIDLによるチェックボックスや選択ボックス等を使ったダイアログであれば、引数の順序や、引数の意味等についても直感的に理解しやすい操作環境が構築できます。


図4 UIDLを使わずにAnsysマクロに引数を渡す例

(2) コマンドでのみアクセス可能な操作をGUIに追加する

AnsysにはGUIからアクセスできず、コマンドからのみ実行が可能な操作がいくつか存在します。代表的なものとしては、システム的な設定を行なう/confi gコマンドや、モデルの初期状態を定義するinistateコマンド等が該当しますが、特に材料構成則等の新機能についてはコマンドのみで対応されるケースが多くなっています。
もちろんコマンドを使用する利便性は沢山ありますが、コマンド名や各引数の意味を調べたりするなどの手間が必ず付きまといます。これらをダイアログから実行できるようにカスタマイズすることも容易です。図5は/confi gコマンドの実行ダイアログを作成した例です。


図5 /confi gコマンド実行用ダイアログ

(3) 既存のメニュー構成を変更する

Ansysには予めメニュー表示フィルター機能が準備されていますが、ここで設定できるのは、解析タイプごとに各要素属性の設定メニューがフィルタリングされる程度のものです。既存のUIDLファイルを編集していただければ、業務上使用することのないメニューについては別途削除するなどして、Ansysの操作性を改善することができます。

最後に

UIDLを用いたAnsys GUIのカスタマイズには「手軽ではあるが柔軟性に欠ける」点があるため、本格的なGUIの構築には不向きであることは否定できません。しかし、単純にダイアログからAnsysマクロを実行するという使用用途に関しては十分過ぎるほどの拡張性があります。また、将来的にWorkbenchのカスタマイズを考えていらっしゃる方に関しても、UIDLはGUIの基本を理解するには適したものであると言えます。本稿がカスタマイズの一歩を踏み出すための動機付けとなれば幸いです。

Ansys、ならびにANSYS, Inc. のすべてのブランド名、製品名、サービス名、機能名、ロゴ、標語は、米国およびその他の国におけるANSYS, Inc. またはその子会社の商標または登録商標です。その他すべてのブランド名、製品名、サービス名、機能名、または商標は、それぞれの所有者に帰属します。本ウェブサイトに記載されているシステム名、製品名等には、必ずしも商標表示((R)、TM)を付記していません。 CFX is a trademark of Sony Corporation in Japan. ICEM CFD is a trademark used by Ansys under license. LS-DYNA is a registered trademark of Livermore Software Technology Corporation. nCode is a trademark of HBM nCode.