采用UGOpen API的功率计算对话框开发

合集下载

UGOPENAPI教程

UGOPENAPI教程

UGOPENAPI教程UG/OPEN API简明教程User Functions培训简明教程第一章绪论1 User Function是什么定义:在UG中用C语言开发应用程序的一个工具 2 User Function 的两种形式External λ菜单λ(执行程序)Internal (动态连接库)3 User Function的组成与相互关系User Function可以分为以下几个部分:C语言库函数(1) 创建与查询几何实体(2) 分析几何实体(3) 创建与编辑特征(4) 创建与编辑表达式(5)λ应用程序(回调函数)λ对话框数据管理这几部分的关系可以作如下的描述:User Functions的菜单和对话框是程序与用户交互的工具,从菜单可以起动应用程序,对话框等,在对话框激活控件时,将调用相应的回调函数,回调函数和控件的关系在UIStyler 中定义。

应用程序和回调函数用基本的C语言和User Functions的库函数编码。

4 User Functions的执行User User Functions?Execute UG/OPEN?Functions的执行包括四种形式:(1) File 选取该菜单将出现一个文件打开对话框,选取相应用应用程序即可。

(2) Menu ACTION (3) UIStyler 回调函数(2)和(3)将在后面的章节中作详细描述(4) 将应用程序COPY到UGII_USER_DIR\startup子目录下,应用程序将在UG启动时自动运行。

5 User Functions的开发步骤有关软件工程方面的内容,不是我们要介绍的内容,要讲的是User Functions有关的开发步骤。

在下面讲述的内容是以NT下的Visual C++ 5.0和UG15.0为支持环境。

具体的开发步骤如。

(1) 建立C源程序Win32?project?New ?(2) 在Visual C++中建立一个project (a).Create new project Filesetting?Dynamic-Link Library 此时还要输入project的名称。

UG 软件及其二次开发在叶轮机械叶片模型生产中的应用

UG 软件及其二次开发在叶轮机械叶片模型生产中的应用

UG 软件及其二次开发在叶轮机械叶片模型生产中的应用adminUG 软件及其二次开发在叶轮机械叶片模型生产中的应用周红梅苏莫明/ 西北工业大学摘要:采用UG软件的二次开发工具UG/OPEN GRIP和UG/OPEN A PI开发了两种根据给定的叶轮机械叶片数据绘制出三维叶片模型片体的程序及实现可视化。

并在UG的建模环境中进行了三维叶片片体的缝合、修改和实体渲染以及对叶片的光滑度、曲率、强度、型面点数等的分析。

提高了叶片模型的精确程度,从而提高了实际的生产效率。

关键词:UG 软件叶轮叶片模型中图分类号:TP311.56 文献标识码: B文章编号:1006-8155(2007)02-0039-05App li cation of Impeller machine UG and Its Secondary E xploitation for Production of Blade Mo del in Turbo-machineAbstract: UG and its secondary exploitation tools UG/OPEN GRIP and UG/OPEN A PI w ere used to d evelop programs for draw ing of three-dimensional blade model s li p on the basis of impeller machine blade data and achieve visua li zation. In the mode li ng environment of UG, sew ed 、modified and e ntity romanced of 3D blade body w ere carried out. The s moothness 、the curvanture 、the strength and the number points on model face of blade w ere analyzed. The definition of blade model w as impr oved, and so the actual w orking ef ficiency w as raised.Key w ords : UG softw are Impeller Blade model0 引言叶轮机械广泛地应用于各工业部门,而叶轮机械中最重要的构件就是叶片,设计出性能优良的叶片,才能保证叶轮机械高效率工作。

UG-NX二次开发基础-OpenAPI

UG-NX二次开发基础-OpenAPI

