UG的二次开发工具

合集下载

(完整)1_UG二次开发实用教程 第一章

(完整)1_UG二次开发实用教程 第一章

第1章二次开发应用初步UG/NX是当今世界上最先进和高度集成的、面向制造行业的CAD/CAE/CAM软件系统,可用于产品的整个开发过程,包括产品概念设计、建模、分析和加工。

UG/NX以其强大的设计和加工功能而著称,可以支持目前市场上销售的不同厂家的所有工作站及微机平台,广泛应用于通用机械、模具、汽车及航空航天领域,被很多世界著名公司选定为企业计算机辅助设计、分析、制造的标准。

从20世纪60年代起UG就一直代表着工程制造业CAD/CAM软件产品的最高水平。

20世纪90年代,UG进入中国市场,受到广大CAD/CAM用户的欢迎。

UG在中国的用户已超过1000多家,装机量达到350 多套。

这是因为UG是一个集成化、全面、一体的软件,它包括设计、加工、分析和最流行的产品数据管理(PDM),给企业提供了一个全面的解决方案。

1.1 CAD软件的二次开发随着CAD应用领域的不断扩大和应用水平的不断提高,用户需求与CAD系统规模之间的矛盾日益增加,没有一个CAD系统能够完全满足用户的各种需求。

作为商品化的CAD软件产品,是否拥有一个开放的体系结构,是衡量该软件的优劣性、适用性和生命力的重要标志,而是否拥有一个开发简便、运行高效的二次开发平台又是开放式体系结构的核心和关键。

目前,主流的CAD软件都具有用户定制功能并提供二次开发工具。

通过CAD软件的二次开发工具可以把商品化、通用化的CAD系统用户化、本地化、即以CAD系统为基础平台,在软件开发商所提供的开发环境与编程接口基础之上,根据自身的技术需要研制开发符合相关标准和适合企业实际应用的用户化、专业化、知识化、集成化软件,以进一步提高产品研发的效率。

在通用CAD基础上融入专业知识构建专用CAD系统是当前深化CAD应用的潮流。

把用户的设计思想转化为特定的新功能需要以下基本要素,这些基本要素构成了CAD软件二次开发平台的基本结构:(1)通用CAD软件——管理层。

通用CAD软件是整个开发的基础,是二次开发应用程序的宿主。

UG二次开发技术

UG二次开发技术
新建一个文件夹,在此文件夹下建立三个子文件夹 startup、application、udo,并把这个文件夹的路径(如 D:\test)写入UGS180\UGII\menus\custom_dirs.dat文件中
将路径写入custom_dirs.dat文件
*.dlg,*.dl l
*.men
谢 谢!
UG/OPEN API
利用UG/OPEN API 用户可以根据自己的需要 创建动态链接库文件(*.dll),通过下列两 种方式启动:
A、由自定义菜单或工具栏调 用
B、由File->Execute UG/Open-> User Function调用
UG/OPEN MenuScript
MenuScript模块主要用于制作菜单,用户按照其语法创建 *.men文件并放在指定的目录内,UG启动时可以自动加载。
UIStyler启动菜单
UIStylert提供的控件
UG/OPEN UIStyler
对话框制作完成保存后,生成一个 C语言源文件(*.c文件)、一个C 语言头文件(*.h文件)和一个UG 对话框文件(*.dlg文件)。利用 生成的*.c和*.h文件再与UG/OPEN API相结合使用,编制成能实现某 项功能的动态链接库文件。
2、应用范围
同类零件编程、计算和分析、绘图、零件标准化、 数据访问等。 3、使用步骤
编写GRIP源程序 修改
编译程序
链接
执行
UG/OPEN GRIP
启动GRIP
GRIP开发环境
执行GRIP程序
UG/OPEN GRIP
GRIP源文件 执行结果
UG/OPEN API
1、可实现功能
对UG模型文件进行操作,包括创建UG模型、查询 模型对象、建立并遍历装配体、创建工程图等。

UG二次开发之Open和NXOpen

UG二次开发之Open和NXOpen

UG二次开发之Open和NXOpenUG的二次开发有两套系统,一套叫Open,一套叫NXOpen。

Open主要是造型方面的功能,NXOpen比较全面。

Open原来支持的是C/C++,.net的NXOpen.UF命名空间支持。

NXOpen 支持C++和.net等。

Open系统,支持C的原来叫UFun,或者API,用的人最多。

后来出现了Open C++。

但是Open C++支持编辑等属性行为,不能创建。

所以,一般是通过API创建特征,比如实体,通过C++的类查询和修改。

NXOpen系统,是完全面向对象的,所以可以创建和修改特征。

当然,NXOpen几乎支持UG所有的功能。

所以,目前开来,如果使用C/C++方式,可以使用Open C和C++结合的方式,利用C来创建特征,使用C++来管理。

如果使用.net可以直接使用NXOpen。

对于不熟悉NXOpen的人可以按照Open C的知识上手NXOpen.UF。

下面将通过各个例子说明上述系统的使用,因为.net平台是通用的,我只举了C#的例子,VB等也是一样的的。

而java我不懂,见谅了。

