找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 20790|回复: 11
打印 上一主题 下一主题

基于VC++的UG二次开发技术(恳求加分)

[复制链接]
跳转到指定楼层
1
发表于 2005-2-18 14:55:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
摘  要   本文叙述了如何在以Windows NT 4.0为操作系统的微机工作站上进行基于VC+
+60的UG(V14.0)二次开发,并对UG的开发模块和UG/Open API的编程方法作了介绍。
关键词  VC++UG  UG/Open   API   二次开发  编程
1  概述
    UG是一个功能强大的通用3D机械CAD/CAM软件系统,用户若要以它为平台进行二次开发,实现大型的机械设计系统(如模具智能化专家系统CAD软件),就必须利用UG的开发模块,借助C/C++,在以UNIX为操作系统的工作站上或以Windows为操作系统的微机工作站上编写C程序,进而生成可执行文件。本文的目的就在于叙述如何在以Windows NT 40为操作系统的微机工作站上进行基于VC++60的UG(V140)二次开发,并对UG的开发模块和UG/Open API的编程方法作了介绍。
1.1 UG/Open
  它通过一个开放的平台包含一系列的基于UG的应用软件的柔性集成。其目的是为了计算机集成应用,支持第三方和UG的应用,使基于不同的计算机平台从不同的场所(不同的网络)实现数据共享,甚至通过Internet访问它的内容。它在注重于集成化和本地化的软件应用的同时,还致力建立一个能供各方利用的开放体系机构。
    UG/Open提供了一种使顾客能够完成下列工作的应用软件和工具:
(1)通过UG/Open API 或UG/Open GRIP 提供了与UG对象模型(UG Object Model)的接口;
(2)生成和管理用户自定义对象(User Defined Objects或Custom Objects),包括管理它们与U对象的相关性,提供一种刷新和显示用户自定义对象的方法;
(3)提供反映第三方应用软件的UG图形界面本地化方法;
(4)利用相关产品如 IMAN ITK和Parasolid;
(5)利用和集成新的UG/Open技术并使之成为应用可能。
1.2 UG/Open API(User Function)
    是一个允许程序访问并影响UG对象模型的程序集,除程序外,它还提供一个UG所共容的编译和联接程序的方式。它支持C/C++语言,头文件(header files)支持ANSI C。
    在UG软件系统中与它有关的还有:UG/Open GRIP,UG/Open GRIP NC,UG/Open MenuScript,UG/Open IMAN ITK和Parasolid。
1.3 UG/Open API执行许可证(execute license)  
在安装UG/Open API软件包的每一个地点都需要有UG/Open开发许可证(develop license)和执行许可证来开发运行一个UG/Open API程序,在一个工作站上同时执行多进程 API程序时需要附加的UG/Open API执行许可证,用户通过UF_initialize()来访问并通过 UF_terminate()来返还这些许可证。例程和UG/Open API头文件在用户应用平台UG安装目录下的ugopen目录里,Windows NT系统是%UGII_BASE_DIR%\ugopen,用户可以访问并利用这些程序和文件。
  2 UG/Open API在Windows NT操作系统里的安装  