22.1.1 概述
作为 UG NX 5.0 与外部应用程序之间的接口,UG/Open API 是一系列函数的集合。通过 UG/ Open API 的编程,用户几乎能够实现所有的 UG NX 5.0 功能。开发者可以通过用 C++语言编程来调 用这些函数,从而实现用户的需求。
(1)对 UG part 文件及相应模型进行操作,包括建立 UG NX 5.0 模型、查询模型对象、建立并 遍历装配体及创建工程图等。
22
CHAPTER
UG NX 5.0 二次开发基础
内容提要 ➢ UG/Open API 基础概念和语法知识 ➢ UG/Open API 常用对话框及其应用 ➢ 提示消息的发布与获取 Open/API(用户函数)是一个程序集合,使得程序员能够访问和操作 NX 对象模型。除此之外, Open/API 还提供了工具用来编辑和连接与 UG NX 5.0 风格一致的程序。UG/Open 二次开发模块是 UG NX 5.0 软件的二次开发工具集,可用于各种二次开发工作。利用该模块可对 UG NX 5.0 系统进 行用户化剪裁和开发,满足用户的开发需求。使用 UG NX 5.0 的二次开发时,用户需要具有一定的 C 语言基础。 UG/Open 包括以下几个部分。 (1)UG/Open API 开发工具:提供 UG NX 5.0 软件直接编程接口,支持 C、C++、Fortran 和 Java 等主要高级语言。 (2)UG/Open UIStyle 开发工具:是一个可视化编辑器,用于创建类似于 UG NX 5.0 的交互界面。 利用该工具,用户可为 UG/Open 应用程序开发独立于硬件平台的交互界面。 (3)UG/Open Menuscript 开发工具:对 UG NX 5.0 软件操作界面进行用户化开发,使得用户无 须编程即可对 UG NX 5.0 标准菜单进行添加、重组、剪裁或在 UG NX 5.0 中集成自己开发的软件功 能。 (4)UG/Open GRIP 开发工具:是一个类似于 APT 的 UG NX 5.0 内部开发语言,用户可利用该 工具生成 NC 自动化或自动建模等特殊应用。

UG_OPEN_API

UG_OPEN_API

U G/O p e n A P I基础知识●U G/O p e n A P I介绍●U F程序的基本概念●U F的对象模型与常用函数●编写U F程序的基础知识●U F工程的编译链接●U I S t y l e r●U F程序示例U G/O p e n A P I介绍U G/O p e n A P I的概念U G/O p e n A P I(U G开放应用程序接口),也称作U s e r F u n c t i o n(用户函数)。

它是U G/O p e n二次开发软件包的一个重要组成部分。

其核心包括了约2000个C 函数,分别用来实现大部分的U G操作。

通过调用这些C函数,用户自编的程序能查询并修改U G对象模型,处理使用者和U G界面的交互,控制U G的行为等。

另外,工作站版的U G/O p e n A P I工具中还包含了工作站平台开发所需的编译和链接工具。

在以下的段落中,U G/O p e n A P I均简写为U F。

U F的常用功能能实现用户和U G对象模型(U n i g r a p h i c s O b j e c t M o d e l)之间的交互能创建和编辑用户自定义对象(U D O)处理各种U G对象之间的联系,并为它们的显示和更新提供了完整的手段借助U G菜单脚本(U G/O p e n M e n u S c r i p t)和用户接口设计师(U I S t y l e r),U F能让第三方开发者定制U G的用户界面,把用户开发的程序集成入U G的菜单和对话框之中U F能让用户程序自行构造P a r t文件,查询U G对象的参数,创建装配图或平面图等微机版U F开发包的组成U F作为U G/O p e n K i t的一部分提供,安装在U G主目录的U G O p e n子目录下U F的头文件(U F_*.h)静态库文件(u g*.l i b)大量的U F示例程序(*.c)U F程序的基本概念外部U F和内部U FU F程序的源代码并不能被U G直接执行,和C程序一样必须通过编译形成动态链接库或可执行文件后才能发挥作用。

2_UG二次开发应用框架