一、Open C1、遍历的例子#include <uf_object_types.h>#include <uf_part.h>#include <uf_obj.h>#include <uf_modl.h>#include <string>#include <sstream>using std::string;using std::stringstream;//下面是程序片段UgSession session( true );try{/* TODO: Add your application code here */uf_list_p_t lpObj;UF_MODL_create_list(&lpObj);tag_t prt = UF_PART_ask_display_part();tag_t Next_tag=NULL_TAG;do{UF_OBJ_cycle_objs_in_part(prt,UF_solid_type,&Next_tag);if(Next_tag==NULL_TAG) break;int t,subtype;UF_OBJ_ask_type_and_subtype(Next_tag,&t,&subtype);if(subtype==UF_solid_body_subtype)UF_MODL_put_list_item(lpObj,Next_tag);} while(1);logical is_open;UF_UI_is_listing_window_open(&is_open);if(!is_open) UF_UI_open_listing_window();int sum;UF_MODL_ask_list_count(lpObj,&sum);for (int i=0;i<sum;i++){tag_t t;UF_MODL_ask_list_item(lpObj,i,&t);stringstream s;s<<(int)t;string str;str = s.str();UF_UI_write_listing_window(str.c_str());UF_UI_write_listing_window("\n");}// UF_UI_exit_listing_window();UF_MODL_delete_list(&lpObj);}/* Handle errors */catch ( const UgException &exception ){processException( exception );}2,创建block的例子#include <uf.h>#include <uf_ui.h>#include <uf_exit.h>#include <uf_modl.h>//下面是程序片段/* Initialize the API environment */if( UF_CALL(UF_initialize()) ){/* Failed to initialize */return;}/* TODO: Add your application code here */double corner[3] ={0,0,0};char* edge[3] = {"10","5","20"};tag_t tag;UF_MODL_create_block(UF_NULLSIGN,NULL_TAG,corner,edge,&tag);/* Terminate the API environment */UF_CALL(UF_terminate());二、Open C++1、遍历的例子#include <ug_typed.hxx>#include <ug_part.hxx>#include <ug_body.hxx>#include <ug_string.hxx>using std::string;//下面是程序片段UgSession session( true );try{/* TODO: Add your application code here */UgPart *pWorkPart = UgSession::getWorkPart();UgTypedObject *pObj;ostrstream buffer;for ( pObj = pWorkPart->iterateFirst ( );pObj;pObj = pWorkPart->iterateNext ( pObj ) ){std::string name = pObj->getName ( );UgBody *pBody = dynamic_cast<UgBody*>(pObj);if (pBody){buffer<<(int)pBody->getTag()<<"\n";}}UgInfoWindow::open();UgInfoWindow::write(string(buffer.str()));delete buffer.str();}/* Handle errors */catch ( const UgException &exception ){processException( exception );}2、通过模板搜索的例子#include <ug_body.hxx>#include <ug_iterator.hxx>#include <ug_string.hxx>//下面是程序片段UgSession session( true );try{/* TODO: Add your application code here */ostrstream buffer;// Construct an iterator for NX face objectsUgIterator < UgBody > pObj;//workpart 可以通过其他方式指定//UgIterator < UgFace *> curFace;//// Loop through all faces//while ( !curFace.isFinished ( ) )//{// // Get the name of the current face// std::string faceName = (*(*curFace))->getName ( );// curFace.findNext ( );//}// Loop through all faceswhile ( !pObj.isFinished ( ) ){// Get the name of the current facestd::string faceName = (*pObj)->getName ( );buffer<<(int)(*pObj)->getTag()<<endl;pObj.findNext ( );}UgInfoWindow::open();UgInfoWindow::write( std::string( buffer.str() ));delete buffer.str();}/* Handle errors */catch ( const UgException &exception ){processException( exception );}三、NXOpen C++1、创建block的例子#include <NXOpen/Session.hxx>#include <NXOpen/Part.hxx>#include <NXOpen/Features_BlockFeatureBuilder.hxx>#include <NXOpen/Features_Block.hxx>#include <NXOpen/PartCollection.hxx>#include <NXOpen/Features_FeatureCollection.hxx>#include <NXOpen/UI.hxx>#include <NXOpen/NXMessageBox.hxx>using namespace NXOpen;//下面是程序片段NXOpen::Session *theSession = NXOpen::Session::GetSession();try{/* TODO: Add your application code here */Part* thePart = theSession->Parts()->Work();NXOpen::Features::Feature* block = NULL;NXOpen::Features::BlockFeatureBuilder* theBuilder = thePart->Features()->CreateBlockFeatureBuilder(block);NXOpen::Point3d basePoint(100, 100, 100);theBuilder->SetOriginAndLengths(basePoint, "100", "200", "300");// NXOpen.Body theBody = null;//theBuilder.SetBooleanOperationAndTarget(NXOpen.Features.Feature.BooleanType.Create, theBody);theBuilder->Commit();//theBuilder->CommitFeature();NXOpen::UI::GetUI()->NXMessageBox()->Show("",NXMessageBox::DialogType::DialogTypeInformation, "OK!");// UI->GetUI()->NXMessageBox.Show("", rmation, "OK!");}/* Handle errors */catch ( const UgException &exception ){processException( exception );}2、遍历特征的例子#include <NXOpen/Session.hxx>#include <NXOpen/Part.hxx>#include <NXOpen/Features_BlockFeatureBuilder.hxx>#include <NXOpen/Features_Block.hxx>#include <NXOpen/PartCollection.hxx>#include <NXOpen/Features_FeatureCollection.hxx>#include <NXOpen/UI.hxx>#include <NXOpen/NXMessageBox.hxx>#include <NXOpen/ListingWindow.hxx>using namespace NXOpen;//下面是程序片段NXOpen::Session *theSession = NXOpen::Session::GetSession();try{/* TODO: Add your application code here */Part* thePart = theSession->Parts()->Work();theSession->ListingWindow()->Open();NXOpen::Features::FeatureCollection::iterator i;for (i=thePart->Features()->begin();i!=thePart->Features()->end();i++){theSession->ListingWindow()->WriteLine((*i)->Name()+"--"+(*i)->GetJournalIdentifier());}NXOpen::UI::GetUI()->NXMessageBox()->Show("",NXMessageBox::DialogType::DialogTypeInformation, "OK!");// UI->GetUI()->NXMessageBox.Show("", rmation, "OK!");}/* Handle errors */catch ( const UgException &exception ){processException( exception );}四、NXOpen C#1、创建blcok的例子using NXOpen;using NXOpen.Utilities;using NXOpen.UF;using NXOpenUI;//下面是程序片段Session theSession = Session.GetSession();try{Part thePart = theSession.Parts.Work;NXOpen.Features.Feature block = null;NXOpen.Features.BlockFeatureBuilder theBuilder = thePart.Features.CreateBlockFeatureBuilder(block);NXOpen.Point3d basePoint = new Point3d(100f, 100f, 100f);theBuilder.SetOriginAndLengths(basePoint, "100", "200", "300");mit();//mitFeature();UI.GetUI().NXMessageBox.Show("", rmation, "OK!");}catch(NXException ex){UI.GetUI().NXMessageBox.Show("error!", NXMessageBox.DialogType.Error, ex.Message);}2、遍历特征的例子using NXOpen;using NXOpen.Utilities;using NXOpen.UF;using NXOpenUI;//下面是程序片段Session theSession = Session.GetSession();theSession.ListingWindow.Open();try{Part thePart = theSession.Parts.Work;foreach (NXOpen.Features.Feature c in thePart.Features){//NXOpen.Features.Block t = c as NXOpen.Features.Block;//if(t!=null)//{// theSession.ListingWindow.WriteLine(t.ToString());//}theSession.ListingWindow.WriteLine(+"--"+c.ToString());}UI.GetUI().NXMessageBox.Show("", rmation, "OK!");}catch (NXException ex){UI.GetUI().NXMessageBox.Show("error!", NXMessageBox.DialogType.Error, ex.Message);}五、NXOpen.UF1、仿照Open C中的例1子实现using NXOpen;using NXOpen.Utilities;using NXOpen.UF;using NXOpenUI;NXOpen.UF.UFSession theUFSession = NXOpen.UF.UFSession.GetUFSession();try{double[] corner ={ 0, 0, 0 };string[] edge = { "10", "5", "20" };Tag tag;theUFSession.Modl.CreateBlock1(FeatureSigns.Nullsign, corner, edge, out tag);}catch (NXException ex){UI.GetUI().NXMessageBox.Show("error!", NXMessageBox.DialogType.Error, ex.Message);}2、仿照Open C中的例子2实现using NXOpen;using NXOpen.Utilities;using NXOpen.UF;using NXOpenUI;NXOpen.UF.UFSession theUFSession = NXOpen.UF.UFSession.GetUFSession();try{Tag[] list=null;Tag thePart = theUFSession.Part.AskDisplayPart();theUFSession.Modl.CreateList(out list);Tag Next_tag=Tag.Null;do{theUFSession.Obj.CycleObjsInPart(thePart,70/* UF_solid_type*/,ref Next_tag);if (Next_tag == Tag.Null) break;int t, subType;theUFSession.Obj.AskTypeAndSubtype(Next_tag,out t, out subType);if (subType == 0/*UF_solid_body_subtype*/)theUFSession.Modl.PutListItem(list, Next_tag);} while (true);bool isOpen;theUFSession.Ui.IsListingWindowOpen(out isOpen);if (!isOpen) theUFSession.Ui.OpenListingWindow();int sum;theUFSession.Modl.AskListCount(list,out sum);for (int i = 0; i < sum;i++ ){Tag t;theUFSession.Modl.AskListItem(list, i, out t);theUFSession.Ui.WriteListingWindow(t.ToString());}/*Treat all the arguments with the"Output to be freed " annotation as an output parameter.* The system takes care of freeing memory.*/}catch (NXException ex){UI.GetUI().NXMessageBox.Show("error!", NXMessageBox.DialogType.Error, ex.Message);。

