概述


 
UG OPEN API的开发模块是为了使NX和外部接口之间调用的一个开放平台。UG OPEN API包括:
 
UG OPEN API程序可以运行在2个不同的环境,取决于程序的规定。两个环境:
 
UG OPEN API函数或子程序基本支持内部和外部方式。只有一些,主要是用户界面程序,只有在内部模式下运行.
 
UG OPEN API产品是不打算取代OPEN GRIP (GRaphics Interactive Programming) 产品,因为是更高层次的语言,如C或C + + NX接口。有许多任务需求在高级语言程序比较合适.
 
UG OPEN API产品需要明确本手册定义。这是我们的意图, 开发应用程序的程序员以为在未来的NX软件有变化的时候会舍弃之前的定义程序。不幸的是,这是不可能的。如果可能的话,我们会尽力支持现有的程序并 一个新版本发行之前通告用户例程这将在未来改变.
 
当升级到新版本,程序员将重新编译 链接程序。此外,发行说明提供了每个 释放NX的描述是 OPEN C程序员的重要变化.
 
发行说明描述了什么版本的操作系统 编译器用来创建UG OPEN API释放。因为操作 系统,连接器,编译器,运行时库,等,通常是更新 硬件供应商比NX发布更加频繁,可能会有 组合不正确打开C API函数。此外, 编译或链接可能需要比其他那些记录不同的选项 在这里。指发行说明提供了每个释放NX的特异性 这可能需要使用Open C API正确的变化.
 

的例子的源代码文件

很多的,例子程序,在C源代码文件的程序 位于ugopen目录,该目录的子目录 指出由可变ugii_root_dir。源代码文件“优盘” 前缀,后跟一个模块的名称和一个描述性名称。比如说呢。 ufd_curve_ask_spline_thru_pts。C是一个例子的源代码程序 uf_curve_ask_spline_thru_pts功能演示。源代码中发现的 在ugopen目录应该是首选的示例代码 记录在UG OPEN API参考手册,因为任何的可能性 例程可能发生晚期的变化.
 

支持的语言

UG OPEN API程序可以写在C或C + +编程语言。
 

初始化和终止

所有打开的C API程序必须被正确地初始化和终止。你用 两个C函数 UF_initialize and UF_terminate 这样做的。在你 将你的变量的第一次UG OPEN API函数的调用必须 uf_initialize。你的最后一个函数调用必须uf_terminate。在外部模式, 你可以叫uf_initialize一旦。一旦uf_terminate称,没有 的方式连接到开放的C环境。 ;如果你使用的是pre-nx4 UG OPEN API许可,uf_initialize和uf_terminate将分配和释放 UG OPEN API许可。 ;如果你使用的是新NX4授权方案, UG OPEN API许可不是必需的,但每个功能需要 具体模块的许可。 ;例如,如果你的电话 uf_assem_add_part_to_assembly你必须有一个组件的许可证。对  查看当前表的用户功能及其相关的许可证,请点击这里 license_table.csv
 
有一种工具可以扫描现有的用户功能方案的确定 该模块具体的许可证必须与运行程序 新的许可证制度。 ;点击这里 query_licenses 下载这个工具。 ;注意,Perl是需要执行这个工具 从命令提示符。 ;你可以下载最新版本的Perl www.perl.com.  一旦你安装了Perl打开一个命令提示符 导航到你保存的查询许可工具目录 ; 类型“Perl query_licenses.pl - H的开始.
 

功能要求

创建几何模型,周期,或执行其他基本操作,你 必须先加载一个NX的部分文件。当程序运行在一个特定类型的 标签,你必须通过标签的程序正确的类型。为 例如,如果你要查询一个点的坐标,你必须通过一个 标签有点不是一个行或任何其他类型的几何的标签。的 以上是在几乎所有的程序错误条件。这些错误条件 每个程序不重复.

内部程序

许多内部UG OPEN API程序使用的功能ufusr 作为一个切入点。的 ufusr 功能作为一个主要的功能.
 
内部公开的C API程序可以被认为是作为一个用户编写的函数,NX。 要启动的程序的执行,NX加载程序到内存,然后 引用符号ufusr。用户程序的执行,接管 点。在执行结束,程序执行返回语句 将控制返回给NX。在UG OPEN API程序员指南描述 建立内部和外部的程序和描述的示例文件 在开放的C试剂盒提供的。看到“基本部分文件查询”的<章>打开 C API程序员指南。
 