2_UG二次开发应用框架

第2章二次开发应用框架2.1二次开发工程项目的创建二次开发工程的创建常用有3种:UG/Open AppWizard、Win32应用程序向导和MFC应用程序向导。

UG应用开发程序采用了动态链接库(DLL,Dynamic Link Library)技术,使用上述任何一种应用向导开发程序,最终生成的结果都是DLL 文件,提供UG进程加载。

UG内部应用程序开发规定以动态链接库方式对其进行功能扩展和应用开发。

动态链接库被映射到其他应用程序空间中执行,与链接它的应用程序可以看成是一体的。

在Visual 中将应用程序编译链接生成动态链接库文件(后缀名为.dll),UG启动时会自动加载动态链接库文件供用户调用,从而实现了应用开发程序与UG平台的无缝集成。

1、利用UG/Open AppWizard向导1.4节已经详细介绍了使用UG/Open APPwizard 创建一个简单的First Project程序。

该向导是UG软件本身提供的应用向导,随着UG版本和开发环境的升级而升级。

该向导操作简便,运行稳定,可以快速构建开发体系,但通常不支持MFC类库,因此常常应用于辅助工具的开发。

2、利用Win32应用程序向导(DLL)应用开发程序框架还可以采用Win32 DLL向导创建。

Win32 DLL向导创建Windows常规DLL,它只能导出C样式函数,不能导出C++类、成员函数和重载函数,同UG/Open AppWizard向导创建工程项目一样不支持 MFC。

利用Win32应用程序向导创建工程项目,包括两个步骤:新建项目和设置项目属性。

步骤一:新建项目打开Visual ,选择新建项目菜单项,将显示如图2-5所示的新建项目对话框。

在项目类型框中选择Visual C++项目下的Win32选项,在模板框中选择Win32 项目选项,在名称框中输入项目名称,在位置框中设置合适的路径,单击确定按钮接受输入。

图2-5 新建项目对话框这时将显示如图2-6所示的Win32应用程序向导-UFSolution对话框,选择应用程序设置属性页,在其中选择Dll,直接单击完成按钮建立新项目。

UG帮助文档NXOPENC

UG帮助文档NXOPENC

C#(UG)NXOPENCreate and display a dialogPrivate dialog As nxopen.uistyler.Dialogdialog = UI.GetUI().Styler.CreateStylerDialog("Sample.dlg")显示对话框dialog.Show()Alternatively, the UI Styler uses the following instead of the show function you open the dialog from the menu:或者,UI/Styler用以下代码实现从菜单打开的对话框的显示功能。