UG软件二次开发基础2

UG软件二次开发基础2
extern int UF_CURVE_create_point(double point[3], tag_t* point);
在绝对坐标系中产生一个点。
30
标准命名法
一般函数开头的大写部分表示此函数所在 UG/Open API的库函数名称,如 UF_CURVE_create_point 即必须在头文件中加以声明,如 # include <uf_part.h> # include <uf_curve.h>
17
外部UF

优点
调用灵活,用途广泛 不必启动UG,属于后台运行,节约运行 时间。

18
外部UF

缺点
不能和UG Gateway发生联系,因而不 能利用UG的显示窗口动态反馈操作结果, 同时也不能实现一些须由用户完成的交互 操作 。
19
外部UF

外部UF用途
一般多用于Part文件的大量创建、存
指向该数据结构的指针类型
结构类型
_u_t
_u_p_t _f_t
联合类型
指向联合的指针 指向函数的指针
37
最常用的UF数据类型

tag_t 它是任何确定存在的UG对象的唯一
标识,这里对象是指UG的Part、Object、
Feature、Expression等
38
tag_t 定义
typedef unsigned int tag_t, *tag_p_t;
15
外部UF和内部UF
程序运行环境不同,
外部UF UF程序 内部UF
16
外部UF和内部UF

外部UF程序
独立于UG之外的普通C程序,是可执 行程序(*.EXE),通过UG的运行库 调用API的功能。

ug二次开粗最佳方案

ug二次开粗最佳方案

ug二次开粗最佳方案UG二次开发最佳方案UG软件是一款非常优秀的CAD软件,由于其强大的三维建模功能,使得其在机械设计领域中应用范围非常广泛。

但是在实际使用中,由于UG自身的限制或者是用户需求的不同,很多用户都会有二次开发的需求。

UG的二次开发需要对常规的API进行各种调用,这就要求我们有深厚的编程基础与技能,同时也需要不断摸索最佳的二次开发方案来提高效率。

本文将介绍UG二次开发的常用方案及其优缺点,以期帮助UG用户寻找最佳方案。

一、UG APIUG自带的API是非常强大的,其中封装了非常多的功能函数供我们调用。

开发者可以通过API来实现自己定制化的操作,比如实现自己的工具栏、快捷键、菜单等。

此外,UG API也可以用来扩展UG的功能,比如添加自己的工具、自动化一些重复性的操作等。

使用UG API的好处是可以充分利用UG软件自身的资源,不需要额外地去寻找其他开发工具。

但是UG API也存在一些缺点,比如我们需要深入了解UG的开发模型才能开发出高效的应用程序,而这需要花费较长时间去学习。

另外,UG API不能跨平台,只能在Windows下使用,这同样也会限制我们的二次开发范围。

二、UG NXOpenUG NXOpen是UG的一款API,它是针对NX软件的基于.NET 的程序接口。

相比于常规的UG API,NXOpen提供了更加强大、灵活的功能。

使用NXOpen可以直接访问底层UG的数据,利用NXOpen可以访问UG软件中的任意元素。

此外,还可以通过NXOpen实现各种深度定制功能,甚至可以实现对UG软件本身的修改。

仅仅对UG进行简单的修改,就可以无缝地进行网格生成、FEM分析等操作。

这在一些对时间精细度要求很高的程序中非常有效。

但是由于这种操作比较复杂,甚至会修改UG本身的数据,因此需要谨慎操作。

三、UG Open C APIUG Open C API是一个完全基于C语言的API,与NXOpen相比较,它更加底层。

ug二次开发介绍

ug二次开发介绍

ug二次开发介绍————————————————————————————————作者:————————————————————————————————日期:UG二次开发功能简介Unigraphics(UG)是美国UGS公司的集CAD/CAM/CAE于一体的软件集成系统,功能覆盖整个产品的开发过程:从概念设计、功能工程、功能分析到制造,在航空航天、汽车、机械、模具和家用电器等工业领域的应用非常广泛。

UG软件提供了功能强大的二次开发(应用开发)模块,利用该模块可对UG系统进行用户化裁减和开发。

UG/Open是一系列UG开发工具的总称,主要由UG/Open API、UG/Open GRIP、UG/Open MenuScript和UG/Open UIStyler四部分组成。

UG/Open API (又称User Function ),是一个允许程序访问并改变UG对象模型的程序集。

UG/Open API 封装了近2000个UG操作的函数,它可以对UG的图形终端、文件管理系统和数据库进行操作,几乎所有能在UG界面上的操作都可以用UG/Open API 函数实现。

UG/Open API程序按其连接方式分为两种,内部模式(Internal环境) 和外部模式(External 环境)。

采用内部模式开发的程序只能在UG 的界面环境(Session)下运行,其优点是可以连接的更快且程序更小并能与用户交互;采用外部模式开发的程序能在操作系统中独立执行,其缺点是无法实时显示图形与用户交互,值得注意的是部分函数只能在内部模式下执行。

UG/Open API 程序使用的是C 或C + + 编程语言。