2.1 UG(V14.0)要求C编译器版本为Microsoft Visual C++V5.0以上,本文所述为VC++6. 0版本。  
2.2 定义环境变量(environment variables)  
定义方法:开始→设置→控制面板→系统,在"系统特性"框里点击"环境"栏,在"用户变量"里即可设置。 必需的环境变量:UG_USERFCN, 该变量指向UG/Open API库函数所在的目录。其值为:C:\ug\Eds140\Ugopen  
其它的环境变量:  
(1)变量:EXCEEDHOME,若欲使用包含UG/Open API Motif程序的prototypes的uf_u i_xt.h头文件时必须定义。其值为:C:\ug\exceed;  
(2)变量:EXCEEDLIBS,在uflink连接时指定应包含哪个eXceed/NT-XDK库函数时需定义,其值为:C:\ug\exceed\xdk;  
(3)变量:INCLUDE,使C预处理器查找头文件(.h files)。其值为:D:\App\Visu alStudio\VC98\Include;  
(4)变量:LIB,它使C连接器查找对象库函数并输入库函数。其值为:C:\ug\Eds 140\Ugopen\ugraf.lib; C:\ug\Eds140\Ugopen\uguser.lib;  
(5)变量:PATH,它使系统查找可执行文件、DLLs(Dynamic Link Library,动态连接库函数)和Scripts(命令表)。其值为:C:\ug\Eds140\Ugii\og1;C:\ug\excee d;D:\App\VisualStudio\VC98\Bin;C:\ug\Eds140\Ugii。
  结论,在用户变量里定义: UG_USERFCN C:\ug\Eds140\Ugopen(也可在ugii_env文件中定义) EXCEEDHOMEC:\ug\exceed EXCEEDLIBSC:\ug\exceed\xdk INCLUDED:\App\VisualStudio\VC98\Include LIBC:\ug\Eds140\Ugopen\ugraf.lib; LIBC:\ug\Eds140\Ugopen\uguser.lib; D:\App\VisualStudio\VC98\Lib PATHC:\ug\Eds140\Ugii\og1;C:\ug\exceed; D:\App\VisualStudio\VC98\Bin;C:\ug\Eds140\Ugii  