Dim isTopDialog As BooleanisTopDialog = falsedialog.RegisterWithUIMenu(isTopDialog)How styler items are declared:Private changeDialog As NXOpen.UIStyler.DialogItemPrivate changeStr0 As NXOpen.UIStyler.StringItemPrivate changeReal6 As NXOpen.UIStyler.RealItemHow styler items are initialized:(初始化)changeDialog = theDialog.GetStylerItem("UF_STYLER_DIALOG_INDEX",NXOpen.UIStyler.Dialog.ItemType.DialogItem)changeStr0=theDialog.GetStylerItem("STR_0",NXOpen.UIStyler.Dialog.ItemType.StringItem)changeReal6=theDialog.GetStylerItem("REAL_6",NXOpen.UIStyler.Dialog.ItemType.R ealItem)Register dialog box item callback functionsIn order to register these callbacks, NX provides an API “Add##Handler”, where ## is replaced with “Activate”, “Construct”, “Apply” as shown in following examples. For more information on callbacks of all the dialog items, see the callback section in Dialog Item Reference.When you exit a Styler dialog box normally, the destructor callback is executed at last. Selecting Cancel or OK will invoke Cancel or OK callback first, followed by the destructor callback.Event Handler representation(事件处理程序代表)In case of .NET (VB/C#) APIs, registration is done through Delegates, and represented as:namespace NXOpen.UIStyler{public class StringItem: UIStyler.StylerItem{public delegate int Activate(UIStyler.StylerEvent eventObject);public unsafe voidAddActivateEvent(UIStyler.PushButton.Activate activateevent)();}}In your C# application, the registration will look like this:changeDialog.AddConstructHandler(AddressOf constructor_cb, False)changeDialog.AddOkayHandler(AddressOf ok_cb, False)changeDialog.AddApplyHandler(AddressOf apply_cb, False)changeStr0.AddActivateHandler(AddressOf bend_radius_cb, False)changeReal6.AddActivateHandler(AddressOf tolerance_cb, False)Get and set dialog item attributesThe NX Open API provides get and set methods for the relevant attributes of each dialog item. You can set and get the visibility for a PushButton using the following code. Once you get the dialog item, you can set the property of the item anywhere in your program. Here “thePushButton0” is an object of PushButton dialog item.C#/*Getting visibility attribute*/Boolean isVisible = thePushButton0.Visibility;/*Setting visibility attribute*/thePushButton0.Visibility = true;Launch a dialog from the event callback of another dialogWhile registering a callback, you must determine whether this event can launch another dialog box, depending upon the value of the toggle for “Creates Dialog” on the resource editor. The last argument in every callback registering function indicates this. It is done by setting this argument to “TRUE” or “FALSE”.C#changeAction0 =(NXOpen.UIStyler.PushButton)theDialog.GetStylerItem("ACTION_0",Dialog.ItemType.PushButton);changeAction0.AddActivateHandler(new NXOpen.UIStyler.PushButton.Activate(action_0_act_cb), true);changeAction1 =(NXOpen.UIStyler.PushButton)theDialog.GetStylerItem("ACTION_1",Dialog.ItemType.PushButton);changeAction1.AddActivateHandler(new NXOpen.UIStyler.PushButton.Activate(action_1_act_cb), false);Run a VB application as a journal script1.Choose Tools→Journal→Play. The Journal Manager dialog box opens.2.Click Browse to navigate to the location of the VB file.3.Click Run.Run a VB application using DLL1.Open Microsoft Visual Studio .Net.2.Create a new project:o Choose File→New→Project.o Select Visual Basic Projects, Console Application and type the name with which you want to save the project (for example, test).o Click OK.3.In the Solution Explorer, select the AssemblyInfo.vb file from the project, right-clickand choose Delete from the shortcut menu. A dialog appears warning you that thefile will be permanently removed. Click OK.4.In the Solution Explorer, select theModule1.vb file from the project, right-click andchoose Delete from the shortcut menu. A dialog appears warning you that the file will be permanently removed. Click OK.5.Add references for the following files:o NXOpen.dllo NXOpenUI.dllo NXOpen.Utilities.dllo NXOpen.UF.dllIn the Solution Explorer, right-click References under the project. Choose AddReference→Browse→%UGII_ROOT_DIR%\out\managed. Press the CTRL key and select the dlls.6.In the Solution Explorer, highlight the project name, right-click and choose AddExisting Item. Navigate to the location of the .vb file and add it.7.Choose Project Menu→Properties. If you see "Module1" in Startup Project, pushdown list, select Startup Project as the new Module name displayed in the list. Click OK.8.Choose Build Menu→Build Solution, or Ctrl + Shift + B, or go to Solution Explorer,select the project name, right-click and select Build. This creates the required dll.9.To run the VB examples, do the following:o Choose File→Execute→NX Open. The Execute User Function dialog box opens.o Navigate to the location of the .dll file. It will be in the <Project Folder>\bin directory under the directory named for the VB project.o Select the .dll file and click OK.SelectionSelection class contains methods that update the selection structure associated with the active dialog box. Some method declarations for class Selection are:namespace NXOpen{class Selectionvoid SetSelectionMask(NXOpen::SelectionHandle * select /** Selection handle */,NXOpen::Selection::SelectionAction action /** Mask action */,const std::vector<NXOpen::Selection::MaskTriple> & mask_array /** Mask triples */);public: void SetSelectionCallbacks(NXOpen::SelectionHandle * select /** Selection handle */,const NXOpen::Selection::FilterCallback& filterproc /** Filter callback for additional user specificfiltering. */,const NXOpen::Selection::SelectionCallback& selcb /** Selection callback for application specificprocessing. */);C#∙To get the selection handleDim selectH As SelectionHandle = changeDialog.GetSelectionHandle()∙Create selection mask array∙Dim selectionMask_array(0) As NXOpen.Selection.MaskTriple∙With selectionMask_array(0)∙.Type = NXOpen.UF.UFConstants.UF_solid_type∙.Subtype = NXOpen.UF.UFConstants.UF_solid_edge_subtype∙.SolidBodySubtype = NXOpen.UF.UFConstants.UF_UI_SEL_FEATURE_ANY_EDGE End With∙Set the selection mask∙UI.GetUI().SelectionManager.SetSelectionMask(selectH,NXOpen.Selection.SelectionAction.ClearAndEnableSpecific, selectionMask_array)∙Set selection procedures∙UI.GetUI().SelectionManager.SetSelectionCallbacks(selectH, AddressOf filter_cb, AddressOf sel_cb)∙Define the filter_cb and sel_cb procedures as follows in order to register this in set selection procedure in the above step.∙Public Function filter_cb(ByVal selectedObject As NXObject, ByVal∙selectionMask_array As NXOpen.Selection.MaskTriple, ByVal∙selectHandle As SelectionHandle)∙As Integer∙ Try∙∙ // write your code here∙∙ Catch ex As NXException∙ ' ---- Enter your exception handling code here -----∙ MsgBox(ex.Message)∙ End Try∙End Function∙∙Public Function sel_cb(ByVal selectedObjects As NXObject(), ByVal ∙deselectedObjects() As NXObject, ByVal selectHandle As∙SelectionHandle)∙As Integer∙ Try∙∙// write your code here∙∙ Catch ex As NXException∙ ' ---- Enter your exception handling code here -----∙ MsgBox(ex.Message)∙ End Try∙ sel_cb = NXOpen.UIStyler.DialogState.ContinueDialog End FunctionDialog box layoutIntroductionAttachment class is used to set the attachment of the dialog item, for example left item, right item, top item, and so on and also the relative positioning of the item (for example, center, left, right, bottom, top). The following sections explain the corresponding NX Open APIs that manipulate the dialog item’s attachment (layout) structure.Set an attachment to dialog ItemFollowing set of APIs are used to set the attachment for a particular dialog box itemC#Attachment attach = changeAction0.InitializeAttachment();attach.SetCenter(false);attach.SetAttachTypeTop(Attachment.AttachType.Dialog);attach.SetTopDialogItem("INT_1");attach.SetTopOffset(0);attach.SetAttachTypeRight(Attachment.AttachType.Dialog);attach.SetRightDialogItem("UF_STYLER_DIALOG_INDEX");attach.SetRightOffset(50);attach.SetAttachTypeLeft(Attachment.AttachType.Dialog);attach.SetLeftDialogItem("UF_STYLER_DIALOG_INDEX");attach.SetLeftOffset(50);changeAction0.SetAttachment(attach);。

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环境下的大多数应用操作。