基于Windows操作系统的UG二次开发可以在VC + + 6.0或环境下进行,VC提供的各类库函数和丰富的编程资源进一步提升了UG/Open API的功能,同时也为集成企业原有的C/C++语言程序提供了方便。

UG/Open GRIP ( Graphics Interactive Programming) 是一种专用的图形交互编程语言,与UG系统集成,可以实现UG环境下的大多数应用操作。

[API]UG二次开发资料1

[API]UG二次开发资料1
概述
日期:2007年 8 月
1
© UGS Corp. 2007. All rights reserved.
主要内容
¾UG/Open 开发工具 ¾UG/Open 构架 ¾二次开发应用范围 ¾头文件及说明
2
二次开发工具
¾ GRIP ¾ NX OPEN ¾ KF ¾ JA ¾ MenuScript ¾ UIStyler
Journaling
X Record in VB and C++ X Playback in VB
Common API
X .NET X C++ X UF Wrappers
NX User Interface Journaling
KF
.NET
C++
Java
API
API
API
API
Licensing

Common API
uf_std.h
提供UG与有关标准(如CGM)的接口函数声明
uf_styler.h 有关UIStyler的操作函数声明
uf_trns.h
提供对坐标、矩阵、位置及对象的转换功能(移 动、选择、镜像、缩放)的函数声明
uf_udobj.h 关于用户定义对象的函数及结构声明
uf_udop.h
关于用户定义操作的函数及结构声明
2、资源 UG Help
7
MenuScript
1、简介 主要用于制作菜单和工具栏,用户按照其语法创建 *.men文件或*.tbr文件并放在指定的目录内,UG启 动时可以自动加载。
2、资源 UG Help
8
UIStyler
1、简介 主要用于对话框的制作。在UG菜单下点击 Application-> User Interface Styler…,进入编辑界 面,UG提供了标签、输入框、按钮、图片等多种控 件,利用这些控件用户可以方便的制作出windows 风格的对话框。

UG二次开发教程

UG二次开发教程

UG二次开发教程UG是一种强大的三维建模软件,它提供了丰富的功能和工具,使用户能够创建复杂的三维模型。

除了它的基本功能外,UG还支持二次开发,使用户能够自定义程序来满足自己的特定需求。

本文将介绍UG二次开发的基本概念和一些常用的开发技巧。

1.增强功能:UG的基本功能通常无法满足所有用户的需求。

通过二次开发,用户可以根据自己的需求添加额外的功能,提高工作效率。

2.自定义工具:UG二次开发使用户能够创建自己的工具和工作流程。

这些工具可以根据用户的工作流程来设计,以提高工作效率。

3.自动化:UG二次开发可以通过编写脚本和宏来自动执行繁琐的任务,从而节省时间和劳动力。

4.与其他软件的集成:UG二次开发使用户能够将UG与其他软件集成,例如ERP系统、PLM系统等,实现数据的传递和共享。

下面是一些常用的UG二次开发技巧:1.学习编程语言:UG支持多种编程语言,开发人员应该选择其中一种来学习。

C++是UG开发的主要语言,因此建议开发人员首先学习C++语言。

2.掌握UGAPI:UG提供了一组API(应用程序接口),用于访问和操作UG的功能。

开发人员应该熟悉这些API,并在开发过程中灵活运用。

3.阅读开发文档:UG提供了详细的开发文档,包括API参考、示例代码等。

开发人员应该仔细阅读这些文档,并通过实践来理解其中的原理和用法。

5. 使用UG工具包:UG提供了一些工具包,用于二次开发。

例如,UG Open API Toolkit包含用于UG二次开发的示例代码和工具。

开发人员可以使用这些工具包来加快开发进度。

6.加入UG开发社区:UG有一个活跃的开发社区,开发人员可以在这里分享经验和技巧,获取帮助和支持。

下面是一个UG二次开发的简单实例,演示了如何创建一个自动生成椅子模型的工具:1.创建一个新的UG插件项目。

2.在插件项目中编写代码,实现椅子模型的生成算法。

代码可以利用UG的几何计算功能来创建椅子的各个部件,例如座位、背部和腿部。

ug参数化建模二次开发程序

ug参数化建模二次开发程序

ug参数化建模二次开发程序摘要:1.什么是UG参数化建模二次开发程序?2.UG参数化建模的优势3.二次开发程序的实现方法4.如何进行UG二次开发?5.实际应用案例分享6.总结与展望正文:随着制造业的不断发展,UG(Unigraphics)软件在全球范围内得到了广泛的应用。

UG是一款功能强大的计算机辅助设计(CAD)和计算机辅助制造(CAM)软件,其参数化建模和二次开发功能为企业和个人提供了极大的便利。

本文将介绍UG参数化建模二次开发程序的相关知识,并举例说明如何进行UG二次开发。

一、什么是UG参数化建模二次开发程序?UG参数化建模是指在UG软件中,通过定义参数、关系和约束等,实现模型的自动化生成。

这种建模方法具有灵活性高、效率性强、易于修改和控制等特点。

而UG二次开发程序则是指在原有UG软件基础上,利用编程语言(如C++、Python等)编写特定功能的插件或模块,以满足用户个性化需求。

二、UG参数化建模的优势1.提高设计效率:通过参数化建模,用户可以快速地调整模型尺寸和形状,节省设计时间。

2.降低设计错误:参数化建模有助于规范设计过程,减少人为错误。

3.易于修改和控制:参数化模型易于修改,用户可以通过调整参数实现模型的变化。

4.参数化建模有助于实现系列化设计,提高产品族的通用性。

三、二次开发程序的实现方法1.利用UG内置的脚本语言:如UG/WINCREATE、UG/GRAPH等,编写简单的脚本实现特定功能。

2.编写独立的程序:利用C++、Python等编程语言,结合UG API(应用程序编程接口)开发独立的二次开发程序。

3.利用开发工具:如Visual Studio、Eclipse等,集成UG软件,进行高级二次开发。

四、如何进行UG二次开发?1.学习UG软件和编程语言:掌握UG的基本操作方法和编程基础知识。

2.分析需求:明确二次开发的目标和功能需求。

3.设计方案:根据需求,设计相应的算法和数据结构。

UG软件二次开发工具的使用-精选文档

UG软件二次开发工具的使用-精选文档

UG软件二次开发工具的使用UG软件是美国EDS公司开发的一套集CAD/CAM/CAE为一体的高端软件。

由于其强大的设计、分析、制造和产品数据管理的功能,国内外许多企业都将它作为首选软件。

但是UG软件与其它CAD软件一样是一个通用软件,专业针对性差,因而不能满足各种各样具体产品的设计需要,在实际的工程设计中难以达到理想的效果,几乎不能真正实现灵活高效的特点。

