最近因为要进行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文件。

image

4.选择你刚生成的文件,比如HelloNX.class。程序执行后,生成Block。

image

好了,就这么简单!下次再会的时候我会对这段代码进行解释。

posted on 2009-03-29 14:10  空清能净  阅读(9375)  评论(3编辑  收藏  举报