UGOPEN API教程

UGOPEN API教程

UG/OPEN API简明教程User Functions培训简明教程第一章绪论1 User Function是什么定义:在UG中用C语言开发应用程序的一个工具 2 User Function的两种形式External λ菜单λ(执行程序)Internal (动态连接库)3 User Function的组成与相互关系User Function可以分为以下几个部分:C语言库函数(1) 创建与查询几何实体(2) 分析几何实体(3) 创建与编辑特征(4) 创建与编辑表达式(5)λ应用程序(回调函数)λ对话框数据管理这几部分的关系可以作如下的描述:User Functions的菜单和对话框是程序与用户交互的工具,从菜单可以起动应用程序,对话框等,在对话框激活控件时,将调用相应的回调函数,回调函数和控件的关系在UIStyler 中定义。

应用程序和回调函数用基本的C语言和User Functions的库函数编码。

4 User Functions的执行User User Functions◊Execute UG/OPEN◊Functions的执行包括四种形式:(1) File 选取该菜单将出现一个文件打开对话框,选取相应用应用程序即可。

(2) Menu ACTION (3) UIStyler 回调函数(2)和(3)将在后面的章节中作详细描述(4) 将应用程序COPY到UGII_USER_DIR\startup子目录下,应用程序将在UG启动时自动运行。