因而UG软件的二次开发就成为CAD技术推广应用过程中必须面对和解决的课题之一。

二次开发就是把商品化、通用化的CAD系统用户化,本地化的过程,二次开发后能大大提高设计人员的设计效率,缩短设计周期。

因此UG软件的二次开发人员必须掌握几种UG软件的开发工具及其使用方法,才能为企业开发出本地化的UG软件。

UG/Open是一系列UG开发工具的总称,是UG软件为用户或第三方开发人员提供的最主要的开发工具。

它主要由UG/OpenGR IP、UG/Open API、UG/Open MenuScrip t和 UG/ Open UISt yler 四个部分组成。

一、UG/OPEN GRIPUG/OPEN GRIP(Graphics Interactive Programming)是一种专用的图形交互编程语言。

这种语言与UG系统集成,能够实现强大的图形绘制、装配、工程图的生成和一定的文件管理功能,主要进行UG的功能调用。

GRIP程序一般是在UG平台下编制的,有独特的开发工具、编译链接过程、程序语法和文件格式,具体开发过程如下:(一)编写源程序:在UG Open GRIP环境界面中,选择Edit,用记事本创建或打开一个.grs文件,也就是GRIP源文件。

(二)编译源程序:选择Compile对源程序进行编译生成扩展名为.gri的编译文件,如果主程序中含有子程序,则两者要分别进行编译,链接时主程序自动对子程序进行链接。

(三)链接程序:选择Link将扩展名为.gri的文件链接生成可执行的GRIP文件,扩展名为.grx,这个文件就是UG可以识别的执行文件。

2019-UG的二次开发工具-文档资料

2019-UG的二次开发工具-文档资料
通过C/C++语言编程调用API封装的函数和过程可以实现以下几个功能: 1、对UG文件及相应的模型进行操作,包括UG模型的构建、编辑,装配体的 建立以及工程图的创建等。 2、在UG的主界面中创建交互式程序界面。 3、创建并管理用户定义对象等。
UG/OPEN API函数采用标准的名称约定,其一般格式为:UF_<area>一 <name>,其中UF表示User Function;<area>表示函数的应用范围,通常是应 用范围名称的英文单词缩写。例如:MODL和ASSEM分别是Modeling建模模块和 Assembly装配模块的名称缩写,DISP则是DispIay功能的名称缩写:<name>表 示其实现功能的语言描述,一般由下划线分开的动词和名词组成。例: UF_MODL create—block0表示在modeling模块中创建立方体函数UF_DISP set highlight()是高亮显示对象的函数UF_PART_ask_part_name0是获取部件文件 名的函数,其他常用的动词还有edit(编辑)、delete(删除)。所有的API函数 及其相应的参数可以在UG的帮助文档里找到。
3、UG/0PEN Grip模块
在UG/OPEN API工具发布之前,UG的二次开发工具是UG/Open GRIP(GraphicsInteractive Programming).GRIP是一种专用的图形交互编程 语言,它与UG系统集成,可以实现UG环境中的大部分操作。GRIP语言与一般的 通用语言一样,有其自身的语法结构、程序结构、内部函数以及其他通用语言 程序相互调用的接口.虽然GRIP的功能远不如UG/OPEN API强大,所编写的程 序长、复杂,要考虑程序的各个细节问题,但由于GRIP编程语言是面向工程师 的语言,具有简单、易学、易用的特点,因此,仍然有大量用户在使用GRIP语 言开发一些规模相对较小的应用系统。

UG二次开发工具在模具CAD系统设计中的应用

UG二次开发工具在模具CAD系统设计中的应用

1 开发工具简介Unigraphica为用户提供了强大而有效的二次开发工具,以满足用户的特定需求。

1.1 二次开发工具的简介1.1.1 宏命令(Macro)宏命令是UG平台上人机交互操作的一系列过程的记录。

宏命令文件扩展名为* Macro。

为AS11码形式。

宏命令通过两种方式产生:一是软件自动记录;二是手工编写(用任一文本编辑器)。

1.1.2 用户自定义特征(User Define Feature)用户自定义特征是+Q 软件提供的造型特征之一,它可对一简单实体生成用户化的特征,特征的参数由用户自定义。

通过这一功能可建立用户自定义特征库,在需要时直接调用。

用户自定义特征文件扩展名为* udf。

1.1.3 程序设计模块(UG/OPEN)UG/OPEN GRIP和UG/OPEN API是UG提供的两个二次开发程序设计模块,具有与外部高级开发语言的接口,能够实现强大的图形绘制、装配、工程图的生成和一定的文件管理功能,主要进行UG的功能调用。

UG/OPEN API是一个完整可靠和面向对象的应用编程接口,它允许用户用当今最流行的过程化和面向对象的语言来开发自己的应用程序,包括用户开发应用程序自动执行数控操作、创建几何体和绘图对象,以及执行其它用户所需的具体专业知识的任务。

同时,使用面向对象技术,用户可以按照自己的要求集成类、重载和派生类。

UG/OPEN API是用5 语言编制的,它还能在程序中使用C语言支持的全部功能,并且支持对UG/OPEN GRIP程序的调用,有很大的灵活性。

1.1.4 用户界面开发模块(UG/OPEN UIStyler)UG/OPEN UIStyler 模块是UG提供的主要用于对话框的制作、实现UG参数化绘图的专用模块。

用户使用此模块可快速建造UG风格对话框的可视化环境,并能生成相应的已被封装好的UG/OPEN UIStyler文件和程序代码,从而使用户在使用UG/OPEN UIStyler产生的对话框时,不必考虑图形界面(GUI)的实现。

模具设计及UG二次开发

模具设计及UG二次开发
该凼数功能戒作用的提示。例如UF_MODL_create_cylinder()是 Modeling模块中创建圆柱体的凼数;UF_DISP_set_highlight()是 高亮显示对象的凼数。常用的动词有ask(查询)、creat(创建)、 copy(复制)、set(设置)、delete(初除)等。
UG/OPEN API的
基础知识…

UG/OPEN API
应用程序的
运行环境
我们使用UG/OPEN API编写的应用程序可以 在两种丌同的环境下运行:内部(Internal)环境和 外部(External)环境。 使用内部环境编写的应用程序是一个动态 链接库(dll文件),只能被夹在到UG·的环境下运行。
制 的与用模块。它允许用户使用ASCⅡ文件 方便灵活地来编辑UG系统的菜单,戒者为用户创建的 应用程序定义自己的菜单。
UG/OPEN UIStyler
c
对话框的与用模块。使用UG/OPEN UIStyler
UG/OPEN UIStyle风格完全一致的对话框。 UIStyler模块所支持的控件种类丰富,丏在存储对话 框文件的同时,会自动生成不对话框相应的.c和.h文件, 大大节省了用户的开发时间。
创建文件夹
Step 3
右键“我的电脑”— >“属性”—>“高 级”—>“环境变 量”—>“系统变量” 设置变量值为刚才建 立文件的路径,即 D:\UG\wan
设置环境变量
Step 4
在刚才建立的 startup文件夹下, 新建文本文件wan, 将文件扩展名txt修 改为men,并添加 菜单程序
创建菜单
d
GRIP
UG/OPEN GRIP
是Graphics Interactive Programming取

