MATFOR 4.1版本於2007/3/28號正式更新, 可以到http://www.ancad.com/download.php下載, 目前先推出Windows版本, 約過一個月後才會推出Linux版本以及Windows 64位元版本, 這次的更新主要加入呼叫MATLAB Server的功能以及StreamLine的加強, 和屬性編輯器(property editor)的強化

增加MATLAB Interface

相信有許多研究者使用MATLAB來發展程式原型(Prototype), 發展到一定程度並經過驗證確定演算邏輯結果正確後, 想要進一步的擴充分析的資料規模時, 常會遇到計算速度的瓶頸, 或是製作圖形使用介面的障礙, 此時有的開發者會與其他程式語言的開發者合作將MATLAB的程式逐步的轉移到Fortran或是C++/VB/C#這類的平台, 為了協助這些不同語言整合的需求, MATFOR在4.1版裡新增MATLAB Interface, 可以讓程式開發者在Fortran或是C++/VB/C#透過呼叫MATFOR的函式就可以執行MATLAB的功能, 包含MATLAB本身即有的函式或是研究者所撰寫的.m檔案, 這樣一方面可用來簡化資料驗證的問題, 將改寫過的程式碼計算結果與MATLAB計算的結果, 在程式執行時就可以直接的比對, 另一方面也可以讓不同程式語言的開發者都能夠呼叫使用研究者所撰寫好的MATLAB程式碼.

使用MATLAB Interface的方式很簡單只要呼叫mfDoMATLAB這個函式, 就可以在程式裡執行MATLAB的指令, 如下面的例子是在C++裡呼叫MATLAB的magic函式產生矩陣後傳遞回mfArray

MATLAB x = magic(5)
MATFOR in C++ mfArray x;
x = mfDoMATLAB(”magic“, 5);

mfDoMATLAB函式的第一個參數是MATLAB裡的指令名稱, 第二個之後的參數是傳入MATLAB指令的參數, 最多支援到30個傳入參數, 透過mfDoMATLAB函式可以將MATLAB的數值功能與MATFOR的繪圖功能整合於單一程式, 達到快速開發程式的目的, 另外如果在Windows Vista作業系統下使用MATLAB Interface必須將執行檔設定為使用Administrator的身分執行, 否則會被作業系統給攔截掉.

加強StreamLine功能

這次加強的StreamLine增加了StreamArrow, 可以和StreamTube搭配使用, 讓流線的方向更容易掌握, 如下圖所示可以將StreamTube設定透明度後, 再疊上StreamArrow
Stream Tube and Arrow
撰寫的程式碼如下

h = mfStreamTube( x, y, z, u, v, w, sx, sy, sz );
mfGSet( h, “steplength”, 0.15 );
mfGSet( h, “sizefactor”, 0.01 );
mfDrawMaterial(h, “surf”, “smooth”, “on”,
“Ambient”, 0, “Diffuse”, 100, “Trans”, 70);
mfHold(”on”);
h = mfStreamArrow( x, y, z, u, v, w, sx, sy, sz );
mfGSet( h, “arrowsize”, 0.15 );
mfGSet( h, “arrowstep”, 0.15 );

為了讓程式開發者能夠更加的了解MATFOR的StreamLine效果與用法, 在這次MATFOR 4.1的包裝過程特地新增加StreamLine GUI demo, 安裝完MATFOR後可以在C:\Program Files\AnCAD\MATFOR4\gui_demo\cpp\StreamLine目錄下看到程式碼與執行檔, 執行畫面如下

只要稍微修改這個程式就可以用來分析您所計算出來的流場.
除了新增StreamArrow功能外, 這次還增加了非結構性網格的StreamLine功能, 可以用來呈現有限元素網格所計算出來的流場資料, 請參考Reference guide對於mfTriStreamLine和mfTetStreamLine函式的介紹

強化Property Editor

在MATFOR 4.0推出時提供GUI Builder的編輯軟體可以幫助程式開發者快速的開發圖形介面程式, 不過在4.0版的限制是無法呼叫MATFOR Graphic Viewer內建的Editor, 這些Editor可以讓使用者容易的調整Axis, Colorbar, Colormap等細節的設定, 而在4.1版則是開放了這些Editor的函式介面, 開發者可以自行在GUI Builder裡設計按鈕後, 在call back函式裡再呼叫這些Editor, Editor函式列舉如下

mfEditorDrawList
mfEditorMaterial
mfEditorColormap
mfEditorTransform
mfEditorAxis
mfEditorColorbar
mfEditorBackground

如果對Editor的使用有興趣可以參考C:\Program Files\AnCAD\MATFOR4\gui_demo\cpp\gsurf的範例, 這個範例執行畫面如下

增加Print Preview預覽列印功能

以前MATFOR的版本對於列印的支援很缺乏, 通常都需要將畫面存成圖檔後再列印出圖, 而在4.1版裡增加了Print Preview的功能, 要使用這個功能一種方式是在Graphic viewer執行[File]\Print功能就會出現如下圖所示的預覽列印畫面
Print Preview
另一種方式可以呼叫mfPrintPreview函式, 就可以呼叫出一樣的預覽列印畫面