5 User Functions的开发步骤有关软件工程方面的内容,不是我们要介绍的内容,要讲的是User Functions有关的开发步骤。

在下面讲述的内容是以NT下的Visual C++ 5.0和UG15.0为支持环境。

具体的开发步骤如。

(1) 建立C源程序Win32◊project◊New ◊(2) 在Visual C++中建立一个project (a).Create new project Filesetting◊Dynamic-Link Library 此时还要输入project的名称。

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

东北大学研究生考试试卷评分考试科目:模具设计及UG二次开发课程编号:阅卷人:考试日期:姓名:陈勇学号:1170071注意事项1.考前研究生将上述项目填写清楚2.字迹要清楚,保持卷面清洁3.交卷时请将本试卷和题签一起上交东北大学研究生院目录1.UG/OPEN二次开发简介: (1)2.功率计算对话框简要开发过程: (3)3.开发环境的设置: (3)3.1建立文件夹: (3)3.2设置环境变量: (3)3.3建立VC++与UG的连接 (4)4.开发过程 (4)4.1编写菜单文件.men (4)4.2进入UG利用UIStyle创建对话框 (4)5.创建应用程序 (7)6.添加构造对话框代码 (10)7.为计算按钮的回调函数添加代码 (10)8.添加切换按钮代码 (12)9.组建.dll文件 (13)采用UG/Open API的功率计算对话框开发1.UG/OPEN二次开发简介:UG/OPEN 是一系列UG开发工具的总称。

它们随UG一起发布,以开放性架构面向不同的软件平台提供灵活的开发支持。

它使第三软件商和UG用户能在其提供的平台上开发出适合自己需要的CAD产品。

UG/Open 套件组成:API, Grip, Menus cript ,UIStyler。

API:UG/Open API也称User Function,通过它可以在C程序和C++程序中以库函数的形式调用UG内部的近2000个操作。

Grip语言:GRIP(Graphics Interactive Programming)是一种专用的图形交互编程语言,开发者可以用GRIP编程的方法自动实现在UG下进行的绝大部分操作。

GRIP命令很像英语单词,语法与BASIC 和FORTRAN相似,有某些情况下对于一些高级操作,用GRIP编程的方法比用UG交互的方法更有效,在UG交互环境下可以实现的功能用GRIP几乎全都可以实现。

UG提供了一个名叫UG Open GRIP 的GRIP语言编辑器,用这个工具可以编辑、修改、编译、连接程序。

Menus cript:此项功能使用户或第三方软件商通过文本编辑器编辑UG菜单文件,以生成用户化的菜单进而集成他们的特殊应用。

UG/Open Menus cript支持UG主菜单和快速弹出式下拉菜单的修改,通过它可以改变UG菜单的布局、添加新的菜单项以执行用户二次开发程序、User Tools文件及操作系统命令等。

UG/Open Menus cript的使用需专门授权。

运用UG/OpenMenus cript可以完全改变UG软件的主界面,需谨慎使用以防出现混乱。

