ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:24.70KB ,
资源ID:1748543      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1748543.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(完整3UG二次开发实用教程 第三章.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

完整3UG二次开发实用教程 第三章.docx

1、完整3UG二次开发实用教程 第三章第3章 编程基础3.1 UG/Open API函数3.1.1函数名称的约定UG/Open API 共有两类名称约定。一个是标准的UG/Open API的函数名称约定;另一个是以前版本原有的名称约定。1、标准名称约定格式:UF_说明: UF_,user funciton的简写,表示该函数为UG/Open API函数; ,应用或模块的名称缩写。例如modl和disp分别是Modeling模块和Display功能的名称缩写; ,表示其实现功能的语言描述,一般由下划线分开的动词和名词(或词组)组成。常用的动词有:ask(查询)、create(创建)、edit(编辑)、

2、set(设置)、delete(删除)等。例如:UF_MODL_create_block1()为创建立方体的函数;UF_DISP_set_highlight()是高亮显示对象的函数;(2)非标准名称约定格式:uc 和uf说明:代表UG/Open API C程序,通常是四位数或三位数接一个字母。例如:uc1601是一个提示信息函数。3.1.2 函数参数的约定UG/Open API提供的函数遵守ANSI/ISO C的标准,并以下列格式在头文件中提供函数原型:(变量列表);返回数据类型通常是C数据类型或UG/Open API自定义数据类型。参数的输入输出方式有3种:I(Input)、O(Output)

3、或OF(Output Free),说明见表3-1。表3-1参数输入方式说明元 素描 述I表示参数为输入方式,参数在使用前必须赋值O表示参数为输出方式,使用前无须赋值OF表示参数为输出方式,且使用后需要释放内存。UG/Open API提供的常用释放内存函数有UF_free()、UF_free_string()和UF_STYLER_free_value()等,至于选择哪种释放函数需视具体情况而定。例如:函数UF_PART_open()名称:UF_PART_open使用环境: internal & external语法格式: int UF_PART_open(char *part_name,tag_

4、t *part,UF_PART_load_status_t *error_status);描述:加载一个UG部件文件到UG的界面环境中,并把它设为工作和当前显示部件,该函数的描述见表3-2。表3-2 函数UF_PART_open()参数描述参数输入输出类型描述part_name输入char *要打开的部件文件名part输出tag_t *打开部件的标识,当打开部件文件失败时为NULL_TAGerror_status 输出UF_PART_load_status_t *当加载部件失败时该结构中将包含错误代码和部件文件名称,使用结束后应使用函数UF_free_string_arry()和UF_free

5、()释放内存return 输出int 返回代号: 为0时表示正常;非0时表示错误代号3.2 UG/Open API的数据类型除了C语言标准的数据类型外,UG/Open API还提供了一些自定义的数据类型,如tag_t类型、结构类型(structure type)、枚举类型(enum type)、联合类型(union type)与指针类型(pointer type)等,它们统一用后缀“_t”表示,且这些数据类型的指针用反缀“_p_t”命名表示。数据类型约定如表3-3所示:表3-3 数据类型约定后缀描 述_t数据类型(data type)_p_t数据类型的指针(pointer to data ty

6、pe)_s结构标识(structure tag)_u_t联合类型(union type)_u_p_t联合类型的指针(pointer to a union type)_f_t函数指针(pointer to a function)3.2.1 tag_t类型UG/Open API 使用最多的数据类型是tag_t ,在UG/Open API的uf_defs.h中定义如下:typedef unsigned int tag_t ,*tag_p_t;在UG环境中,tag_t 是UG对象的句柄,即UG对象模型的唯一标识。它是一种不重复的无符号整型数值,主要用于标识应用程序中的对象,如部件、草图、曲线、属性和表

7、达式等。UG应用程序只能访问句柄,而不能直接访问句柄所指示的实际对象。程序一般通过调用API函数获取句柄,并且在其他API函数中使用这个句柄,以引用它指示的对象。在此过程中,句柄的实际值对程序来说是无关紧要的。此外,tag_p_t是指向tag_t数据类型的指针。以部件对象为例,下面的代码首先获取工作部件的tag_t值,然后获取该句柄所引用部件对象的文件名。tag_t tWorkPart;tWorkPart = UF_ASSEM_ask_work_part();3.2.2 结构类型UG/Open API采用C语言的语法定义了一些常用的结构类型,将相应联系的不同类型数据封装在一起使用,这些结构类型

8、用后缀“_s”表示,例如:struct UF_STYLER_item_value_type_sint reason;const char* item_id;int subitem_index;int count;int item_attr;int indicator;UF_STYLER_value_t value;typedef struct UF_STYLER_item_value_type_s UF_STYLER_item_value_type_t, *UF_STYLER_item_value_type_p_t;结构体UF_STYLER_item_value_type_s封装了对话框控件的

9、基本属性,如reason、item_id和value等。UG/Open API使用关键词typedef将该结构类型定义为新类型UF_STYLER_item_value_type_t,用户可以使用它定义结构变量,然后引用结构体内的数据成员,例如:UF_STYLER_item_value_type_t data;UF_STYLER_ask_value(dialog_id, &data);UF_STYLER_free_value( &data );3.2.3 枚举类型枚举类型将变量的值一一列举出来,变量的值只限于列举出来的值的范围。UG/Open API采用C语言的语法定义了一些常用的枚举类型,使用

10、后缀“_e”表示。以枚举类型UF_ASSEM_load_status_e为例,下面给出其详细定义:enum UF_ASSEM_load_status_eUF_ASSEM_ok,UF_ASSEM_suppressed,UF_ASSEM_not_loaded,UF_ASSEM_instance_suppressed;typedef enum UF_ASSEM_load_status_e UF_ASSEM_load_status_t;枚举类型UF_ASSEM_load_status_e表示部件在装配体中的状态。UG/Open API使用typedef关键词将该枚举类型定义为新类型UF_ASSEM_l

11、oad_status_t,例如:char sPartPath = “E:Examplepart.prt”;tag_t tPart = NULL_TAG;UF_PART_load_status_t error_status;UF_PART_open(sPartPath, &tPart, &error_status);3.2.4 联合类型有时需要将不同数据类型的变量放在同一段内存单元中,这种使不同变量占用同一段内存的结构类型称为联合类型。联合类型与结构类型的定义形式相似,但含义不同。联合类型变量所占的内存长度等于其内部最长数据成员的长度,而结构类型变量所占的内存长度则是其各数据成员所占内存长度之和

12、。UG/Open API采用C语言的语法定义了一些常用的联合类型,使用后缀“_u”表示。以联合类型UF_STYLER_value_u为例,下面给出其详细定义:union UF_STYLER_value_uchar *string;char *strings;int integer;int *integers;double real;double *reals;UF_UI_selection_p_t selection;UF_STYLER_notification_p_t notify;UF_UI_attachment_t attach;UF_UI_option_toggle_t option_

13、toggle;typedef union UF_STYLER_value_u UF_STYLER_value_t;联合体UF_STYLER_value_u封装了对话框对话框控件的属性值,如string、integer和real等。UG/Open API使用typedef关键词将该联合类型定义为新类型UF_STYLER_value_t,它是UF_STYLER_item_value_type_t中的数据成员value的类型,例如:UF_STYLER_item_value_type_t data;double rValue;sel_data.item_id = REAL_BUTTOM_DIAMETE

14、R;UF_STYLER_ask_value ( dialog_id, &sel_data );rValue = data.value.real;3.3 UG对象类型及基本操作UG中的所有对象都是通过唯一的tag_t值进行标识,这些对象大致可以分为部件对象、UF对象、表达式、链表和属性。3.3.1 部件对象部件对象是UG最基本的操作对象之一,不仅包含了零件的几何信息,而且更包含了大量的非几何信息,非几何信息包括:创建部件的计算机类型;保存部件的UG版本;部件的历史信息(例如部件文件的保存记录等);状态、描述和用户区的可永久保存在部件文件中的信息。UG/Open API提供的访问和操作部件文件的函

15、数包括部件文件的创建、打开、关闭、保存和信息的查询等。表3-4 对部件对话操作的函数函数描述UF_OBJ_cycle_objs_in_part()在部件中查询对象UF_ATTR_ask_part_attrs()访问部件的属性UF_PART_close()UF_PART_reopen()关闭和再打开部件UF_PART_ask_part_name()获取部件的文件名UF_PART_ask_customer_area()UF_PART_ask_description()UF_PART_ask_status()查询其他信息,包括:查询用户定义的数据、部件文件的描述信息,部件文件的状态信息UF_PART_ask_part_history()查询部件文件的历史UF_PART_ask_compression_flags()UF_PART_set_com

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1