ug二次开发工具的选择

ug二次开发工具的选择

3.1.1 UG 二次开发工具的选择UG/Open 是一系列UG 开发工具的总称, 主要由UG/Open API, UG/Open GRIP, UG/Open MenuScript 和UG/Open UIStyler 四部分组成。

( 1) 选用UG/Open API 作为开发工具。

它是一个允许程序访问并改变UG 对象模型的程序集, 它封装了近2000 个UG 操作的函数, 可以对UG 的图形终端、文件管理系统和数据库进行操作, 几乎所有能在UG 界面上的操作都可以用UG/Open API 函数实现, 该程序使用C 或C++编程语言。

( 2) 选用MFC 开发UG 对话框界面。

作为当前广泛应用的MFC 应用向导( MFC APP2Wizard) 除提供了UG/Open UIStyler 所涉及的控件之外, 还提供了ListView、TreeView、进度条等更为丰富的控件,是一种可视化的编程工具,使用方便,还可以充分利用Windows 的消息机制,编写出完美的应用程序,大大方便了开发人员的编程工作。

( 3) 选用UG/Open MenuScript 创建用户化菜单。

支持UG 主菜单和快速弹出式菜单的设计和修改, 可以改变UG 菜单的布局, 添加新的菜单项以执行用户应用开发程序, 最后生成一个菜单脚本文件( *.men) , 供UG 系统调用以触发应用程序。

3.1.2 配置开发环境及工程路径( 1) 建立工程目录结构。

新建工程目录E:\ug_develop,并在该路径下新建文件夹Startup( 用于存放*.men 文件,即菜单脚本文件) 、Application( 用于存放具体的功能扩展程序文件) 。

在用户路径文件custom- dirs.dat 中输入上述工程路径。

UG 启动时根据用户注册的工程路径读取菜单脚本文件。

( 2) 以VC6.0 提供的MFC AppWizard( dll) 建立工程项目, 创建一个静态链接MFC 方式的DLL。

基于GRIP语言的UG二次开发

基于GRIP语言的UG二次开发

基于GRIP语言的UG二次开发一、总述UG/Open GRIP 是UG软件包中的一个重要模块,是EDS公司提供的用于UG二次开发的软件工具。

GRIP语言具备完整的语法规则、程序结构、内部函数、GRIP程序必须经过编译、连接、生成可执行文件之后才能运行。

利用GRIP 程序能够实现与Unigraphicsde 各种交互操作,例如几何体的创建、文件的管理、系统参数的控制、UG数据库的存取等。

与其他二次开发语言相比,GRIP具备简单易学、交互性能强的优点。

GRIP 语言是面向工程师的语言,它不需要具备专业的编程知识,但必须具备一定程度的三维建模基础。

通过GRIP编程,用户将专业知识与Unigraphics系统融合,就能更好地发挥Unigraphics软件的功能。

在本次的开发设计中将运用GRIP语言编程实现UG中的实体复制。

在三维造型过程中,有时需要将某个实体从一个坐标系复制到另一个坐标系,实体在两个坐标系中的相对位置相同。

利用UG命令执行此操作的步骤十分繁琐,因此若能将这一过程实现程序化,则将大大提供三维造型的效率。

但GRIP语言只提供实体平移、实体沿某个坐标轴旋转的函数,因此此程序的难点在于如何确定实体在坐标系中的旋转角度和旋转方向才能实现其在此坐标系中的相对位置与原始坐标系的相对位置保持一致。

二、程序的编程步骤(1)首先选择需要复制的实体pickent;(2)然后选择新坐标系的原点和坐标轴的确定方式;(3)将实体pickent和原始坐标系precsys平移到新坐标系fincsys的原点cenpt,生成过渡实体ent1和过渡坐标系movecsys;(4)计算过渡坐标系movecsys的X轴和坐标系fincsys的X轴之间的角度ang1;(5)过渡坐标系movecsys的X轴和坐标系fincsys的X轴生成过渡坐标系chancsys,并在此坐标系下沿Z轴将过渡实体ent1和过渡坐标系movecsys分别旋转ang1角度,生成过渡实体ent2和过渡坐标系workcsys;(6)计算过渡坐标系movecsys的Z轴和坐标系workcsys的Z轴之间的角度ang2;(7)过渡坐标系workcsys的Z轴和坐标系fincsys的Z轴生成另一过渡坐标系chancsys,并在此坐标系下沿Z轴将过渡实体ent2旋转ang2角度,最终生成实体copyent。

ug二次开发介绍

ug二次开发介绍

UG二次开发功能简介Unigraphics(UG)是美国UGS公司的集CAD/CAM/CAE于一体的软件集成系统,功能覆盖整个产品的开发过程:从概念设计、功能工程、功能分析到制造,在航空航天、汽车、机械、模具和家用电器等工业领域的应用非常广泛。

UG软件提供了功能强大的二次开发(应用开发)模块,利用该模块可对UG系统进行用户化裁减和开发。

UG/Open是一系列UG开发工具的总称,主要由UG/Open API、UG/Open GRIP、UG/Open MenuScript和UG/Open UIStyler四部分组成。

UG/Open API (又称User Function ),是一个允许程序访问并改变UG对象模型的程序集。

UG/Open API 封装了近2000个UG操作的函数,它可以对UG的图形终端、文件管理系统和数据库进行操作,几乎所有能在UG界面上的操作都可以用UG/Open API 函数实现。

UG/Open API程序按其连接方式分为两种,内部模式(Internal环境) 和外部模式(External 环境)。

采用内部模式开发的程序只能在UG 的界面环境(Session)下运行,其优点是可以连接的更快且程序更小并能与用户交互;采用外部模式开发的程序能在操作系统中独立执行,其缺点是无法实时显示图形与用户交互,值得注意的是部分函数只能在内部模式下执行。

UG/Open API 程序使用的是C 或C + + 编程语言。

基于Windows操作系统的UG二次开发可以在VC + + 6.0或环境下进行,VC提供的各类库函数和丰富的编程资源进一步提升了UG/Open API的功能,同时也为集成企业原有的C/C++语言程序提供了方便。

