最近因為要進行TeamCenter二次開發(胖用戶端定製),所有要開始研究Java了。因此突發奇想為什麼不能使用Java進行二次開發呢?現在對UG進行的開發以C/C++應用為主。大多數使用的是原來的UF函數(也就是面向過程的0),無論是教程還是相關社區討論都比較多。使用NXOpen C++或者NXOpen.Net的就很少了。而使用Java的應該更少。
其實NXOpen for java和其他的NXOpen技術都一樣,都是建立在Journal層上的開發介面。據說現在Siemens已經把NX底層100%的JA化了,而它基於JA的開發介面正在逐步實現。至少在NX 6.0的時候已經非常強大了。如果你現在要學習NX二次開發,或者你的項目是基於NX5.0以上的版本,我都推薦使用NXOpen族系的開發工具(NXOpen C++,NXOpen.Net,使用C#或者VB.Net)
我這裡寫了一個關於使用Java進行NX二次開發的非常簡單的例子:就是產生一個Block。這個例子闡述了一個NXOpen for Java程式的基本架構。
import java.io.*;
import java.rmi.RemoteException;
import nxopen.*;
import nxopen.features.*;
public class HelloNX {
public static void main(String[] args)
{
try
{
Session theSession = (Session)SessionFactory.get("Session");
Part wrkPart = theSession.parts().work();
BlockFeatureBuilder builder = wrkPart.features().createBlockFeatureBuilder(null);
builder.setType(BlockFeatureBuilder.Types.ORIGIN_AND_EDGE_LENGTHS);
Point3d origin = new Point3d(0.0,0.0,0.0);
builder.setOriginAndLengths(origin,"100","100","100");
builder.commit();
}
catch(NXException ex)
{
ex.printStackTrace();
}
catch(RemoteException ex)
{
ex.printStackTrace();
}
}
public static int getUnloadOption()
{
return BaseSession.LibraryUnloadOption.IMMEDIATELY;
}
}
1.首先編譯完成。
2.開啟UG後,建立一個零件。
3.Ctrl+U調出執行檔案選擇對話方塊,然後在檔案類型過濾處選擇.class檔案。
4.選擇你剛產生的檔案,比如HelloNX.class。程式執行後,產生Block。
好了,就這麼簡單!下次再會的時候我會對這段代碼進行解釋。