NX二次开发非常有用.docx

上传人:b****8 文档编号:10227227 上传时间:2023-02-09 格式:DOCX 页数:88 大小:1.09MB
下载 相关 举报
NX二次开发非常有用.docx_第1页
第1页 / 共88页
NX二次开发非常有用.docx_第2页
第2页 / 共88页
NX二次开发非常有用.docx_第3页
第3页 / 共88页
NX二次开发非常有用.docx_第4页
第4页 / 共88页
NX二次开发非常有用.docx_第5页
第5页 / 共88页
点击查看更多>>
下载资源
资源描述

NX二次开发非常有用.docx

《NX二次开发非常有用.docx》由会员分享,可在线阅读,更多相关《NX二次开发非常有用.docx(88页珍藏版)》请在冰豆网上搜索。

NX二次开发非常有用.docx

NX二次开发非常有用

盐城工学院优集学院

 

实验一熟悉VisualStudio2005开发环境及UG二次开发工程项目创建的方法

一、实验目的

1、了解和使用VisualStudio2005集成开发环境;

2、熟悉VisualStudio2005环境的基本命令和功能键;

3、掌握UG二次开发工程项目创建过程和方法;

4、理解简单的UG二次开发程序结构。

二、实验内容

分别使用UG/OpenAppWizard向导和Win32应用程序向导(DLL)的方法创建UG二次开发工程项目,并利用VisualStudio2005集成环境来编辑、编译并运行下面简单UG二次开发程序:

#include/*包含UF_initialize()和UF_terminate()函数原型的头文件*/

#include /*包含uc1601()函数原型的头文件*/

externvoidufusr(char*param,int*retcod,intparam_len)

