- 1、本文档共62页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UG软件二次开发课程第二课
* 标准命名法 函数名称使程序设计人员很容易知道函数的含义及所属库函数 优点 * UF函数命名规则 固定命名法 是早期版本所命名的UF函数 如 uc1601 ( ); uf5943 ( ); * 固定命名法 缺点 函数名称使程序设计人员很难明了函数的含义及所属库函数 * 忠 告 固定命名法在后面的版本中有部分保留,随着版本升级较容易被放弃。 建议:使用UG的函数时尽量避免使用此类函数,以保证开发程序的延续性。 * UF的数据结构标识 UF是完全以C语言来实现的,其中大量运用了C的结构、枚举、指针和预定义常数等。 一般从后缀上已经对它们的类型进行了明确的标识 * UF的数据结构标识 _t 原始数据结构类型 _p_t 指向该数据结构的指针类型 _s 结构类型 _u_t 联合类型 _u_p_t 指向联合的指针 _f_t 指向函数的指针 * 最常用的UF数据类型 tag_t 它是任何确定存在的UG对象的唯一标识,这里对象是指UG的Part、Object、Feature、Expression等 * tag_t 定义 typedef unsigned int tag_t, *tag_p_t; tag_t其实只是一个整数型,用来作为UG实体的id(唯一标识码)。 * UF中有一个特殊的Tag-NULL_TAG 是用来表示暂时不标识任何对象的Tag,相当于初值为零。 * 最常用的UF数据类型 uf_list_p_t 它表示一个UG实体链,是一个结构,由两个成员组成。 eid 表示链中的一个实体, * next 表示指向链中下一项的指针 * uf_list_p_t 定义 typedef struct uf_list_s *uf_list_p_t; struct uf_list_s { tag_t eid ; /* Object ID */ struct uf_list_s *next;/* Pointer to the next OID in the list */ }; * 路 标 这些结构体定义可以在UGS /ugopen中的uf_defs.h文件中找到 。 * Object、Body和Feature的区别 在UG中对象包含不同的类型,有Part、Object、Feature和Body等 使用UG/OPEN API中的函数时需要用到这些类型,因此有必要分清它们的概念及范围。 * Object、Body和Feature的区别 Feature 它是将用户对UG实体的所有操作过程都以特定(Feature)的方式记录下来,利用UF函数可以从Feature中得到其body。 * Feature 一个实体往往可以拥有多个特征,如一个block经过倒角、钻孔后,那么在这个实体上就存在了两个特征,并且按照时间先后顺序排列。 * Object Object:是指基准轴datum axis、基准面datum plane、草图sketch、直线line、圆circle、二次曲线conic和样条曲线spline等二维元素。 利用UF函数可以从Object中得到一个Feature。 * Body Body 指UG三维实体 利用UF函数可以从Body中得到所有在其上操作过的Feature * 5个基本实体特征 BLOCK CYLINDER CONE SPHERE TUBE * 操作对象 在使用UF函数时必须分清它们是针对Body操作、针对Object操作,还是针对Feature操作。 操作对象? * 操作对象 在UF中提供了Feature、Body和Object相互转换的UF函数 哇!它们之间可 相互转换 * 对象转换 从特征feature中取出body UF_MODL_ask_feat_body 从object中取出特征feature 从body中取出特征链features 从特征feature中取出object * UF的License 所有的UF程序在运行时都需要UG/Open API License的支持 因此程序必须正确地初始化以获得一个License,终止时也要归还曾占用的License以供下次调用UF函数时使用。 * UF的License使用 int UF_initialize();/*UF初始化*/ int UF_terminate();/*UF终止化*/ License的初始化和终止化的操作使用以下函数: * UF的License使用 int UF_init
文档评论(0)