UG/Open GRIP ( Graphics Interactive Programming) 是一种专用的图形交互编程语言,与UG系统集成,可以实现UG环境下的大多数应用操作。

UG二次开发工具要求

UG二次开发工具要求

UG二次开发要求以下是对于UG二次开发插件要求能实现的功能1.运动实体的选择根据UG窗口内已经存在的两个实体(或多个实体),在界面中可以去选择这两个实体分别作为各自运动的零件(如:A实体和B 实体)。

另外需要指定这两个实体哪个作为主要实体,哪个作为工具实体,后面在进行布尔减运算的时候需要指定。

2.两个实体运动方式的分类分别对上述选定的两个实体进行运动方法的设置,要求两个实体可以分别进行直线运动和旋转运动。

两个实体的组合方式有以下三种:1,A实体直线运动B实体旋转运动2,A实体旋转运动B实体旋转运动3,A实体旋转运动B实体旋转运动+直线运动3.直线运动属性的设置要求能在界面选择运动方向的矢量。

一个基本运动距离,增量距离和总的运动距离这几个选项4.旋转运动属性的设置要求能在界面选择旋转中心位置,旋转中心点的矢量方向。

一个基本的旋转角度,增量的旋转角度和总的旋转角度这几个选项,角度要能超过360°5.两个实体运动的关系匹配1》当A实体直线运动和B实体旋转运动进行匹配时,A的基本运动距离,增量运动距离要和B的基本旋转角度,增量旋转角度进行匹配,以保证A实体运动时,B能根据输入的关系进行自动旋转。

2》当A实体旋转运动和B实体旋转运动进行匹配时,A的基本旋转角度,增量旋转角度要和B的基本旋转角度,增量旋转角度进行匹配,以保证A实体运动时,B能根据输入的关系进行自动旋转。

2》当A实体旋转运动和B实体旋转运动+直线运动进行匹配时,A 的基本旋转角度,增量旋转角度要和B的基本旋转角度,基本运动距离,增量旋转角度,增量运动距离进行匹配,以保证A实体运动时,B能根据输入的关系进行自动旋转和平移。

6.主体功能的逻辑关系。

1》实体A和实体B开始按照设定的数值和关系开始运动一次之后,先判断两个实体是否存在相交,如果无相交,继续按照增量的距离或角度运行2》继续运行直至系统判断出两个实体存在相交时,这时候根据前面设定好的工具实体去和主要实体进行布尔减运算,保留主要实体作为最终实体,对于工具实体可以根据二次开发的方便程度决定在此处是否保留。

ug二次开发工具介绍

ug二次开发工具介绍

OpenAPI UG二次开发疯狂代码 / ĵ:http://OpenApi/Article1781.htmlUG二次开发个人认为最麻烦的地方是开发过程中UG通过NXMANAGER与TCE(TEMCENTER)的交互.个人认为TCE的安装就够开发人员喝一壶了..目前正在对UG进行二次开发,项目结束后考虑TCE的二次开发.说明:UG软件是美国EDS公司开发的一套集CAD/CAM/CAE一体的高端软件。

UG是一个通用软件,用户必须在此基础上进行二次开发,才能满足专门 模具设计的需要,提高设计效率。

本文探讨UG二次开发技术,重点研究通过VC编程调用UG/OPEN API函数设计模具的技术。

1. 简介Unigraphics(简称UG)在CAD/CAM上表现出了强大的功能,但UG为通用支撑软件系统,仅具有CAD/CAM的基本功能,没有提 供专用产品所需要的完整计算机辅助设计/制造功能.由于机械产品的千变万化,需要针对具体对象在选用的CAM软件平台上进行二次开发,来设计出界面友好、 功能强大和使用方便的专用产品的CAD/CAM系统.本文介绍UG/OPEN UIStyler、UG/OPEN GRIP和UG/OPEN API的二次开发技术。

UG/Open二次开发模块为UG软件的二次开发工具集,便于用户进行二次开发工作,利用该模块可对UG系统进行用户化剪裁和开发,满足用户的开 发需求。

UG/Open包括以下几个部分:UG/Open Menuscript开发工具,对UG软件操作界面进行用户化开发,无须编程即可对UG标准菜单进行添加、重组、剪裁或在UG软件中集成用户自己开发的软 件功能;UG/Open UIStyle开发工具是一个可视化编辑器,用于创建类似UG的交互界面,利用该工具,用户可为UG/Open应用程序开发独立于硬件平台的交互界面; UG/Open API开发工具,提供UG软件直接编程接口,支持C、C++、Fortran和Java等主要高级语言;UG/Open GRIP开发工具是一个类似APT的UG内部开发语言,利用该工具用户可生成NC自动化或自动建模等用户的特殊应用。

UG-Open,GRIP——鲜为人知的二次开发编程

UG-Open,GRIP——鲜为人知的二次开发编程

UG-Open,GRIP——鲜为人知的二次开发编程随着科学技术的飞速发展,产品功能要求的日益增多,复杂性增加,寿命期缩短,更新换代速度加快。

然而,产品的设计,尤其是机械产品的设计,由于方案设计陈旧,更显得力不从心,跟不上新时代发展的步伐。

在NX设计过程中,以计算机作为重要工具,帮助工程师的一切实用技术的总和称为计算机辅助设计(CAD,ComputerAidedDesign)。

计算机辅助设计包括的内容很多,如:概念设计、优化设计、有限元分析、计算机仿真、计算机辅助绘图、计算机辅助设计过程管理等。

近年来CAD技术广泛应用于各个行业。

CAD 功能实现了目前制造行业中常规的工程技术、设计和绘画功能的自动化。

已从二维绘图普及到完全三维设计模型,从静态设计到运动仿真。

从传统制造应用到快速制造技术应用等方面发展。

而CAM功能却为使用Unigraphics设计模型描绘完成部分的现代机器工具提供了NC 编程技术。

在当今的科学时代,Unigraphics NX软件使用成为制造业、航天工业、汽车行业等多种行业的主流,凭借强大的混合式模型建立功能,已成为CAD/CAM最重要的组合性软件。

同时UG/Open GRIP语言逐渐受到UG NX(UnigraphicsNX4.0)使用者和NX编程工程师的欢迎,也成为Unigraphics NX软件必不可少的一部分。

1 Unigraphics NX(简称UG NX)软件介绍Unigraphics NX(简称UG NX)是当前世界上最先进和紧密集成的,面向制造行业的CAID/CAD/CAM/CAE高端软件,它为制造行业产品开发的全过程提供解决方案,功能包括:概念设计、工业设计、性能分析和制造。

Unigraphics NX是一个全三维,双精度系统,可以用它来精确地描绘几乎任何几何形状,将这些形状结合起来,就可以设计,分析产品以及绘图。

