最近因为要进行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。
好了,就这么简单!下次再会的时候我会对这段代码进行解释。