UG二次开发CAD系统MFC的调用方法研究
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
UG应用开发程序采用了动态链接库 (Dynam in L ink L ibrary, DLL )技术 ,最终生成的结果都是 DLL 文
52
CAD /CAE /CAPP /CAM
现代制造工程 2007年第 2期
件 。UG内部应用程序开发规定以动态链接库方式对 其进行功能扩展和应用开发 。在 V isualC ++中将应 用程序编译链接生成动态链 接库 文 件 (后 缀 名 dll) , UG 启动时会自动加载动态链接 库文件供菜 单使 用 , 从而 实 现了应用开发程序与 UG平 台的无缝集成 。在 UG进程 中 ,采 用菜 单 触 发 方 式 调 用 图 1 DLL调用过程 DLL 的过程 ,如图 1所示 。
动 UG,相应开发文件会自动加载 。
213 程序示例及分析
根据上述方法 ,笔者制做了一个标准渐开线圆柱
直齿轮设计系统 。齿轮设计系统的流程如图 2 所示 。
本系统的功能是用户点击后 ,首先进入齿轮初始参数
输入界面 ,根据用户输入的初始参数和条件来加载不
同的数据库进入齿轮强度校核模块 ,再根据计算来实
第一类方法利用 UG提供的参数化功能模块进行 二次开发 ,虽然能够直观 、容易地建立零件库 ,但是不 利于数据库的管理 , 对零件库的交互式访问很不方 便 ,并且零件库不能共享 , 限制了后续的 PDM、CAM 和 CAPP等相关系统的开发 。对于企业来说 ,系列化 的产品零件种类繁多 ,数量庞大 ,用第一类方法所开 发的参数化设计模块不能满足使用要求 。应用第二 类方法可以很好地克服第一类方法的缺点 ,所创建的 零件库独立于 UG环境 ,便于数据库的查询 、添加 、删 除等操作 ,而且在此基础上可以扩充创建产品的信息 数据库 ,为异地协同设计的开发 、产品数据信息管理 ( PDM )等系统的开发提供了良好的接口 。本系统就 是综合考虑了上述原因采用了第二类方法 ,并把所需 数据全部放在数据库中 ,采用用户交互操作的方式 , 满足了用户的需求 。 21312 数据库模块
D irectoris选项卡 ,分别在 L ibraryfiles和 Include files中
添加 UG根目录下 UGOPEN 文件夹所在的路径 。
6) 编 制 程 序 。首 先 要 在 应 用 程 序 中 添 加 UG /
Open函数入口 :
extern" C " D llExport void ufsta ( char 3 param , int 3 returnCord, int
2) UG /Open AP I ( App lication Programm ing Inter2 face)又称 U ser Function,是 UG与外部应用程序之间 的接口 ,是一系列函数和过程的集合 。它允许用户访 问并影响 UG对象模型 (ObjectModel)的程序集 ;支持 C /C ++语言 ,可充分发挥 C语言编译 ,运行效率高 。
2)数据结构的实现 ,同目前很多 W indow s开发工 具都提供的链表 、映射 、数组等类相比 , UG /Open中相 关的内容太少 ,想实现复杂的数据结构非常困难 。
3)用户界面的开发 ,同目前流行的 W indow s应用 程序开发工具相比 , U IStyler中包含的控件较少 ,功能 有限 ,受到的局限太大 ,使用起来很不方便 ,有的功能 甚至难以实现 。
现零件的强度校核和选型 ,同时将数据信息传递给建
模模块 ,再利用函数驱动实现三维模型的自动输出。
界面设计采用了模式对话框 ,利用 Developer Studio工
具使得在 W indow s程序w s标准控件相对应的一组控
件 ,设计非常方便 。本文将此设计关键模块分为参数
AfxMessageBox ( fail_message, 1) ;
} UF_term inate ( ) ; ∥退出 UG环境
re tu rn;
}
可以采用 UG /Open AppW izard创建一个项目 ,把
主函数复制过来或者直接把 UG提供的一个例子的主
函数复制过来 。
7)编译连接后生成动态链接库文件 ( 3 . dll) ,启
3) UG /Open M enuScrip t是一种定义 UG菜单的脚 本语言 ,是以. men 为扩展名的纯文本文件 。它支持 UG主菜单和快速弹出式菜单的设计和修改 ,通过它 可以改变 UG菜单的布局实现菜单用户化 。
4) UG /Open U IStyler是开发 UG对话框的可视化 工具 ,生成的对话框能与 UG集成 ,让用户更方便 、更 高效地与 UG进行交互操件 。利用这个工具可以避免 复杂的图形用户接口 GU I的编程 ,直接将对话框中的 基本控件组合生成功能不同的对话框 。
Abstract: Introduced the secondary development based UG and the p rincip le of its work, how emphatically did analyze transferred M icrosoft Fundament Class(M FC) in UG /Open AP I the method and uses the ADO kind of visit database, and through a comp lete examp le exp lained how used UG /Open AP I,M enuScrip t,M FC carries on the unit exp loitation the CAD system. Key words:UG /Open AP I; Secondary development; ADO (Active Data Object) ; M FC
赵韩 ,张冰战 ,朱可 (合肥工业大学机械与汽车工程学院 ,合肥 230009)
摘要 :介绍 UG二次开发工具及其工作原理 ,着重分析在 UG /Open AP I中对 M FC (M icrosoft Fundament Class)方法的调用 和利用 ADO (Active Data Object)类访问数据库 ,并通过一个完整的例子来说明如何利用 UG /Open AP I, M enuScrip 和 M FC联合开发 CAD 系统 。 关键词 : UG /Open AP I;二次开发 ; ADO; M FC 中图分类号 : TP391. 7 文献标识码 : A 文章编号 : 1671—3133 (2007) 02—0052—04
rlen) { if (UF_initialize ( ) !
= 0) return; ∥初始化 UG环境来获取执行许 可权限
int error2code = 0
if ( ( error_code =UF_MB _add_actions( action_table) ) ! = 0) { char fail_message[ 133 ] = " " ; UF_get_fail_message ( error_code, fail_message) ; ∥获取错误信息
0 引言
Unigraphics(简称 UG)是美国 UGS公司开发的面 向制造业的高端 CAD /CAM /CAE软件 ,由于其强大的 实体造型 、曲面造型 、虚拟装配和产生工程图等设计 功能 ,而且在设计中可以进行有限元分析 、机构运动 分析 、运动学分析和仿真模拟 ,国内许多企业都将它 作为首选软件 。另外 ,它所提供的开发语言 UG /Open AP I和 UG /Open GR IP功能强大 、简单易学 。但是 UG 软件与其他 CAD 软件一样也是一个通用软件 ,没有提 供专用产品所需要的完整的计算机辅助设计 /制造功 能 。由于机械产品的千变万化 ,需要针对具体对象在 选用的 CAD 软件平台上进行二次开发 ,从而设计出界 面友好 、功能强大和使用方便的系统 。
W izard ( dll)向导 。
2)选择应用程序类型为 Regular DLL w ith M FC
statically linked。
3)结束创建应用程序创建的过程 。
4)将 UG库文件 libufun. lib和 libugopenint. lib加
入到所创建的项目 。
5)配置路径选项 。选择 Tools— > ZOp tions,选择
1 UG 二次开发工具及其工作原理
UG /Open是一系列 UG开发工具的总称 ,是 UG 软件为用户或者第三方开发人员提供的最主要的开 发工具 ,利用该模块可对 UG系统进行用户化剪裁和 开发 ,满足用户的开发需求 。它主要由 UG /Open AP I、 UG /Open GR IP、UG /Open M enuScrip t、UG /Open U I2
1)字符串处理 , UG /Open AP I基本上采用的是标 准 C的字符串函数 ,使用起来非常麻烦 ,也很容易出 现错误 。由于在开发过程中 UG /Open AP I函数需要 大量使用字符串 ,如果能使用一个 C ++的类来处理字 符串 ,例如 M FC中提供的 Cstring,将会大大降低开发 的周期 。
Stylet等 4个部分组成 。
1) UG /Open GR IP ( Graphics Interactive Program2 m ing)是 UG内嵌的专用图形交互编程语言 ,用户通过 GR IP语言编程能够自动完成在 UG下进行的绝大部 分操作 ,如实体建模 、工程制图 、制造加工 、系统参数 控制 、文件管理 、图形修改等 。
Research about M FC in the secondary developm en t ba se on UG
Zhao Han, Zhang B ing2zhan, Zhu Ke ( School of M achinery and Automobile Engineering, Hefei University of Technology, Hefei 230009, CHN )
化建模模块和数据库访问模块 ,以下分别加以介绍 。
53
现代制造工程 2007年第 2期
CAD /CAE /CAPP /CAM
图 2 齿轮设计流程图
21311 参数化建模模块 此模块是校核完成后 ,根据从数据库中读出的信
息进行处理 ,传送给建模模块实现三维模型的输出 。 参数化设计是在设计对象结构比较定型的基础上 ,用 一组参数来表示尺寸值和约束关系 ,其核心是尺寸驱 动 。基于参数化技术的 UG二次开发的方法可分为两 类 ,第一类是利用 UG提供的参数化功能模块进行二 次开发 ,主要有以下方法 :关系表达式 ( Exp ression)法 、 电子表格 ( Sp readsheet)法 、用户自定义特征 ( udf)法和 知识熔接 ( know ledge fusion)法等 。第二类是利用 UG 提供的系统开发环境应用程序接口编程进行二次开 发 ,其核心就是直接用函数驱动生成模型 。
本系统的功能是用户点击后首先进入齿轮初始参数输入界面根据用户输入的初始参数和条件来加载不同的数据库进入齿轮强度校核模块再根据计算来实现零件的强度校核和选型同时将数据信息传递给建模模块再利用函数驱动实现三维模型的自动输出
现代制造工程 2007年第 2期
CAD /CAE /CAPP /CAM
UG二次开发 CAD 系统 M FC的调用方法研究
2 UG /O pen AP I对 M FC 调用方法研究
211 UG /Open AP I调用 M FC的原因 在使用 UG /Open AP I进行二次开发时 ,一般采用
UG /Open AP I、M enuScrip t和 U IStyler联合开发 ,即用 U IStyler编辑对话框 ,用 M enuScrip t编辑菜单和工具 条 ,用 UG /Open AP I程序完成所需的操作动作 。但是 在开发过程中发现有很多不便之处 ,主要表现如下 。
UG应用程序基本上都是采用 UG提供的应用程 序向导 UG /Open AppW izard创建的 ,该向导创建的应
用程序本身并不支持 M FC,为使应用程序支持 M FC
必须抛弃这种应用程序创建方式 , 以本设计系统为
例 ,接口技术实现过程如下 。
1)创建工程时在项目列表框中要择 MFC App2
4)在建库过程中发现 ,利用 U IStyler所生成的模 板文件中 ,只提供了图形交互界面的接口 ,而没有提 供与数据库的接口 。
如果在二次开发中 , 能够调用 M icrosoft Founda2 ment C lass(M FC)的资源 ,那么以上问题就可以得到很 好的解决 。尽管 UG /Open应用程序一直采用 VC ++ 作为编译器 ,但是由于 UG /Open AP I中没有直接提供 对 M FC 的支持 ,所以在 UG开发中还不能直接调用 M FC资源 。因此 , M FC 与 UG /Open之间的接口技术 就成了解决问题的关键 。 212 UG /Open AP I调用 M FC的实现方法
52
CAD /CAE /CAPP /CAM
现代制造工程 2007年第 2期
件 。UG内部应用程序开发规定以动态链接库方式对 其进行功能扩展和应用开发 。在 V isualC ++中将应 用程序编译链接生成动态链 接库 文 件 (后 缀 名 dll) , UG 启动时会自动加载动态链接 库文件供菜 单使 用 , 从而 实 现了应用开发程序与 UG平 台的无缝集成 。在 UG进程 中 ,采 用菜 单 触 发 方 式 调 用 图 1 DLL调用过程 DLL 的过程 ,如图 1所示 。
动 UG,相应开发文件会自动加载 。
213 程序示例及分析
根据上述方法 ,笔者制做了一个标准渐开线圆柱
直齿轮设计系统 。齿轮设计系统的流程如图 2 所示 。
本系统的功能是用户点击后 ,首先进入齿轮初始参数
输入界面 ,根据用户输入的初始参数和条件来加载不
同的数据库进入齿轮强度校核模块 ,再根据计算来实
第一类方法利用 UG提供的参数化功能模块进行 二次开发 ,虽然能够直观 、容易地建立零件库 ,但是不 利于数据库的管理 , 对零件库的交互式访问很不方 便 ,并且零件库不能共享 , 限制了后续的 PDM、CAM 和 CAPP等相关系统的开发 。对于企业来说 ,系列化 的产品零件种类繁多 ,数量庞大 ,用第一类方法所开 发的参数化设计模块不能满足使用要求 。应用第二 类方法可以很好地克服第一类方法的缺点 ,所创建的 零件库独立于 UG环境 ,便于数据库的查询 、添加 、删 除等操作 ,而且在此基础上可以扩充创建产品的信息 数据库 ,为异地协同设计的开发 、产品数据信息管理 ( PDM )等系统的开发提供了良好的接口 。本系统就 是综合考虑了上述原因采用了第二类方法 ,并把所需 数据全部放在数据库中 ,采用用户交互操作的方式 , 满足了用户的需求 。 21312 数据库模块
D irectoris选项卡 ,分别在 L ibraryfiles和 Include files中
添加 UG根目录下 UGOPEN 文件夹所在的路径 。
6) 编 制 程 序 。首 先 要 在 应 用 程 序 中 添 加 UG /
Open函数入口 :
extern" C " D llExport void ufsta ( char 3 param , int 3 returnCord, int
2) UG /Open AP I ( App lication Programm ing Inter2 face)又称 U ser Function,是 UG与外部应用程序之间 的接口 ,是一系列函数和过程的集合 。它允许用户访 问并影响 UG对象模型 (ObjectModel)的程序集 ;支持 C /C ++语言 ,可充分发挥 C语言编译 ,运行效率高 。
2)数据结构的实现 ,同目前很多 W indow s开发工 具都提供的链表 、映射 、数组等类相比 , UG /Open中相 关的内容太少 ,想实现复杂的数据结构非常困难 。
3)用户界面的开发 ,同目前流行的 W indow s应用 程序开发工具相比 , U IStyler中包含的控件较少 ,功能 有限 ,受到的局限太大 ,使用起来很不方便 ,有的功能 甚至难以实现 。
现零件的强度校核和选型 ,同时将数据信息传递给建
模模块 ,再利用函数驱动实现三维模型的自动输出。
界面设计采用了模式对话框 ,利用 Developer Studio工
具使得在 W indow s程序w s标准控件相对应的一组控
件 ,设计非常方便 。本文将此设计关键模块分为参数
AfxMessageBox ( fail_message, 1) ;
} UF_term inate ( ) ; ∥退出 UG环境
re tu rn;
}
可以采用 UG /Open AppW izard创建一个项目 ,把
主函数复制过来或者直接把 UG提供的一个例子的主
函数复制过来 。
7)编译连接后生成动态链接库文件 ( 3 . dll) ,启
3) UG /Open M enuScrip t是一种定义 UG菜单的脚 本语言 ,是以. men 为扩展名的纯文本文件 。它支持 UG主菜单和快速弹出式菜单的设计和修改 ,通过它 可以改变 UG菜单的布局实现菜单用户化 。
4) UG /Open U IStyler是开发 UG对话框的可视化 工具 ,生成的对话框能与 UG集成 ,让用户更方便 、更 高效地与 UG进行交互操件 。利用这个工具可以避免 复杂的图形用户接口 GU I的编程 ,直接将对话框中的 基本控件组合生成功能不同的对话框 。
Abstract: Introduced the secondary development based UG and the p rincip le of its work, how emphatically did analyze transferred M icrosoft Fundament Class(M FC) in UG /Open AP I the method and uses the ADO kind of visit database, and through a comp lete examp le exp lained how used UG /Open AP I,M enuScrip t,M FC carries on the unit exp loitation the CAD system. Key words:UG /Open AP I; Secondary development; ADO (Active Data Object) ; M FC
赵韩 ,张冰战 ,朱可 (合肥工业大学机械与汽车工程学院 ,合肥 230009)
摘要 :介绍 UG二次开发工具及其工作原理 ,着重分析在 UG /Open AP I中对 M FC (M icrosoft Fundament Class)方法的调用 和利用 ADO (Active Data Object)类访问数据库 ,并通过一个完整的例子来说明如何利用 UG /Open AP I, M enuScrip 和 M FC联合开发 CAD 系统 。 关键词 : UG /Open AP I;二次开发 ; ADO; M FC 中图分类号 : TP391. 7 文献标识码 : A 文章编号 : 1671—3133 (2007) 02—0052—04
rlen) { if (UF_initialize ( ) !
= 0) return; ∥初始化 UG环境来获取执行许 可权限
int error2code = 0
if ( ( error_code =UF_MB _add_actions( action_table) ) ! = 0) { char fail_message[ 133 ] = " " ; UF_get_fail_message ( error_code, fail_message) ; ∥获取错误信息
0 引言
Unigraphics(简称 UG)是美国 UGS公司开发的面 向制造业的高端 CAD /CAM /CAE软件 ,由于其强大的 实体造型 、曲面造型 、虚拟装配和产生工程图等设计 功能 ,而且在设计中可以进行有限元分析 、机构运动 分析 、运动学分析和仿真模拟 ,国内许多企业都将它 作为首选软件 。另外 ,它所提供的开发语言 UG /Open AP I和 UG /Open GR IP功能强大 、简单易学 。但是 UG 软件与其他 CAD 软件一样也是一个通用软件 ,没有提 供专用产品所需要的完整的计算机辅助设计 /制造功 能 。由于机械产品的千变万化 ,需要针对具体对象在 选用的 CAD 软件平台上进行二次开发 ,从而设计出界 面友好 、功能强大和使用方便的系统 。
W izard ( dll)向导 。
2)选择应用程序类型为 Regular DLL w ith M FC
statically linked。
3)结束创建应用程序创建的过程 。
4)将 UG库文件 libufun. lib和 libugopenint. lib加
入到所创建的项目 。
5)配置路径选项 。选择 Tools— > ZOp tions,选择
1 UG 二次开发工具及其工作原理
UG /Open是一系列 UG开发工具的总称 ,是 UG 软件为用户或者第三方开发人员提供的最主要的开 发工具 ,利用该模块可对 UG系统进行用户化剪裁和 开发 ,满足用户的开发需求 。它主要由 UG /Open AP I、 UG /Open GR IP、UG /Open M enuScrip t、UG /Open U I2
1)字符串处理 , UG /Open AP I基本上采用的是标 准 C的字符串函数 ,使用起来非常麻烦 ,也很容易出 现错误 。由于在开发过程中 UG /Open AP I函数需要 大量使用字符串 ,如果能使用一个 C ++的类来处理字 符串 ,例如 M FC中提供的 Cstring,将会大大降低开发 的周期 。
Stylet等 4个部分组成 。
1) UG /Open GR IP ( Graphics Interactive Program2 m ing)是 UG内嵌的专用图形交互编程语言 ,用户通过 GR IP语言编程能够自动完成在 UG下进行的绝大部 分操作 ,如实体建模 、工程制图 、制造加工 、系统参数 控制 、文件管理 、图形修改等 。
Research about M FC in the secondary developm en t ba se on UG
Zhao Han, Zhang B ing2zhan, Zhu Ke ( School of M achinery and Automobile Engineering, Hefei University of Technology, Hefei 230009, CHN )
化建模模块和数据库访问模块 ,以下分别加以介绍 。
53
现代制造工程 2007年第 2期
CAD /CAE /CAPP /CAM
图 2 齿轮设计流程图
21311 参数化建模模块 此模块是校核完成后 ,根据从数据库中读出的信
息进行处理 ,传送给建模模块实现三维模型的输出 。 参数化设计是在设计对象结构比较定型的基础上 ,用 一组参数来表示尺寸值和约束关系 ,其核心是尺寸驱 动 。基于参数化技术的 UG二次开发的方法可分为两 类 ,第一类是利用 UG提供的参数化功能模块进行二 次开发 ,主要有以下方法 :关系表达式 ( Exp ression)法 、 电子表格 ( Sp readsheet)法 、用户自定义特征 ( udf)法和 知识熔接 ( know ledge fusion)法等 。第二类是利用 UG 提供的系统开发环境应用程序接口编程进行二次开 发 ,其核心就是直接用函数驱动生成模型 。
本系统的功能是用户点击后首先进入齿轮初始参数输入界面根据用户输入的初始参数和条件来加载不同的数据库进入齿轮强度校核模块再根据计算来实现零件的强度校核和选型同时将数据信息传递给建模模块再利用函数驱动实现三维模型的自动输出
现代制造工程 2007年第 2期
CAD /CAE /CAPP /CAM
UG二次开发 CAD 系统 M FC的调用方法研究
2 UG /O pen AP I对 M FC 调用方法研究
211 UG /Open AP I调用 M FC的原因 在使用 UG /Open AP I进行二次开发时 ,一般采用
UG /Open AP I、M enuScrip t和 U IStyler联合开发 ,即用 U IStyler编辑对话框 ,用 M enuScrip t编辑菜单和工具 条 ,用 UG /Open AP I程序完成所需的操作动作 。但是 在开发过程中发现有很多不便之处 ,主要表现如下 。
UG应用程序基本上都是采用 UG提供的应用程 序向导 UG /Open AppW izard创建的 ,该向导创建的应
用程序本身并不支持 M FC,为使应用程序支持 M FC
必须抛弃这种应用程序创建方式 , 以本设计系统为
例 ,接口技术实现过程如下 。
1)创建工程时在项目列表框中要择 MFC App2
4)在建库过程中发现 ,利用 U IStyler所生成的模 板文件中 ,只提供了图形交互界面的接口 ,而没有提 供与数据库的接口 。
如果在二次开发中 , 能够调用 M icrosoft Founda2 ment C lass(M FC)的资源 ,那么以上问题就可以得到很 好的解决 。尽管 UG /Open应用程序一直采用 VC ++ 作为编译器 ,但是由于 UG /Open AP I中没有直接提供 对 M FC 的支持 ,所以在 UG开发中还不能直接调用 M FC资源 。因此 , M FC 与 UG /Open之间的接口技术 就成了解决问题的关键 。 212 UG /Open AP I调用 M FC的实现方法