本文介绍: 因此,对于每种语言的开发API为了区分语境方便,称为java api和java uf api、python api和python uf api,其中uf式api是tag为ug对象标识,java api和python api以语言类对象为ug对象标识。②“变量名”:UGII_JVM_LIBRARY_DIR,“变量值”:上述java–jre安装目录(如:C:javajre1.8.0_291binserver)。目的:编译NX/UG java语言二次开发的.java源文件,获得.class文件。
1.NX/UG Java API官方开发文档
西门子NX/UG Java api开发文档:open_java_ref/overview-summary.html。
2.安装Java8
3.安装jetbrain idea
3.windows系统环境变量配置
在“系统变量”下“新建”:
①“变量名”:UGII_JAVA_HOME,“变量值”:上述java-jdk安装目录(如:C:javajdk1.8.0_291)。
②“变量名”:UGII_JVM_LIBRARY_DIR,“变量值”:上述java-jre安装目录(如:C:javajre1.8.0_291binserver)。
4.使用idea创建项目
目的:编译NX/UG java语言二次开发的.java源文件,获得.class文件。
5.NXOpen Java代码生效流程
6.API体系简述
NX/UG二次开发追根溯源有两套体系:一是NXOPen C API,在java、python都被包装到NXOpen.UF包中;二是NXOpen C++ API,在java、python都成为其主要写法API。
因此,对于每种语言的开发API为了区分语境方便,称为java api和java uf api、python api和python uf api,其中uf式api是tag为ug对象标识,java api和python api以语言类对象为ug对象标识。
6.代码示例
package com.company;
import nxopen.*;
import nxopen.uf.*;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.rmi.RemoteException;
public class Main {
public static void main(String[] args) throws RemoteException, NXException {
Session theSession=null ;
UFSession theUFSession=null ;
try
{
theSession = (Session)SessionFactory.get("Session");
theUFSession = (UFSession)SessionFactory.get("UFSession");
theUFSession.ui().openListingWindow();
theUFSession.ui().writeListingWindow("Session and UFSession are created");
UFCurve ufCurve = theUFSession.curve();
UFCurve.Arc ufArc = new UFCurve.Arc();
UFPart ufPart = theUFSession.part();
UFCsys ufCsys = theUFSession.csys();
Part part1 = theSession.parts().newDisplay("CreateArc", Part.Units.INCHES);
/* Fill out the data structure */
ufArc.startAngle = 0.0;
ufArc.endAngle = 3.0;
ufArc.arcCenter=new double[3];
ufArc.arcCenter[0] = 0.0;
ufArc.arcCenter[1] = 0.0;
ufArc.arcCenter[2] = 1.0;
ufArc.radius = 2.0;
Tag wcsData = ufCsys.askWcs();
ufArc.matrixTag = ufCsys.askMatrixOfObject(wcsData);
Tag arcData = ufCurve.createArc(ufArc);
UFCurve.Arc theAskArcData= ufCurve.askArcData(arcData);
//theUFSession.ui().writeListingWindow("nX Coordinate: "+theAskArcData.arcCenter[0]+"n");
//theUFSession.ui().writeListingWindow("Y Coordinate: "+theAskArcData.arcCenter[1]+"n");
//theUFSession.ui().writeListingWindow("Z Coordinate: "+theAskArcData.arcCenter[2]+"n");
//theUFSession.ui().writeListingWindow("Start Angle: "+theAskArcData.startAngle+"n");
//theUFSession.ui().writeListingWindow("End Angle: "+theAskArcData.endAngle+"n");
//theUFSession.ui().writeListingWindow("arcRadius: "+theAskArcData.radius);
//theUFSession.ui().writeListingWindow("nCreated successfully");
BasePart.CloseAfterSave var2;
part1.save(BasePart.SaveComponents.FALSE, BasePart.CloseAfterSave.TRUE);
}
catch (Exception ex)
{
if(theUFSession!=null)
{
StringWriter s = new StringWriter();
PrintWriter p = new PrintWriter(s);
p.println("Caught exception " + ex );
ex.printStackTrace(p);
theUFSession.ui().writeListingWindow("nFailed");
//theUFSession.ui().writeListingWindow("n"+ex.getMessage());
theUFSession.ui().writeListingWindow("n"+s.getBuffer().toString());
}
}
}
public static int getUnloadOption() {
return BaseSession.LibraryUnloadOption.IMMEDIATELY;
}
}
原文地址:https://blog.csdn.net/weixin_54698498/article/details/134762496
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_38844.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。