UIStyler:是用户或第三方软件商开发UG对话框的可视化工具,它比User Tools具有更强的功能。

使用这个工具可以避免复杂的图形用户接口GUI(Graphics User Interface)编程。

其设计的对话框的方式与Visual C++很相似。

即利用对话框中基本控件的组合生成不同的对话框,对话框中所有控件都是实时可见。

UG/Open 的主要功能实现就是利用UG/OPEN API,实质上就是UG提供的访问UG内部对象或核心的一个函数库。

UG/Open API(Application Programming Interface, 应用编程接口),使用户可以使用标准的C语言编译器,以习惯的格式编写出面向UG的二次开发程序。

此时可以充分地发挥C语言编译和运行效率高,功能强大的特点。

实践证明,这些API函数也可以无缝地集成到C++程序中,并利用强大的Microsoft Visual C++ 集成环境进行编译。

这样,我们就可以充分地发挥出VC强大的功能和极其丰富的资源,包括MFC类库,使用面向对象的软件工程方法,高效高质地进行软件的开发。

同时,也保证了对企业已有的各种源代码资源(通常使用C语言编写)的利用。

UG/Open API 函数能在两种不同的环境下运行,根据编译链接情况的不同,UG/Open API 二次开发程序又具有两种形式:A.外部式(External):此时UG/Open API程序可以脱离UG环境,在操作系统下单独运行,或者作为UG的子进程独立运行。

特点:调用灵活,用途广泛,无法利用UG的交互界面。

B.内部式(Internal):此时UG/Open API程序在UG环境下运行,与程序相关的各种事务通过UG代理执行。

这样做的一个好处是可执行程序更小,同时链接的速度也更快。

另外,一旦程序被装入,它将驻留在内存中,下次使用时不需重新加载,这样也节省了时间。

而且这种方式下用户可与计算机交互,开发的程序能与UG无缝集成。

特点:直接控制UG的行为,和用户交互。

UG/Open++提供了一个面向对象的UG开发接口。

使用这些接口可以通过C++类的层次关系访问UG的对象和功能。

这个类层次结构提供了许多功能,例如,创建,读取,修改UG对象,以及控制UG软件的运行。

此外,通过继承UG标准类,用户可以定义自己的新类,从而拓展了原来的类层次结构。

UG/Open++实质上是在UG/Open基础上,提供了C++开发接口。

实际上,UG/Open++由两个库组成:Openpp库提供了UG对象和功能,Vmathpp库提供了一些通用的向量代数操作。

但目前看来UG/OPEN++提供的功能实现起来过于繁琐,许多功能还不完善,有待于进一步提高。

UG/Open++应用程序也可以分为内部应用程序和外部应用程序两种。

内部应用程序事实上是一个UNIX的共享库或WINDOWS NT下的动态连接库。

内部应用程序必须运行在UG软件中。

外部应用程序是一个可以独立执行的文件,无须UG软件同时运行。

2.功率计算对话框简要开发过程:一般情况下,设备的设计都是按理论值计算的,但因设备的使用场合、环境、工作时间等都不相同,所以要将理论值乘一个系数,以确保设备的使用安全。

本实例在UG 主菜单栏上创建【用户界面】菜单,并添加一个【UG 用户界面】按钮。

单击该按钮,打开如图所示的“功率计算”对话框。

该对话框用以获得计算功率和工况系数,其中计算功率=输入功率×工况系数。

3.开发环境的设置:3.1建立文件夹:首先建立两个目录,建立第一个目录E:\my_custom_ug,在这个目录下建立两个新的目录:E:\my_custom_ug\application和E:\my_custom_ug\startup。

其中application文件夹用于存放UIStyler对话框文件及与功能扩展相关的菜单文件、应用程序文件。

Startup文件夹用于存放加载的DLL文件和.men文件。

3.2设置环境变量:再Windows中设置一个新的环境变量:UGII_USER_DIR=E:\my_custom_ug。

