最近因为要进行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。
好了,就这么简单!下次再会的时候我会对这段代码进行解释。
分类:
UG二次开发
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程