入口点内部程序是通过一个函数或子程序调用 ufusr。
/*
* 内部CUG OPEN API程序
*
* input 输入
* 参数参数传递到UG OPEN API程序
* NX(预留给未来的增强功能)
* parm_len长度参数后实施(5
* 不需要看到所有平台上
* “写作UG OPEN API程序”
*
* output 输出
* retcod用户返回代码(未来的增强)
*/

#include <uf.h>
/*附加包含所需的文件* /

void ufusr(char *param, int *retcod, int parm_len)
{
       /* statement declarations 声明,声明 */
    UF_initialize();
      /* body 体* /
    UF_terminate();
}

 
一旦一个可执行文件加载到内存,它驻留在内存中的 除非你使用NX会话的方法把图像(例如看到功能 ufusr_ask_unload 在用友H的头文件).
 

自动显示

因为内部UG OPEN API的程序在一个NX环境下运行,部分 显示自动完成。对象显示可以抑制和个人 对象显示在uf_disp例程。h头文件等 UF_DISP_set_display and UF_DISP_add_item_to_display.
 
在某些情况下,内部UG OPEN API,一部分必须是积极的(如 几何创建)。活跃的部分可能是以前打开的 交互式NX或一个UG OPEN API检索。 UF_ASSEM_ask_work_part 可用于确定是否一部分 已激活。部分可申请从UG OPEN API或NX.
 

外部程序

外部C程序使用标准C主函数调用Open C API 例程。看到ext_uf_example.C在你的安装目录打开C API为 例外部程序。
 ;
外部UG OPEN API程序编写,编译和链接的,像任何一个正常的 程序。启动和终止的程序语句应该遵循 正常的“C”。
 

外部模型终端I / O

所有的终端I / O应该使用I / O语句提供的 高级语言(例如C函数puts(),getchar(),printf(),等)。
 
如果外部UG OPEN API程序从NX运行在终端调用 Windows,所有的高级语言的I / O将出现在窗口从NX 开始。这个窗口背后可能隐藏着一些其他的NX的窗户 必须是“突然”上被使用。在Windows NT中,没有一个终端 窗口与NX,所以终端I / O是不可能的.
 

没有部分显示

没有显示或可将外部模式做了。创建或任何部分 由外部UG OPEN API程序修改必须检索nx 在对外UG OPEN API已经提交的部分显示。
 ;
在任何数据库例程可以称,现有的一部分,必须创建或 检索(uf_part_new或uf_part_open)工作。部分可以提交 uf_part_save,uf_part_save_as,或uf_part_save_all。
 

UG OPEN API公约

除非另有说明,新UG OPEN API函数是用C和遵循 ANSI C标准。请参阅有关新发布的信 功能变化。
 
除特别注明外,所有新UG OPEN API函数都遵循一个描述性的命名 公约。格式:
 
UF_ABBR_descriptive_name
 
where:
 
UF_ denotes Unigraphics Open C API Function
 
ABBR_ 对功能区的缩写代表
 
descriptive_name 是一个描述性的标题给予提示的功能的目的
 
As an example:
 
UF_PART_close_all 一个函数,落在部分操作 应用程序,关闭所有打开的零件。
 

数据库例程

UG OPEN API有一大套程序创建和修改NX的对象。我们 假设你是熟悉的NX和C语言来防止任何 严重的错误。一些例程返回错误代码,则不。的 程序来创建对象将返回一个对象标识符= null_tag来 显示一个错误。
 ;
<H3></H3 >变量声明 UG OPEN API支持所有的C数据类型。对象标识符(EIDS)应 声明为tag_t限制改变你的计划。
 
字符串长度。长度记录在这本手册是 对,输入或输出的数据是有效的最大字符数 由常规的。
 

数据结构

许多程序需要的数据结构。在大多数情况下,数据结构 在头文件中的记录。然而,也有一些情况下,数据 结构只供内部使用或专有使用只有一个指针 这个结构是宣布用户。
 

Include Files

本文档由原型的函数的头文件组织。 有几个包括提供给用户添加到文件 程序。用户应该包括uf_defs H一般类型。其他的 包含文件应使用根据用户的应用。这些措施包括 文件包含typedef声明,ANSI原型的新的例程和遗产 代码,并指定的应用程序相关的宏。
 

Error Codes

除非另有书面,每一个例程返回一个int,这是错误的 代码。一个返回码0表示成功,和任何其他数字表示 失败。一个错误代码相关的信息可以通过调用 UF_get_fail_message.
 

Handles

在Unigraphics V9,当一个对象有一个已知的对象标识符(EID),EID 与部分保存,将同一次部分 加载。在V10和超越,因为多个部分可以加载一次,该 标签(即开斋节)的对象不能保证会话之间。这个 的原因,“处理”是用来识别的实体之间的会话。援助 应用在开斋节的一些数据文件保存在会话之间, UF_ask_new_tag_of_object 创建返回post-v10标签 对应于一个对象的一部分,只是装V9开斋节。那 标签可以被转换为一个post-v10处理使用 UF_TAG_ask_handle_of_tag.
 

Legacy Routines

一些开放的C程序已将要从公开发布C删除 图书馆。大多数这些例程的老套路,最初用于 支持Fortran代码。<一href =“legacy_routines。HTML文件“>遗产去除 列出这些例程,并要求让几乎所有现有的信息 程序的工作没有源代码的变化。
 

How to Execute Programs

你执行UG OPEN API程序通过选择文件名。在你 成功编译和链接,打开的C API程序执行以下 步骤:
 ;
在NX选择文件——>执行——> NX Open。一个列表框中显示 可执行文件,您以前成功编译和链接。如果你 执行外部程序的书面NX会话不能通过 命令行参数。此外,你无法执行操作 当前交互部分。你可能希望执行外部程序 由于这些原因,命令行。
 

设置你的系统

本节描述了依赖于机器的信息如何安装和使用 Open C在您的系统。使用UG OPEN API,你必须有C或C + + 你的工作站环境的设置。如果这个环境是不成立的,你的 系统管理员必须安装它。详情请参阅:
 
Linux的安装
 
Sun的安装
 
Windows操作系统的安装

编译证书

下面的表指定的编译器版本编译NX本身对每个 公交车站台。UGS公司不保证使用打开任何其他编译器 程序。在一般情况下,平台供应商必须解决任何问题的一个 新建成的NX比编译器。(请参阅发行说明操作系统级别 UGS确实证明。)
 
偶尔供应商过时的编译器或创建新的编译器 随着版本不兼容,建成NX。UGS没有控制权 的发展,虽然厂商通常在确保既得利益 新与旧版本兼容的编译器.
 

C编译器的版本

SUN SVR4
(SUN)

 
SuSE Linux
(LNX64)

 
WIN IA32
(WNTI32)

 
WIN x64
(WNTX64)

 
Sun One Studio 10 GCC 3.3.3 MS VC++ 8.0 SP1 MS VC++ 8.0 SP1

 

C + +编译器版本

SUN SVR4
(SUN)

 
SuSE Linux
(LNX64)

 
WIN IA32
(WNTI32)

 
WIN x64
(WNTX64)

 
Sun One Studio 10 GCC 3.3.3 MS VC++ 8.0 SP1 MS VC++ 8.0 SP1

 

编制和Windows系统

请参阅";Windows操作系统的安装程序文件信息" 在编译/连接微软Visual Studio C++ 或 <一href =“Wnt。HTML # developing_from_command_line”>编译/链接 通过命令行.
 

编译和链接在UNIX系统

ufmenu是一种实用脚本/命令文件,您提供的能力 编辑,编译,连接和运行你的UG OPEN API程序。ufcomp是一个脚本 给你编译程序的能力,和uflink是一个脚本,给 你链接程序的能力。这些脚本只支持UNIX 工作站。看到ufmenu细节, ufcomp 细节 and uflink细节 更多 信息。
 

编译和链接一个UNIX文件

在UNIX系统(Linux和SUN),你可以复制一个模板的makefile(ufun_make_template.ksh)位于 ${UGII_BASE_DIR}/ugopen 目录,编译和链接你的程序。
 
可定制的模板文件编译和链接:内部和 外部,内部或外部的唯一,只开放C API程序。说明 如何使用模板文件中的注释段充分解释 文件。
 
在你定制的模板文件,你要复制或移动文件 它被命名为“中”或“中”,这是标准的名称 make命令预计。或者,你可以用“F”开关与 使命令指定生成文件的名字。
 
模板文件是设计用来与作出命令提供的 该平台的供应商(Linux,或USN)。进一步的信息和文件 使用“人”的关系。