3.3建立VC++与UG的连接检查目录Microsoft Visual Studio\Common\MSDev98\Template 下是否有文件ugopen.awx 及ugopen.hlp。

如果没有则将这两个文件复制到上述文件夹内,建立VC++与UG的连接。

4.开发过程4.1编写菜单文件.menVERSION 120EDIT UG_GATEWAY_MAIN_MENUBARBEFORE UG_HELPCASCADE_BUTTON CUSTOM_UI_MENULABEL 用户界面END_OF_BEFOREMENU CUSTOM_UI_MENUBUTTON UG_UI_BUTTONLABEL UG 用户界面ACTIONS UG_UI_ACTIONEND_OF_MENU菜单文件的内容如下所示,命名菜单文件为ui.men 并保存到相应的startup文件夹。

4.2进入UG利用UIStyle创建对话框打开UG点击【应用】,再点击【用户界面编辑器】,进入UIStyle模块,开始创建功率计算对话框。

首先点击资源编辑器属性按钮开始基本设置,对话框标题为功率计算,提示为根据输入功率和工况系数计算功率,前缀名UI_CAL,按钮样式选择确定和取消,如下图所示。

点击资源编辑器回调按钮开始回调函数的设置,具体设置如下图所示。

点击分组按钮,在对话框中添加一个分组,标签为输入参数,点击实数按钮,在分组中添加两个接受实数的输入字段。

第一个实数输入字段标签为输入功率P(KW),第二个实数输入字段标签为工况系数,如图所示。

添加两个按钮,第一个按钮的标签和控件ID为计算和UI_CAL_ACTION_ CAL,添加回调函数是UI_CAL_cal_pc_cb,此按钮用于获得输入功率和工况系数并计算功率,最后将已知参数和计算结果写入到多行文本框中,设置第二个按钮的标签和控件ID为切换和UI_CAL_ACTION_FOR_TU,回调函数是UI_CAL_switch_cb,此按钮用于右方的下拉列表框与多选列表框的可见性,初始位图为点击后变成。

创建多选列表框,控件ID为UI_CAL_MULTI_LIST_ PROMPT,添加工况系数到项栏目中,工况系数为:启动情况:空、轻载启动重载启动每天小时数:<10 10~16 >16 <10 10~16 >16载荷变动最小: 1.0 1.1 1.2 1.1 1.2 1.3载荷变动小: 1.1 1.2 1.3 1.2 1.3 1.4载荷变动较大:1.2 1.3 1.4 1.4 1.5 1.6载荷变动最大:1.3 1.4 1.5 1.6 1.6 1.8创建选项菜单,控件ID和标签为UI_CAL_OPTION_KA和依据上表选择工况系数,回调函数为UI_CAL_sel_ka_cb,作用是从下拉列表中选择工况系数,并将结果返回到实数控件工况系数KA中。

创建多行文本框,标签为计算结果,用来显示根据功率和工况系数所计算的结果。

对话框创建结束,所包含的控件如图所示。

根据以上内容进入UG 的UIStyler 模块,创建好对话框后将其保存为文件名是UG_UI_calculate.dlg 文件,此时系统会生成UG_UI_calculate_template.c 和UG _UI_calculate.h 两个文件分别将其更名为UG_UI_calculate_dialog.c 和UG_UI_ calculate_dialog.h 备用。

5.创建应用程序使用VC++6.0,创建应用程序的工程,工程名称为UG_UI。

注意应用程序使用ufsta 函数作为入口函数,当应用程序结束时,自动卸载。

将文件UG_UI_ calculate_dialog.c 和UG_UI_calculate_dialog.h复制到UG_UI 工程所在文件夹内,将两个文件加入工程。

由于修改了UG 创建的文件名,打开UG_UI_calculate _dialog.c 文件,将#include <UG_UI_calculate.h> 修改为#include“UG_UI_ calculate_dialog.h”。

相关文档
最新文档