本文介绍: 因此,对于每种语言开发API为了区分语境方便,称为java apijava uf apipython apipython uf api,其中uf式apitagug对象标识java apipython api以语言类对象ug对象标识。②“变量名”:UGII_JVM_LIBRARY_DIR,“变量值”:上述javajre安装目录(如: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

请参照CSDN有关Java8安装教程

3.安装jetbrain idea

请参照CSDN有关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 apipython apipython uf api,其中uf式apitagug对象标识,java apipython 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进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注