学机械专业、模具设计专业的朋友都知道,在大学学习计算机辅助设计软件是Auto*****和AutoCAD 2007,AutoCAD软件是大学最基础的软件,中级别的软件,现在仍然有些单位使用,AutoCAD画2D 特别方便,我们通常是配合起来使用的,但是Auto CAD就只有CAD 一个模块;而UG是高级别的软件,是专门画3D的,AutoCAD能画3D但是没有UG强,甚至还差的很远很很远。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5、UG/OPEN UIStyler模块
UlStyler是开发UG对话框的可视化编辑器,生成的对话框能与UG集成,让 用户更方便、更高效地与UG进行交互操作。利用这个工具可以避免复杂的图形用 户接口GUI的编程,直接进行对话框控件的选择和布局,从而创建能满足不同功 能需求的UG风格对话框。 当对话框创建完成后,会在存放的目录下自动生成3个文件.dlg文件, template文件和.h文件。其中:dlg文件是对话框资源文件,定义了对话框样式 及控件事件的响应函数名称,存放在用户创建的二次开发目录下面的 application文件夹内,供用户菜单调用;template文件是C语言源文件模板,它 包含了对话框所有回调函数的定义,提供了一个对话框应用的程序框架,该程序 框架通过调用UG/OPEN API函数,实现最初的对话框界面功能,在程序标明的位 置添加程序代码,编写回调函数就可以实现预先设定的功能;.h文件是对话框头 文件,它包含了对话框控件标识的定义以及控件事件响应函数原型的声明,供 VC++编写应用程序时使用。
UG/OPEN API函数采用标准的名称约定,其一般格式为:UF_<area>一 <name>,其中UF表示User Function;<area>表示函数的应用范围,通常是应 用范围名称的英文单词缩写。例如:MODL和ASSEM分别是Modeling建模模块和 Assembly装配模块的名称缩写,DISP则是DispIay功能的名称缩写:<name>表 示其实现功能的语言描述,一般由下划线分开的动词和名词组成。例: UF_MODL create—block0表示在modeling模块中创建立方体函数UF_DISP set highlight()是高亮显示对象的函数UF_PART_ask_part_name0是获取部件文件 名的函数,其他常用的动词还有edit(编辑)、delete(删除)。所有的API函数 及其相应的参数可以在UG的帮助文档里找到。
图1.UG/OPEN二次开发工具的组成
2.UG/OPEN API模块
UG/0pen API又称User Function,是一个允许程序访问并改变UG对象模型 的程序集。UG/Open RPI封装了近2000个UG操作的函数,它可以对UG的图形终端、 文件管理系统和数据库进行操作,几乎所有能在UG界面上进行的操作都可以用UG /open API函数实现。我们可以在C程序和C++程序中以库函数的形式调用UG内部 的近2000个操作。UG/OPEN API程序除了能够在UG环境下调用UG功能外,还能调 用UG/OPEN GRIP程序,具有很大的灵活性。由于与各种C语言编辑环境有很好的 兼容性,所以UG/OPEN API程序的使用范围比较广泛。 通过C/C++语言编程调用API封装的函数和过程可以实现以下几个功能: 1、对UG文件及相应的模型进行操作,包括UG模型的构建、编辑,装配体的 建立以及工程图的创建等。 2、在UG的主界面中创建交互式程序界面。 3、创建并管理用户定义对象等。
6、总结
对于UG软件的二次开发,利用了UG/OPEN GRIP的曲面造型功能, 实现了零部件的实体造型和虚拟装配;UG/OPEN MenuScript和UG/ OPEN UIStyler模块的辅助功能,使得开发起来的系统使用方便;既充 分利用了UG提供的开发模块深入到UG系统内部,实现功能要求,又利 用系统资源,从而大大提高了开发效率。
图2、GG/OPEN GRIP的操作界面
4、UG/0PEN MenuScript模块
UG/OPEN MenuScript是创建用户化菜单的工具,是UG/0PEN的一个重 要组成部分。它支持UG主菜单和快速弹出式菜单的设计和修改,通过它可以 改变UG菜单的布局,添加新的菜单项和工具条,以执行GRIP、API二次开发程 序。 使用MenuScript进行用户菜单定制主要有两种方法:①通过使用记事本 编辑纯文本的菜单脚本文件,即menu文件(文件名为.men),修改UG的主界面 菜单和下拉菜单;②利用C/C++语言编程调用UG/OPEN API提供的MenuScript API函数来定制用户菜单。一般采用第一种方法概述 2、UG/OPEN API模块 3、UG/OPEN Grip模块 4、UG/OPEN MenuScript模块 5、UG/OPEN UIStyler模块 6、总结
1、概述
UG二次开发是指在UG软件平台上,结合具体的应用需求,总结行业的设计知 识和经验,开发面向行业和设计流程的CAD系统。UG软件中的应用开发模块提供了 较为完整的应用开发工具集,利用该工具集可对UG系统进行用户化裁减和开发, 用以满足实际的应用需要。 UG/Open是一系列UG开发工具的总称,是UG软件为用户和第三方开发人员提 供的最主要的开发工具。它主要包括以下几个部分:UG/OPEN API、UG/OPEN GRIP、UG/OPEN MenuScript 和UG/OPEN UlStyler,如图1所示。
3、UG/0PEN Grip模块
在UG/OPEN API工具发布之前,UG的二次开发工具是UG/Open GRIP(GraphicsInteractive Programming).GRIP是一种专用的图形交互编程 语言,它与UG系统集成,可以实现UG环境中的大部分操作。GRIP语言与一般的 通用语言一样,有其自身的语法结构、程序结构、内部函数以及其他通用语言 程序相互调用的接口.虽然GRIP的功能远不如UG/OPEN API强大,所编写的程 序长、复杂,要考虑程序的各个细节问题,但由于GRIP编程语言是面向工程师 的语言,具有简单、易学、易用的特点,因此,仍然有大量用户在使用GRIP语 言开发一些规模相对较小的应用系统。 一个GRIP源程序一般包括5个部分:申明语句部分、初始化语句部分、交 互语句部分、过程处理语句部分和结束语句部分。 GRIP程序的开发过程一般为:编写代码、编译、链接生成可执行文件和软 件调用四个过程,其功能界面如下图2所示。先用记事本编写源代码,保存 为.grs文件,在GRIP界面中打开.grs文件并对其进行编译,生成gri目标文件, 再链接生成grx文件(grx文件是GRIP的可执行文件I,最后在UG菜单中点击Fil e—Execute UG/Open—GRIP。另外,也可以通过编辑menu文件,在自定义菜 单中进行加载。UG/OPEN GRIP的操作界面如图2所示。
相关文档
最新文档