{

/*获取UG/OPENAPI的执行权限*/

if(UF_initialize()!

=0)

return;

/*弹出消息窗口,显示“Hello,UG!

”*/

uc1601("Hello,UG!

",1);

/*释放UG/OPENAPI的执行权限*/

UF_terminate();

}

三、实验步骤

1利用UG/OpenAppWizard向导

为便于了解UG/OpenAPI的使用,下面将创建一个简单的应用开发程序,其功能是在UG环境中显示一个消息对话框“Hello,UG!

”。

运行平台为WindowsXP,开发平台为VisualStudio.Net和UG/NX4。

1.1创建UG二次开发工程项目

利用UG/OpenAppWizard向导创建工程项目,该向导是UG软件本身提供的应用向导,不支持MFC,常应用于辅助工具的开发。

下面将在VisualStudio.Net和UG/NX3开发平台上利用UG/OpenAppWizard向导创建工程项目。

运行VisualStudio.Net,新建一个项目,如图1-1所示。

选择对话框中的Templates中的NXOpenWizard向导创建UG应用工程,在Name文本框中输入工程名称“FirstProject”,在Location文本框中输入工程路径,然后单击OK按钮确定,NXOpenWizard(Overview)对话框,如图1-2所示。

对话框将提示当前项目的默认设置,如果用户接受当前默认设置,可以直接单击Finish按钮确定,此时向导将按默认设置创建工程项目。

如果不接受当前默认设置,用户可以通过NXOpenWizard(ApplicationSettings)对话框和NXOpenWizard(EntryPoints)对话框来进行修改,两个对话框分别如图1-3和图1-4所示。

NXOpenWizard(ApplicationSettings)对话框可以让用户选择工程项目的运行模式和编程语言,NXOpenWizard(EntryPoints)对话框可以让用户选择程序入口方式及卸载方式,最后单击Finish按钮确定。

图1-1新建项目对话框

图1-2NXOpenWizard(Overview)

图1-3NXOpenWizard(ApplicationSettings)

图1-4NXOpenWizard(EntryPoints)

1.2建立程序

此时用户可以在生成的工程模板中添加代码,在VisualStudio.Net集成开发环境中,打开hello.cpp文件代码窗口,输入代码并保存。

输入代码如下:

#include/*包含UF_initialize()和UF_terminate()函数原型的头文件*/

#include /*包含uc1601()函数原型的头文件*/

externvoidufusr(char*param,int*retcod,intparam_len)

{

/*获取UG/OPENAPI的执行权限*/

if(UF_initialize()!

=0)

return;

/*弹出消息窗口,显示“Hello,UG!

”*/

uc1601("Hello,UG!

",1);

/*释放UG/OPENAPI的执行权限*/

UF_terminate();

}

1.3编译链接项目

点击主菜单“生成→生成FirstProject”,如图1-5,对项目FirstProject编译、链接,生成.dll文件(文件位置在项目属性的“链接器→常规→输出文件”中设置)。

图1-5编译链接项目

1.4调试程序

方法一:

在程序编译之后,首先在程序中设置断点,点击主菜单“调试→启动”,如图1-6所示,启动NX系统。

在NX系统中激活.dll程序,程序进入调试状态,F11是逐语句调试,F10是逐过程调试(注意,在调试程序之前,一定对项目属性的调试进行设置)。

图1-6调试程序

方法二:

在程序编译、代码中设置断点后,启动UGNX4;回到VisualStudio.Net集成开发环境,点击主菜单“工具→调试进程”,系统打开“进程”对话框,如图1-7所示,双击“可用进程”列表中“ugraf.exe”,系统打开“附加进程”对话框,如图1-8所示,选择要调试程序类型为“Native”,单击“确定”按钮,系统进入程序调试状态,按“F11”或“F10”进行逐语句或逐过程调试。

图1-7

图1-8

1.5运行应用程序

在UG界面中选择菜单File→Execute→NXOpen,在系统弹出的一个文件选择对话框中选择应用程序“HelloUG.dll”。

如图1-9、图1-10所示。

图1-9

图1-10

图1-11

2利用Win32应用程序向导(DLL)

应用开发程序框架还可以采用Win32DLL向导创建。

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

利用Win32应用程序向导创建工程项目,包括两个步骤:

新建项目和设置项目属性。

步骤一:

新建项目

打开VisualStudio.NET,选择新建项目菜单项,将显示如图1-12所示的新建项目对话框。

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

图1-12新建项目对话框

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

图1-13Win32应用程序向导-UFSolution对话框

新建的项目中将会有一些向导默认添加的文件,如图1-14所示。

图中列出了新建项目中已有的文件。

 

图1-14 解决方案资源管理器图

步骤二:

设置项目属性

选择项目菜单下的属性项,将显示如图1-15所示的UFSolution属性页。

图1-15 项目属性页-常规

在图1-15中要确认项目默认值框中配置类型为动态库(.dll),然后,选择调试选项,将显示图1-16。

在图1-16中,将操作框中的命令项设置为系统中的UG执行文件,即ugraf.exe,设置这一项的目的是为了便于程序的调试。

图1-16项目属性页-调试

接下来,选择C/C++项中的常规选项,将附加包含目录设置为$UGII_BASE_DIR\UGOPENPP;$UGII_BASE_DIR\UGOPEN,如图1-17所示。

设置这一项的目的是为了包含UF的一些头文件。

图1-17项目属性页-C/C++-常规

选择C/C++项中的代码生成选项,将运行库设置为多线程调试DLL(/MDd),如图1-18所示。

图1-18项目属性页-C/C++-代码生成

选择链接器项中的常规选项,设置输出文件,将附加库目录设置为$UGII_BASE_DIR\UGOPEN;$UGII_BASE_DIR\UGOPENPP,如图1-19所示。

图1-19项目属性页-链接器-常规

选择链接器项中的输入选项,设置附加依赖项为libufun.liblibugopenint.lib。

这两个文件是在进行UG二次开发时必需的库载入文件,如图1-20所示。

图1-20项目属性页-链接器-输入

设置好以上选项后,按应用按钮,将所设置的属性应用于项目。

四、实验要求

1. 复习教材有关内容。

2. 掌握UG二次开发程序项目的建立、程序调试步骤。

3. 完成实验报告。

实验二UIStyler、Menuscript创建用户界面、菜单和工具条

一、实验目的

1、掌握利用UIStyler创建所需的对话框,熟练掌握对基本控件的访问;

2、掌握MENUSCRIPT菜单脚本语言,能够创建所需的菜单和工具条。

二、实验内容

1UIStyler对话框的应用

本次实验将创建以下对话框:

菜单和工具条:

1.1对话框的应用环境

UG的UIStyler应用模块提供给用户可视化建立UG风格对话框的功能。

在UG主菜单中选择菜单项“Application→UserInterfaceStyler...”,进入UIStyler应用模块,UIStyler可视化界面如图2-1所示。

图2-1UIStyler可视化界面

1.2对话框设计

UIStyler可视化界面包括基本对话框、对象浏览器、属性编辑器、控件栏和控件编辑工具五部分。

用户在控件栏中选择控件后放置在基本对话框中,通过对象浏览器查看在基本对话框中设置的控件对象信息、利用控件编辑工具调整控件布局,通过属性编辑器编辑对话框及指定控件的属性。

利用UIStyler创建对话框并保存,系统将自动生成三个文件:

1.*.c文件:

对话框C语言源文件的模板文件,用户复制该模板文件,补充回调函数代码,将生成对话框应用程序文件,.dll文件应放在应用程序主目录的startup子目录下,在UG系统启动是加载;

2.*.h文件:

定义*.c文件中函数原型的*.c文件的头文件;

3.*.dlg文件:

对话框文件,该文件需要被复制到应用程序主目录的application子目录下,由用户应用程序调用。

1.3对话框的应用步骤

(1)设计对话框界面草图;

(2)利用UIStyler工具创建对话框;

(3)设置对话框中的回调函数;

(4)保存对话框;

(5)将系统自动生成的对话框C语言模板文件复制到VC++项目中;

(6)修改C文件,添加回调函数代码,编译连接文件;

(7)将对话框文件(.dlg)复制到相应的目录下,将共享库文件(.dll)复制到相应的目录下;

(8)运行、测试及调试应用程序。

具体每一步的详细介绍请参考系统帮助文件中Tools→UserInterfaceStyler。

在UIStyler对话框开发过程中,涉及到编程的仅5、6两个步骤。

1.4基本对话框

图2-2是一个最简单的对话框,由三个系统按钮和对话框标题组成。

对话框的属性包括基本属性、被选择属性和回调函数。

图2-2基本对话框

1、对话框基本属性

对话框的基本属性包括对话框标题、提示信息、对话框前线名称、调用对话框的形式以及导航按钮等。

对话框标题(DialogTitle):

对话框标题显示在对话框的标题栏中。

提示信息(Cue):

对话框提示信息将显示在UG的提示栏中。

前缀名称(PrefixName):

对话框前缀名称将作为所有对话框控件名和对话框回调函数名的前缀,默认值为CHANGE。

注意:

同一工程中的不同对话框应选用不同的前缀名称。

对话框类型(DialogType):

对话框类型有Bottom和Top两种,Bottom类型表明该对话框需使用导航按钮,Top类型则相反,一般采用Bottom类型。

对话框调用点(LaunchDialogFrom):

对话框调用点是指对话框被调用的位置和方式,包括回调函数调用、菜单调用、UserExit调用和所有调用方式。

导航按钮设置(NavigationButtons):

UIStyler提供了OK、BACK、APPLY和CANCEL4种导航按钮。

对所有的对话框,OK和CANCEL按钮都是必须的。

对已经选择的导航按钮,还可以指定其激活状态。

在导航按钮激活栏里没有被激活的导航按钮,在对话框被调用时,按钮是不能被单击的。

对话框尺寸(AllowDialogtoResize):

当对话框的允许尺寸改变属性被设置时,对话框在调用时,允许用户改变对话框的尺寸。

2、对话框选择属性

对话框的选择属性包含了对话框激活开关、对话框选择方式和对话框选择范围定义。

选择方式定义了在当前对话框被激活时,在窗口中选择对象的方式是否变化。

其共有3种,即无变化(继承上次选择操作的属性定义)、单选、鲁棒选择等。

选择范围定义了当前对话框被激活时,被选择对象所有范围是否变化。

其有4种方式,即不变化、在装配中、仅在工作部件中、在工作部件和子装配中。

2、对话框基本回调函数

所有对话框都有6种基本回调函数,它们分别是APPLY按钮的回调函数、BACK按钮的回调函数、CANCEL按钮的回调函数、OK按钮的回调函数、对话框构造函数和对话框析构函数。

对话框构造函数在UG构造对话框完成之后,用户应用执行之前调用。

由于此时对话框上的所有控件都可以被使用,因此构造函数是初始化对话框的最佳位置。

对话框析构函函数是在UG对话框关闭之前被调用,此时,对话框中的控件仍然可以被访问到。

对话框析构函数为用户提供了诸如释放内存等析构操作的位置。

2菜单文件

2.1环境变量设置

UG系统在起动的时候,是通过环境变量实现来获得系统菜单文件、用户菜单文件以及来识别这两类文件。

系统环境变量可以在文件ugii_env.dat中找到定义,若要修改时,也可以在这个文件中修改,但要注意最好保持系统定义的值。

1、系统默认的路径与环境变量

系统默认的主菜单文件ug_main.men、弹出式菜单文件ug_view_popup.men、与应用相关的菜单文件的位置由三个环境变量控制,如下表所示:

表2-1与系统菜单文件相关的环境变量

环境变量

描述

UGII_DEFAULT_MENU_DIR

UG的系统菜单文件所在的路径

默认值为$UGII_BASE_DIR/ugii/menus

UGII_MAIN_MENU_FILE

主菜单文件的全路径

$UGII_DEFAULT_MENU_DIR/ug_main.men

UGII_VIEW_POPUP_MENU_FILE

弹出式菜单文件的全路径

$UGII_DEFAULT_MENU_DIR/ug_view_popup.men

环境变量UGII_DEFAULT_MENU_DIR的值不可更改。

环境变量UGII_MAIN_MENU_FILE和UGII_VIEW_POPUP_MENU_FILE的值可以更改。

你可以把ug_main.men和ug_view_popup.men剪切到一个目录下,然后让这两个环境变量指向这个目录,UG仍然可以正确地加载菜单。

与应用相关的菜单文件是由应用的APPLICATION_BUTTON下的MENU_FILES指定的。

2、用户相关的路径与环境变量

当UG起动时,它会从环境变量UGII_CUSTOM_DIRECTORY_FILE指定的文件(默认为$UGII_BASE_DIR/ugii/menus/custom_dirs.dat,在文件ugii_env.dat中定义)中搜索用户接口定制文件(包括用户菜单脚本文件,工具条文件,共享库等)所在的路径。

这样,用户就可以在custom_dirs.dat的文件未尾添加一行路径,然后,将接口定制文件放在这个路径下(要创建与路径相应的文件夹),当UG起动时,就会像加载系统文件一样来加载用户的文件。

举个例子,当在custom_dirs.dat中添加了一行:

D:

\UFSolution,就要建立如图所示的文件夹:

图2-3添加文件夹UFSolution

添加文件夹时,要求UFSolution及它子目录的名称中不能含有中文。

下面,让我们来看看UFSolution中的各个子目录的用途:

●startup:

与整个UG系统应用都相关的文件存放的文件夹。

其中的文件在UG起动时自动加载。

●application:

与某个特定的应用模块相关的文件存放的文件夹。

当进入这些特定的模块时,其中的文件被自动动态加载。

●bmp:

存放用户的位图资源文件。

●udo:

存放动态库文件。

动态库文件可以放在udo中,也可以放在startup中,在UG起动时加载。

用户入口也以设置系统环境变量UGII_VENDOR_DIR(或UGII_SITE_DIR、UGII_USER_DIR),使它为D:

\UFSolution,这与上面的方法有同样的效果。

注意:

在文件custom_dirs.dat中可以添加多个路径,在这些路径所指向的目录下,存放用户的接口定制文件,当有两个同名的接口定制文件存在时,就可以发生冲突。

这时,UG是使用第一个被搜索到的接口定制文件,而忽略第二个。

2.2定制

创建一个菜单通常使用编辑模式,通过增加一个短的菜单文件去定制标准菜单。

使用附加菜单文件的方法定制菜单的一个优点是这些文件很容易地自动地装被装载。

与应用无关的菜单文件放置在startup文件夹下,与应用相关的菜单文件放置在相应的application文件夹下。

与应用相关的菜单文件在进入该应用时将被加载。

另一个优点是在UG版本升级时更加容易,因为只有很小的附加菜单文件需要修而不需要改动诸如ug_main.men的标准菜单文件。

附加菜单文件也使维护更加方便,因这它们通常是一个很小的菜单文件。

菜单脚本文件(*.men)为文本文件,可以用记事本创建和编辑。

菜单脚本文件中指明了菜单位置、菜单项目名称及所调程序名称等。

下面将在UGNX主菜单的最后面添加“实例”->“创建垫圈...”菜单项为例,说明菜单的创建方法。

(1)用记事本打开UG安装目录下的UGII\ugii_env.dat文件,找到#UGII_USER_DIR=${HOME}行,去掉#和${HOME},在=号后输入自己的目录,比如:

E:

\exmaple\menu,保存后退出此文件。

这主要是告诉UG到那里去寻找用户定义的菜单文件。

(2)在用户目录(本例为E:

\exmaple\menu)下新建两个文件夹,取名为startup和application。

(3)在startup目录下新建一个文本文件,输入以下内容,其中ACTIONS后面跟的是需要调用的动态连接库或对话框文件(本例为DianQuan.dlg).

VERSION120

!

------------------------------

EDITUG_GATEWAY_MAIN_MENUBAR

TOP_MENU

CASCADE_BUTTONCUSTOM_MYMENU

LABEL实例

END_OF_TOP_MENU

MENUCUSTOM_MYMENU

BUTTONMAKE_GASKET

LABEL创建垫圈...

ACTIONSDianQuan.dlg

END_OF_MENU

(4)把编译连接好的动态连接库文件(本例为DianQuan.dlg)复制粘贴到application目录下。

(5)启动UG,标题为“实例”的菜单出现在主菜单最后面,单击此下拉菜单,再单击“创建垫圈...”菜单即可执行DianQuan.dlg文件。

3工具条

工具栏(Toolbar)是一种用来快速实现用户常用功能的工具图标的集合,它包括了一些常用的菜单命令。

用户可以根据需要自定义工具栏,形成自己的风格。

具体实现方法是制作或编写工具图标文件(BMP文件)与工具栏文件,工具栏文件是以.tbr为扩展名的文本文件。

UG启动时载入工具栏文件,并根据文件中的命令载入相应工具图标组成用户工具栏。

首先在用户工程路径下的application文件夹中创建工具图标文件,文件名分别为DianQuan.bmp,图标的标准大小为24×24(像素×像素)。

然后在用户工程路径下的startup文件夹中创建工具栏脚本文件DianQuan.tbr,并输入如下代码:

TITLE实例

VERSION170

!

------------------------------

BUTTONMAKE_GASKET

LABEL创建垫圈

BITMAPDianQuan.bmp

各行含义如下:

<1>工具栏的标题

<2>工具栏脚本文件的版本信息

<3>定义工具栏被导入时的起始位置,有NO、TOP、BOTTOM、LEFT和RIGHT5种情况,分别表示起始位置为浮动、顶部、底部、左端和右端

<4>工具栏按钮的名称,与菜单脚本文件中相应菜单命令的名称相同

<5>工具按钮的标题

<6>工具按钮图标的文件名,默认路径为工程路径下的application文件夹。

三、实验要求

1、写出程序,并调试程序,要给出测试数据和实验结果。

2、整理上机步骤,总结经验和体会。

3、完成实验报告和上交程序。

实验三外部数据库访问

一、实验目的

1、掌握利用API文件操作函数访问外部数据,包括文本文件和电子表格;

2、掌握利用ODBC数据源访问外部数据。

二、实验内容

1利用ODBC访问外部数据

ODBC(OpenDatabaseconnectivity开放式数据库互连)是由微软公司提出的一个用于访问数据库的统一界面标准,它提供了一个一致的应用程序编程接口,该接口使用一个针对数据库的驱动程序与不同的数据库协同工作。

DSN(DataSourceName)是用于指定ODBC与相关的驱动程序相对应的一个入口,所有DSN的信息由系统进行管理,一般来讲当应用程序要使用ODBC访问数据库时,就需要指定一个DSN以便于连接到一个指定的ODBC驱动程序。

利用ODBC访问外部数据,首先要配置ODBC数据源,即创建ODBC的DSN;然后读取ODBC指定数据源中的数据。

1.1配置ODBC数据源

1、选择"控制面板"中的"管理工具"下面的"数据源(ODBC)",如下图所示。

2、在弹出的ODBC数据源管理器对话框中,选择系统“DSN”,并单击"添加…"按钮,将出现创建新数据源对话框,如下图所示。

3、在创建新数据源对话框中,选择你将访问数据源相应的驱动程序,比如,我们将访问Access数据库中的数据,此时可选择“MicrosoftAccessDriver(*.mdb)”,选择后,单击“完成”按钮,此时,出现数据源相应驱动程序的选择界面,如下图所示。

4、在驱动程序选择界面中,数据源名框中输入DSN的名称,比如,Screw。

DSN的名称非常重要,它是后期访问数据源的唯一标识。

输入DSN的名称后,可通过“选择(S)…”按钮选择相应数据源所在的路径,如果选择成功,将在界面出现已选中的数据源的完整路径和名称,如下图所示。

5、点击“确定”按钮,此时在“系统DSN”中就会出现你刚创建

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 广告传媒

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

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