効率化への第 歩、APIツールの知識

第8回
Autdoesk Simulation Moldflow ライブヘルプ
効率化への第⼀歩、APIツールの知識
© 2014 Autodesk
Moldflow “ライブ ヘルプ”セッションの目的
Web会議システムによる、気軽に参加いただく1時間のサポートセッション
テクニカルサポート
電話サポート
Webメールサポート
FAQサイト
フォーラム
開発部門へ製品不具合
をレポート
ユーザ様固有の問題を迅
速に解決
© 2014 Autodesk
ライブ ヘルプ
1. ASUGを通じて、多くのユーザ様
を直接ヘルプできる
2. 直接フィードバックを頂くことが
できる(Q&Aセッション)
3. テクニカルサポートから積極的な
情報発信ができる
4. セッションの録画を全ユーザ様へ
公開
忙しくてセミナー、トレーニングに出張
が難しいユーザ様にもお勧めです!
まずはじめに
プロセス設定で複数の⼊⼒値を1つ1つ⼊⼒したとき、
未⼊⼒・誤⼊⼒をした経験はありませんか?
複数の異なる形状のモデルを同⼀条件で解析したとき、
同じ設定⼊⼒が毎回⾯倒に思ったことはありませんか?
もし、APIについてまったく知らないようでしたら、
ここで紹介するAPIの基礎的な知識で誤⼊⼒の防⽌、
操作時間の短縮、または社内基準の共有ができるかもしれません。
© 2014 Autodesk
本日のトピック
アプリケーション プログラミング インターフェース(API)
APIの概要
APIの制限
APIの基礎知識
APIツールの活用
コマンドライン
マクロ記録と再生
マクロを活⽤した短縮作業の例
お役⽴ちAPIのオープンソースを紹介!
本日のQ&A
© 2014 Autodesk
本日のトピック
アプリケーション プログラミング インターフェース(API)
APIの概要
APIの制限
APIの基礎知識
APIツールの活用
コマンドライン
マクロ記録と再生
マクロを活⽤した短縮作業の例
お役⽴ちAPIのオープンソースを紹介!
本日のQ&A
© 2014 Autodesk
APIってなに?
API - Application Programming Interface
(アプリケーション プログラミング インターフェース)
Object Linking and Embedding (OLE) プログラミング インターフェース
外部のアプリケーションソフトで作成した情報をMoldflowに適用したり、
外部のアプリケーションソフトの機能をあたかもMoldflowの機能
であるかのように提供
例えば
例えば
一連の操作を自動化
より自由な設定、設計
表計算ソフト
スクリプト
© 2014 Autodesk
APIってなに?
API - Application Programming Interface
(アプリケーション プログラミング インターフェース)
実⾏する命令を順番に記述
プログラムの記述には、プログラム言語(開発言語) を使用
このままでは難易度が⾼く⼿間がかかる
OSやミドルウェアに予め備わっているコマンドのパッケージを利用
“シンプルにプログラミングできるように設定されたインターフェース”
© 2014 Autodesk
もっとわかりやすく・・
作業は パズル のようなものです
様々な形のパズルから必要なパズルを探してきて
ルール通りにパズルの ピース をつなげる作業が
プログラミング、APIコマンドの作成です
利⽤する前にまずは何を⾏いたいか目的を明確にする必要がある
© 2014 Autodesk
APIの範囲は広くて深い
シンプルなマクロ
外部ソフトとの
インテグレーション
・
・
・
⾼度なプログラミングや
カスタマイズ
© 2014 Autodesk
今回の目的と範囲
まずは比較的浅い部分
基礎的な理解や、
簡単な自動化ができる
この範囲でどのように業務に役⽴つの?
例えば
マクロ機能で簡単な繰り返し作業を自動化
誤⼊⼒の防止、操作時間の短縮
© 2014 Autodesk
本日のトピック
アプリケーション プログラミング インターフェース(API)
APIの概要
APIの制限
APIの基礎知識
APIツールの活用
コマンドライン
マクロ記録と再生
マクロを活⽤した短縮作業の例
お役⽴ちAPIのオープンソースを紹介!
本日のQ&A
© 2014 Autodesk
MoldflowのAPIの制限
APIでサポートされていない機能
APIでサポートされている機能の範囲
http://help.autodesk.com/view/MFIA/2015/JPN/?url=http://hel
p.autodesk.com/cloudhelp/2015/JPN/MoldflowInsight/files/GUI
D-A24F6631-8018-4941-889C-A5262187FDD9.htm
© 2014 Autodesk
+
※詳細はヘルプを参照
マクロ記録では
サポートされていない機能
APIのプロダクトサポートへのお問い合わせについて
API のサポートは Advanced (アドバンス契約) 以上のみ
サポート対象外
受託でのプログラミングやカスタマイズのレベル
例: 「こういう機能をAPIでできますか?」
受託でのコードデバッキングのレベル
例:
問題やデータが簡略化されていないものからの問題抽出
関数やプログラミング手法の説明やトレーニングのレベル
© 2014 Autodesk
APIのプロダクトサポートへのお問い合わせについて
サポート対象
関数やクラス(定義)のレベルまで問題点が絞り込まれている
現象が再現できる最小限の具体的なサンプルデータ (スプリプト) が添付されている
望ましいお問い合わせの⽅法(例)
ご質問内容
マクロで溶融密度をテキストで出⼒しようとすると、溶融密度に相当する MaterialData.FieldValues(1000) の
オブジェクトがない旨のエラーとなります。(固体密度 MaterialData.FieldValues(1001) は問題なく出⼒できます。)
こちらはソフトウェアの不具合でしょうか? 回避方法はありますか?
再現手順
1. Syerngy で任意のモデルを開きます 。
2. 添付の 中の GetDensity.vbs マクロをリボンUIの [ツール] タブ、[マクロの再生] から実⾏します。
一つ目に表⽰される数値は固体密度です。 (問題なし)
その後溶融密度の出⼒時に以下のWindows Script Hostエラーが出⼒されます。(こちらが問題)
エラー:
© 2014 Autodesk
オブジェクトがありません。:'MaterialData.FieldValues(...)'
本日のトピック
アプリケーション プログラミング インターフェース(API)
APIの概要
APIの制限
APIの基礎知識
APIツールの活用
コマンドライン
マクロ記録と再生
マクロを活⽤した短縮作業の例
お役⽴ちAPIのオープンソースを紹介!
本日のQ&A
© 2014 Autodesk
APIの基礎知識
外部ソフトの操作
Moldflow 内の操作
エクセル
ノートパッド等
マクロ記録
マクロ再生
コマンドライン
こちらの詳細は後でご説明します
© 2014 Autodesk
VBScript
APIの基礎知識
VB(Visual Basic)スクリプト
Visual Basic言語のようなWindows のスクリプト言語
拡張子は.VBS
Moldflowの「マクロ記録」のデフォルト言語
VBスクリプトは、MoldflowのAPIと通信するための
最も効率的で習得しやすい⾔語の一つ
© 2014 Autodesk
APIの基礎知識
API リファレンス(参照)
プログラミングの例や
クラス(定義)が記載
※英語のみ
© 2014 Autodesk
APIの基礎知識
Tcode リファレンス(参照)
© 2014 Autodesk
Moldflowの特定のソルバー、
プロセス設定、モデリングに対応した
ID番号を記載
APIの基礎知識
Tcode リファレンス(参照)
例:保圧(保圧VS時間)プロファイルの⼊⼒
プロファイルの⼊⼒値
対応するID番号(tcode)
© 2014 Autodesk
VBスクリプトの練習
1. ノートパッドを開く
2. 以下のコードをノートパッドに⼊⼒し、livehelp1.vbsとして保存
として保存
3. VBSファイルをダブルクリックで実⾏
Answer = MsgBox(“LiveHelp OK/キャンセル テスト",1,"MsgBox テスト")
If Answer = 1 then MsgBox "OKを押しました"
If Answer = 2 then MsgBox "キャンセルを押しました"
VBスクリプトに関してはオンライン上に
多くのリファレンスがあり、学習しやすい!
© 2014 Autodesk
本日のトピック
アプリケーション プログラミング インターフェース(API)
APIの概要
APIの制限
APIの基礎知識
APIツールの活用
コマンドライン
マクロ記録と再生
マクロを活⽤した短縮作業の例
お役⽴ちAPIのオープンソースを紹介!
本日のQ&A
© 2014 Autodesk
コマンドライン
APIを使った作業スタート向けで
比較的簡単な方法
コマンドから一般的なタスクを実⾏
特定のタスクや一連のタスクを
実⾏するためのマクロを実⾏
コマンドラインは1インターフェス
(Synergy)でのみ使用可能
※2つ目に開いたSynergyでは
使用できません
© 2014 Autodesk
代表的なデフォルトコマンド(バージョン 2015)
ALIGN
CALC
DELN
DELP
DM
DR
DT
EDTN
FLATNESS
FOR
HCP
HELP
PAUSE
PO
MA
MERGE
© 2014 Autodesk
2つのノードで定義された線に沿ってノードを整列
ファイルや存在している結果を元にデータを使って結果生成
指定したノードを削除
指定したノードを削除
表示を拡大(もしくは縮小)
表示の回転
表示の移動
別の位置へノードを移動
選択したノードの反り後の平⾯度を計算
指定した要素、またはすべての要素の向きを反転
ファイルまたはプリンターへアクティブな画面ウィンドを印刷
すべてのコマンドのヘルプを起動
指定した秒数で一時停止
現存しているノード番号の次の番号でノードを作成
デフォルト設定でモデルをメッシュ
指定したノード上に選択したノードをマージ
コマンドラインの実⾏
※動画を参照して下さい
© 2014 Autodesk
コマンドヘルプ
コマンドラインに「help コマンド名」を
記入することで、デフォルトコマンドの
Description(説明), Syntax,
Parameters, Notes(注記) を表示
SyntaxとParametersって?
© 2014 Autodesk
例 help po を実⾏
※英語のみ
Syntaxと Parameters
Syntaxはコマンドの構文規則です。
もし[]の記載があったら、その中の項目の⼊⼒は任意です。
例えば、
help [<command>]
であればhelpのみでも実⾏可能
Parametersはコマンドの⼊⼒値です。
例えば、poコマンドのParametersは
<X>,<Y>,<Z>
これはグローバル座標(x,y,z)上のノード座標値を記入
© 2014 Autodesk
もう⼀度 po のコマンドヘルプを確認
Description:
現存しているノード番号の次の番号で
ノードを作成
SYNTAX:
Po <X> [<Y>[<Z>]] (この⼊⼒は任意)
PARAMETERS:
<X> <Y> <Z>
グローバル座標系のノード座標を記入
Notes :
指定していない座標は0とされる
© 2014 Autodesk
poコマンドの実⾏
※動画を参照して下さい
© 2014 Autodesk
本日のトピック
アプリケーション プログラミング インターフェース(API)
APIの概要
APIの制限
APIの基礎知識
APIツールの活用
コマンドライン
マクロ記録と再生
マクロを活⽤した短縮作業の例
お役⽴ちAPIのオープンソースを紹介!
本日のQ&A
© 2014 Autodesk
マクロ記録
Moldflow内でユーザーの操作を記録
マクロも1インターフェス(Synergy)
でのみ使用可能
マクロはVBSファイルとして保存できる
記録を停止
マクロはプロジェクトファイル
¥commandsフォルダに入れることで
コマンドラインでアクセスできる
※すべてを記録できるわけではないことに注意!
© 2014 Autodesk
マクロ再生
マクロが実⾏される!
VBSファイル(*.vbs)を選択し、開く
「マクロの割り当て」で複数のマクロを
速やかにアクセスができる(最大10種)
© 2014 Autodesk
プログラミングのワークフロー
スクリプトで何をしたいかを決定
スクリプトの概要を取得するためにマクロの記録を活用
テキストエディタ(ワードパッドなど)を使ってマクロを編集
APIリファレンス、Tcodeリファレンスから編集箇所や構文を参照
他のスクリプトやサンプルを部分的に流⽤
マクロをcommandsフォルダに移動し、バグが無いかをテスト
© 2014 Autodesk
補足:デバッキング
(1)
(2)
(3)
(4)
(5)
(6)
(7)
Set Synergy = CreateObject ("synergy.Synergy")
Set Viewer = Synergy.Viewer()
Set Plot = Viewer.GetActivePlot(
' ---- Check whether plot is active
If Plot Is Nothing Then
閉じカッコの記載漏れ
. . .
. . .
※サポートではデバッキングは⾏いません
© 2014 Autodesk
本日のトピック
アプリケーション プログラミング インターフェース(API)
APIの概要
APIの制限
APIの基礎知識
APIツールの活用
コマンドライン
マクロ記録と再生
マクロを活⽤した短縮作業の例
お役⽴ちAPIのオープンソースを紹介!
本日のQ&A
© 2014 Autodesk
マクロを使った中間結果出⼒の「指定時間での書き込み」の⼊⼒
非常に細かいアニメーションフレームや
特定の時間ステップ数がほしい場合、
中間結果の「指定時間での書き込み」の
編集が必要になる
しかし・・
非常に細かな間隔で時間ステップを
書き込むのは時間がかかる
マクロと表計算ソフトを使って⼊⼒時間の短縮
© 2014 Autodesk
マクロを使った中間結果出⼒の「指定時間での書き込み」の⼊⼒
1. 数ステップ(s)を書き込むマクロを記録
①マクロ記録を開始
③その後「記録停止」、
VBSファイルを保存
© 2014 Autodesk
プロセス設定>アドバンスオプション>
ソルバーパラメータの編集>指定時間で
の書き込み>時間の編集
②0.01と0.02を
⼊⼒し、「OK」
マクロを使った中間結果出⼒の「指定時間での書き込み」の⼊⼒
2. VBSファイルを確認
保存したファイルをノートパッドで開き、
“DVec.AddDouble” ラインを確認
© 2014 Autodesk
マクロを使った中間結果出⼒の「指定時間での書き込み」の⼊⼒
3. 表計算ソフトで一定時間間隔のリストを作成
“DVec.AddDouble”を追加
© 2014 Autodesk
マクロを使った「指定時間での書き込み」中間結果の⼊⼒
4. VBSファイルをノートパッドで編集
表計算ソフトで作成したリストをコピー&ペースト
© 2014 Autodesk
マクロを使った中間結果出⼒の「指定時間での書き込み」の⼊⼒
5. マクロの「再生」
保存したVBSファイルを再生
© 2014 Autodesk
本日のトピック
アプリケーション プログラミング インターフェース(API)
APIの概要
APIの制限
APIの基礎知識
APIツールの活用
コマンドライン
マクロ記録と再生
マクロを活⽤した短縮作業の例
お役⽴ちAPIのオープンソースを紹介!
本日のQ&A
© 2014 Autodesk
Moldflow API オープンソースを紹介
その1 Moldflowヘルプに「APIの例」としてサンプルが記載
http://help.autodesk.com/view/MFIA/2015/JPN/?url=http://help.autodesk.com/cloudhelp/2015/JPN/Mo
ldflowInsight/files/GUID-5BD9BA33-873E-4527-BBDB-3DD16FF64C90.htm
© 2014 Autodesk
Moldflow API オープンソースを紹介
例:カスタマイズされたアスペクト⽐
メッシュ品質をグラフィカルに表示
Communicatorでメッシュ品質を共有
© 2014 Autodesk
Moldflow API オープンソースを紹介
その2 公式のMoldflowブログでAPIを紹介
http://autodesk.typepad.com/beyondmoldflowinsight/
サイト内検索で
APIかMacroで検索
※英語のサイトです
© 2014 Autodesk
Moldflow API オープンソースを紹介
例:3D [XYプロットのプローブ]:新規スタディで比較のために
プロットを再編成させる方法
[XYプロットのプローブ]
成形品表面を選択し、
その肉厚方向の分布をプロット
として表示
肉厚方向
ノードや要素を選択するのではなく、表面の位置を自由選択
複数スタディの比較でプロット位置を合わせることが難しい
© 2014 Autodesk
Moldflow API オープンソースを紹介
スタディA(3Dメッシュ) XYプロットのプローブ結果を使用
新しいスタディB(3Dメッシュ) 設計変更、メッシュ変更モデル
1.スタディAでXYプロットのプローブ結果を作成
2.成形品表面を選択せずに、 XYプロットのプローブ結果を非表示
3.マクロ記録を実⾏
4. XYプロットのプローブを再び表示し、成形品表面を選択
5. 記録停止、vbsファイルを保存
6. スタディBを開き、 XYプロットのプローブ結果を作成
7. マクロ再生
成形品表面を選択する作業のみマクロを作成
※両スタディにおけるXYプロットのプローブの結果名前が同じである必要があります。
© 2014 Autodesk
本日のトピック
アプリケーション プログラミング インターフェース(API)
APIの概要
APIの制限
APIの基礎知識
APIツールの活用
コマンドライン
マクロ記録と再生
マクロを活⽤した短縮作業の例
お役⽴ちAPIのオープンソースを紹介!
本日のQ&A
© 2014 Autodesk
© 2014 Autodesk
© 2014 Autodesk, Inc. All rights reserved.