3 在VC++里创建一个UG/Open API Project  
3.1 进入Microsoft Visual C++。 可建立一个桌面快捷方式。  
3.2 创建Project:File→New→Projects 对于一个Internal UG/Open API程序选Win32 Dynamic-Link Library(对于一个External UG/Open API程序选Win 32 Console Application);在"roject name:"内输入 Project name。  
3.3 Configure(配置)Project Settings 选Project→Settings→Debug,"Category"栏是General,在"Executable for debug session"栏内输入:C:\ug\eds140\Ugii\ugraf.exe(这是为调试Internal UG/O pen API program而设置的参量);在"rogram arguments:"栏内输入ogl auto。 选Project→Settings→C/C++,在"Category:"内选Code Generation;在"Use Run -Timelibrary:"内选Multithreaded DLL。 选Project→Settings→Link,"Category" 栏是"general";在"Output file name :"文本框内若无缺省输出文件名就指明;在"Object/library modules:"栏末加上ugra f.lib Xt.lib Xlibcon.lib Xlib.lib (程序为Internal UG/Open API with direct X/ Motif references时)。(若程序为External UG/Open API则加上Uguser.lib;若为Inte rnal UG/Open API without direct X/Motif references则加上ugraf.lib)。
3.4 Configure(配置)Tools Settings 选Tools→Options-->Directories,在"show directories for:"内选Include fi les,在"Directories:"内输入C:\ug\eds140\ugopen(并使用Move Item Up按钮将它放在所有directories之首); 若是Internal UG/Open API project, 因要使用UG附带的支撑软件Hummingbird Exceed的 include files, 故再输入C:\ug\exceed\xdk\inc lude(并使用Move Item Up按钮将它放在C:\ug\eds140\ugopen之后其它directories 之前)。结论是依次输入: C:\ug\Eds140\Ugopen C:\ug\exceed\xdk\include D:\App\VisualStudio\VC98\Include C:\ug\exceed\LIB D:\App\VisualStudio\VC98\Mfc\include D:\App\VisualStudio\VC98\Atl\include C:\ug\Eds140\Ugii\ogl C:\ug\Eds140\Ugii\xwi D:\App\VisualStudio\VIntDev98\bin 选Tools→Options-->Directories,在"show directories for:"内选Library fi les,在"Directories:"内输入C:\ug\eds140\ugopen(并使用Move Item Up按钮将它移至所有directories之首), 若是Internal UG/Open API project, 因要使用UG附带的支撑软件Hummingbird Exceed的库函数(libraries), 故再输入C:\ug\exceed\xdk\ lib(并使用Move Item Up按钮将它放在C:\ug\eds140\ugopen之后其它directories之前)。 结论是依次输入: C:\ug\Eds140\Ugopen C:\ug\exceed\xdk\lib D:\App\VisualStudio\VIntDev98\bin C:\ug\exceed D:\App\VisualStudio\VC98\Lib D:\App\VisualStudio\VC98\Mfc\lib C:\ug\Eds140\Ugii C:\ug\exceed\LIB  
3.5 Add Files to Project 创建完一个Project后,启动VC++,File→Open Workspace→双击Project名→点击 *.dsw文件名(打开),这样就进入了该Project的VC++开发环境。 为把源文件(source file)加到Project里,选Project→Add To Project→New,选文件类型(如C++Source File),输入File Name,这样就可以编写源文件;或者选File→ New,选文件类型(如C++ Source File),输入File Name,编写完源文件后,选Project →Add To Project→Files将该文件或其它已存的源文件加到Project里。  
3.6 Compile and Link:Compile→Build→Execute 注:在进行上述设置时应根据各自的实际情形作相应变更。为检验上述工作是否正确,可以调出并编译运行%UG_BASE_DIR%\ugopen中的ucintr.c。  
4 UG/Open API程序  
4.1 可执行文件(程序)类型 从UG/Open API 里使用函数来编程可以有两种不同的模式(mode):Internal和External,这里模式是指产生的可执行代码的类型,即是一个共享库(Internal)或是一个独立的可执行代码(External)。 (1) Internal UG/Open API的一般形式: #include <uf.h>//Prototypes exist in this file. //Additional include files as required. void ufusr(char *param, int *retcod, int parm_len) {variable declarations UF_initialize(); //**** body ******* UF_terminate(); } Internal UG/Open API使用ufusr函数(主函数)作为程序运行的入口点,它可以看作是用户写的UG子程序/子函数。执行程序时,UG将程序装入内存并搜索ufusr,程序从这里开始执行,执行完后由一个return语句返回UG。 (2)External UG/Open API的一般形式: #include<uf.h> //Additional include files as required. int main(int argc, char **argv) {variable declarations UF_initialize(); //**** body ******* UF_terminate(); } 输入主函数的参数(arguments)是标准的C参数:argc - argument count,argv字符串指针。
4.2 UG/Open API程序的几点说明 (1)程序的开始和终止:所有的UG/Open API程序必须正确的开始和终止以配置和返还UG/Open API license,用户使用两个C函数UF_initialize()和UF_terminate()来实现这一点,在定义变量后调用的第一个UG/Open API函数必须是UF_initialize(),且最后一个调用函数也必须是UF_terminate()。 (2)头文件(*.h file):在程序中除了包含标准的ANSI C 头文件外,还应包含所使用的UG/Open API 程序的头文件。 (3)数据类型:除了标准C数据类型,UG/Open API还大量使用了用来定义结构体(st ructures)、枚举体(enums)、共用体(unions)和指针(pointers)的"类(type)"和用来定义常量(constants)的"串(string)", UG将它们统称为"Types and Symbols",并在特定的头文件里描述它们。 (4)程序名:开发者为应用软件所取的程序名,应不与所写的其它应用软件名或使用的第三方软件名相冲突。 (5)程序的运行:一般地,在UG图形界面里从File→Execute UG/Open→User Funct ion来运行UG/Open API(*.dll)文件,另外也可以从UG/Open MenuScript、User Exits、 User Tools和UG/Open GRIP里调用并运行。  
4.3 函数(Functions)
  UG/Open API提供的函数和ANSI/ISO C 标准相一致,即以下面的形式定义: <返回数据类型><函数名>(变量表)  
4.4 UG对象模型(UG Object Model) UG使用许多方法为其对象建立模型,根据对象的不同用途及其相互关系,UG对象可以是面向设计(design-oriented)、面向工程图(drafting-oriented)、面向分析(analy sis-oriented)或者面向制造(manufacturing-oriented)的对象。UG开发人员编程的过程实际上就是访问、修改、植入UG对象从而建立起UG对象模型的过程。 每一个UG对象都是通过其唯一的标识符(identifier)(如tag)来引用,一个标示符的实际物理表示是一个无符号型整型变量(unsigned integer)。tag在UG/Open API头文件 uf_defs.h里被定义,它仅仅是把一个UG对象载入内存时的标示符。
4.5一个Internal UG/Open API例程 //Creat two blocks and unite #include <uf.h>//initialize,terminate,UF_get_fail_message #include <uf_modl.h>//User Function modeling commands void ufusr(char *param,int *retcode,int parm_len) { UF_FEATURE_SIGN sign=UF_NULLSIGN; UF_FEATURE_SIGN sign1=UF_POSITIVE; double block_orig[3]={0.0,0.0,0.0}; double block_orig1[3]={0.0,0.0,2.5}; char *block_len[3]={"1","2","3"}; char *block_len1[3]={"1", "1", "1"}; tag_t blk_obj; tag_t blk1_obj; UF_initialize(); UF_MODL_create_block1(sign,block_orig,block_len, [$blk_obj)] UF_MODL_create_block1(sign1,block_orig1,block_len1, [$blk1_obj)] UF_terminate(); }  
4.6 结 论 (1)UG具有良好的二次开发能力,可进行满足不同层次用户不同需求的二次开发。 (2)在以UNIX为操作系统的图形工作站上UG有自带的User Function开发界面,在数量众多的以Windows为操作系统的微机工作站上通过上述设置同样可以编写运行大型C程序。 (3)借助UG其它开发工具(如UG/Open UIStyler、UG/Open MenuScript)可以实现面向对象的大型应用程序的开发和应用。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2005-2-18 15:24:44 | 只看该作者
cwbking wrote:
摘  要   本文叙述了如何在以Windows NT 4.0为操作系统的微机工作站上进行基于VC+  
  +60的UG(V14.0)二次开发,并对UG的开发模块和UG/Open API的编程方法作了介绍。  
  关键词  VC++UG  UG/Open   API   二次开发  编程  
  1  概述  
      UG是一个功能强大的通用3D机械CAD/CAM软件系统,用户若要以它为平台进行二次开发,实现大型的机械设计系统(如模具智能化专家系统CAD软件),就必须利用UG的开发模块,借助C/C++,在以UNIX为操作系统的工作站上或以Windows为操作系统的微机工作站上编写C程序,进而生成可执行文件。本文的目的就在于叙述如何在以Windows NT 40为操作系统的微机工作站上进行基于VC++60的UG(V140)二次开发,并对UG的开发模块和UG/Open API的编程方法作了介绍。  
  1.1 UG/Open  
    它通过一个开放的平台包含一系列的基于UG的应用软件的柔性集成。其目的是为了计算机集成应用,支持第三方和UG的应用,使基于不同的计算机平台从不同的场所(不同的网络)实现数据共享,甚至通过Internet访问它的内容。它在注重于集成化和本地化的软件应用的同时,还致力建立一个能供各方利用的开放体系机构。  
      UG/Open提供了一种使顾客能够完成下列工作的应用软件和工具:  
  (1)通过UG/Open API 或UG/Open GRIP 提供了与UG对象模型(UG Object Model)的接口;  
  (2)生成和管理用户自定义对象(User Defined Objects或Custom Objects),包括管理它们与U对象的相关性,提供一种刷新和显示用户自定义对象的方法;  
  (3)提供反映第三方应用软件的UG图形界面本地化方法;  
  (4)利用相关产品如 IMAN ITK和Parasolid;  
  (5)利用和集成新的UG/Open技术并使之成为应用可能。  
  1.2 UG/Open API(User Function)  
      是一个允许程序访问并影响UG对象模型的程序集,除程序外,它还提供一个UG所共容的编译和联接程序的方式。它支持C/C++语言,头文件(header files)支持ANSI C。  
      在UG软件系统中与它有关的还有:UG/Open GRIP,UG/Open GRIP NC,UG/Open MenuScript,UG/Open IMAN ITK和Parasolid。  
  1.3 UG/Open API执行许可证(execute license)   
  在安装UG/Open API软件包的每一个地点都需要有UG/Open开发许可证(develop license)和执行许可证来开发运行一个UG/Open API程序,在一个工作站上同时执行多进程 API程序时需要附加的UG/Open API执行许可证,用户通过UF_initialize()来访问并通过 UF_terminate()来返还这些许可证。例程和UG/Open API头文件在用户应用平台UG安装目录下的ugopen目录里,Windows NT系统是%UGII_BASE_DIR%\ugopen,用户可以访问并利用这些程序和文件。  
  2 UG/Open API在Windows NT操作系统里的安装   
  2.1 UG(V14.0)要求C编译器版本为Microsoft Visual C++V5.0以上,本文所述为VC++6. 0版本。   
  2.2 定义环境变量(environment variables)   
  定义方法:开始→设置→控制面板→系统,在"系统特性"框里点击"环境"栏,在"用户变量"里即可设置。 必需的环境变量:UG_USERFCN, 该变量指向UG/Open API库函数所在的目录。其值为:C:\ug\Eds140\Ugopen   
  其它的环境变量:   
  (1)变量:EXCEEDHOME,若欲使用包含UG/Open API Motif程序的prototypes的uf_u i_xt.h头文件时必须定义。其值为:C:\ug\exceed;   
  (2)变量:EXCEEDLIBS,在uflink连接时指定应包含哪个eXceed/NT-XDK库函数时需定义,其值为:C:\ug\exceed\xdk;   
  (3)变量:INCLUDE,使C预处理器查找头文件(.h files)。其值为:D:\App\Visu alStudio\VC98\Include;   
  (4)变量:LIB,它使C连接器查找对象库函数并输入库函数。其值为:C:\ug\Eds 140\Ugopen\ugraf.lib; C:\ug\Eds140\Ugopen\uguser.lib;   
  (5)变量:PATH,它使系统查找可执行文件、DLLs(Dynamic Link Library,动态连接库函数)和Scripts(命令表)。其值为:C:\ug\Eds140\Ugii\og1;C:\ug\excee d;D:\App\VisualStudio\VC98\Bin;C:\ug\Eds140\Ugii。  
  结论,在用户变量里定义: UG_USERFCN C:\ug\Eds140\Ugopen(也可在ugii_env文件中定义) EXCEEDHOMEC:\ug\exceed EXCEEDLIBSC:\ug\exceed\xdk INCLUDED:\App\VisualStudio\VC98\Include LIBC:\ug\Eds140\Ugopen\ugraf.lib; LIBC:\ug\Eds140\Ugopen\uguser.lib; D:\App\VisualStudio\VC98\Lib PATHC:\ug\Eds140\Ugii\og1;C:\ug\exceed; D:\App\VisualStudio\VC98\Bin;C:\ug\Eds140\Ugii   
  3 在VC++里创建一个UG/Open API Project   
  3.1 进入Microsoft Visual C++。 可建立一个桌面快捷方式。   
  3.2 创建Project:File→New→Projects 对于一个Internal UG/Open API程序选Win32 Dynamic-Link Library(对于一个External UG/Open API程序选Win 32 Console Application);在"roject name:"内输入 Project name。   
  3.3 Configure(配置)Project Settings 选Project→Settings→Debug,"Category"栏是General,在"Executable for debug session"栏内输入:C:\ug\eds140\Ugii\ugraf.exe(这是为调试Internal UG/O pen API program而设置的参量);在"rogram arguments:"栏内输入ogl auto。 选Project→Settings→C/C++,在"Category:"内选Code Generation;在"Use Run -Timelibrary:"内选Multithreaded DLL。 选Project→Settings→Link,"Category" 栏是"general";在"Output file name :"文本框内若无缺省输出文件名就指明;在"Object/library modules:"栏末加上ugra f.lib Xt.lib Xlibcon.lib Xlib.lib (程序为Internal UG/Open API with direct X/ Motif references时)。(若程序为External UG/Open API则加上Uguser.lib;若为Inte rnal UG/Open API without direct X/Motif references则加上ugraf.lib)。  
  3.4 Configure(配置)Tools Settings 选Tools→Options-->Directories,在"show directories for:"内选Include fi les,在"Directories:"内输入C:\ug\eds140\ugopen(并使用Move Item Up按钮将它放在所有directories之首); 若是Internal UG/Open API project, 因要使用UG附带的支撑软件Hummingbird Exceed的 include files, 故再输入C:\ug\exceed\xdk\inc lude(并使用Move Item Up按钮将它放在C:\ug\eds140\ugopen之后其它directories 之前)。结论是依次输入: C:\ug\Eds140\Ugopen C:\ug\exceed\xdk\include D:\App\VisualStudio\VC98\Include C:\ug\exceed\LIB D:\App\VisualStudio\VC98\Mfc\include D:\App\VisualStudio\VC98\Atl\include C:\ug\Eds140\Ugii\ogl C:\ug\Eds140\Ugii\xwi D:\App\VisualStudio\VIntDev98\bin 选Tools→Options-->Directories,在"show directories for:"内选Library fi les,在"Directories:"内输入C:\ug\eds140\ugopen(并使用Move Item Up按钮将它移至所有directories之首), 若是Internal UG/Open API project, 因要使用UG附带的支撑软件Hummingbird Exceed的库函数(libraries), 故再输入C:\ug\exceed\xdk\ lib(并使用Move Item Up按钮将它放在C:\ug\eds140\ugopen之后其它directories之前)。 结论是依次输入: C:\ug\Eds140\Ugopen C:\ug\exceed\xdk\lib D:\App\VisualStudio\VIntDev98\bin C:\ug\exceed D:\App\VisualStudio\VC98\Lib D:\App\VisualStudio\VC98\Mfc\lib C:\ug\Eds140\Ugii C:\ug\exceed\LIB   
  3.5 Add Files to Project 创建完一个Project后,启动VC++,File→Open Workspace→双击Project名→点击 *.dsw文件名(打开),这样就进入了该Project的VC++开发环境。 为把源文件(source file)加到Project里,选Project→Add To Project→New,选文件类型(如C++Source File),输入File Name,这样就可以编写源文件;或者选File→ New,选文件类型(如C++ Source File),输入File Name,编写完源文件后,选Project →Add To Project→Files将该文件或其它已存的源文件加到Project里。   
  3.6 Compile and Link:Compile→Build→Execute 注:在进行上述设置时应根据各自的实际情形作相应变更。为检验上述工作是否正确,可以调出并编译运行%UG_BASE_DIR%\ugopen中的ucintr.c。   
  4 UG/Open API程序   
  4.1 可执行文件(程序)类型 从UG/Open API 里使用函数来编程可以有两种不同的模式(mode):Internal和External,这里模式是指产生的可执行代码的类型,即是一个共享库(Internal)或是一个独立的可执行代码(External)。 (1) Internal UG/Open API的一般形式: #include <uf.h>//Prototypes exist in this file. //Additional include files as required. void ufusr(char *param, int *retcod, int parm_len) {variable declarations UF_initialize(); //**** body ******* UF_terminate(); } Internal UG/Open API使用ufusr函数(主函数)作为程序运行的入口点,它可以看作是用户写的UG子程序/子函数。执行程序时,UG将程序装入内存并搜索ufusr,程序从这里开始执行,执行完后由一个return语句返回UG。 (2)External UG/Open API的一般形式: #include<uf.h> //Additional include files as required. int main(int argc, char **argv) {variable declarations UF_initialize(); //**** body ******* UF_terminate(); } 输入主函数的参数(arguments)是标准的C参数:argc - argument count,argv字符串指针。  
  4.2 UG/Open API程序的几点说明 (1)程序的开始和终止:所有的UG/Open API程序必须正确的开始和终止以配置和返还UG/Open API license,用户使用两个C函数UF_initialize()和UF_terminate()来实现这一点,在定义变量后调用的第一个UG/Open API函数必须是UF_initialize(),且最后一个调用函数也必须是UF_terminate()。 (2)头文件(*.h file):在程序中除了包含标准的ANSI C 头文件外,还应包含所使用的UG/Open API 程序的头文件。 (3)数据类型:除了标准C数据类型,UG/Open API还大量使用了用来定义结构体(st ructures)、枚举体(enums)、共用体(unions)和指针(pointers)的"类(type)"和用来定义常量(constants)的"串(string)", UG将它们统称为"Types and Symbols",并在特定的头文件里描述它们。 (4)程序名:开发者为应用软件所取的程序名,应不与所写的其它应用软件名或使用的第三方软件名相冲突。 (5)程序的运行:一般地,在UG图形界面里从File→Execute UG/Open→User Funct ion来运行UG/Open API(*.dll)文件,另外也可以从UG/Open MenuScript、User Exits、 User Tools和UG/Open GRIP里调用并运行。   
  4.3 函数(Functions)  
  UG/Open API提供的函数和ANSI/ISO C 标准相一致,即以下面的形式定义: <返回数据类型><函数名>(变量表)   
  4.4 UG对象模型(UG Object Model) UG使用许多方法为其对象建立模型,根据对象的不同用途及其相互关系,UG对象可以是面向设计(design-oriented)、面向工程图(drafting-oriented)、面向分析(analy sis-oriented)或者面向制造(manufacturing-oriented)的对象。UG开发人员编程的过程实际上就是访问、修改、植入UG对象从而建立起UG对象模型的过程。 每一个UG对象都是通过其唯一的标识符(identifier)(如tag)来引用,一个标示符的实际物理表示是一个无符号型整型变量(unsigned integer)。tag在UG/Open API头文件 uf_defs.h里被定义,它仅仅是把一个UG对象载入内存时的标示符。  
  4.5一个Internal UG/Open API例程 //Creat two blocks and unite #include <uf.h>//initialize,terminate,UF_get_fail_message #include <uf_modl.h>//User Function modeling commands void ufusr(char *param,int *retcode,int parm_len) { UF_FEATURE_SIGN sign=UF_NULLSIGN; UF_FEATURE_SIGN sign1=UF_POSITIVE; double block_orig[3]={0.0,0.0,0.0}; double block_orig1[3]={0.0,0.0,2.5}; char *block_len[3]={"1","2","3"}; char *block_len1[3]={"1", "1", "1"}; tag_t blk_obj; tag_t blk1_obj; UF_initialize(); UF_MODL_create_block1(sign,block_orig,block_len, [$blk_obj)] UF_MODL_create_block1(sign1,block_orig1,block_len1, [$blk1_obj)] UF_terminate(); }   
  4.6 结 论 (1)UG具有良好的二次开发能力,可进行满足不同层次用户不同需求的二次开发。 (2)在以UNIX为操作系统的图形工作站上UG有自带的User Function开发界面,在数量众多的以Windows为操作系统的微机工作站上通过上述设置同样可以编写运行大型C程序。 (3)借助UG其它开发工具(如UG/Open UIStyler、UG/Open MenuScript)可以实现面向对象的大型应用程序的开发和应用。

  


3
发表于 2005-2-18 19:58:43 | 只看该作者
有没有NX3的呀
我用的是3
4
发表于 2005-2-18 19:59:21 | 只看该作者
刚学UG
如果是从开始一直到结束更好
5
发表于 2005-2-19 12:06:46 | 只看该作者
6
发表于 2005-3-10 18:26:56 | 只看该作者
+++++++++++++++++++++++++++fen
7
发表于 2005-3-10 19:42:32 | 只看该作者
不懂!我是个初学者
8
发表于 2005-3-10 20:24:16 | 只看该作者
但是觉得太难了
9
发表于 2005-5-12 19:27:41 | 只看该作者
好啊
能给我些ug/open api函数的资料吗?
谢谢
wenxiao_violet@sina.com
10
发表于 2005-5-13 07:59:52 | 只看该作者

您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-5-7 07:02 , Processed in 0.031765 second(s), 12 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

快速回复 返回顶部 返回列表