欢迎来到天天文库
浏览记录
ID:52937000
大小:142.81 KB
页数:10页
时间:2020-04-02
《谈谈UG二次开发的Open和NXOpen.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、谈谈UG二次开发的Open和NXOpenUG的二次开发有两套系统,一套叫Open,一套叫NXOpen。Open主要是造型方面的功能,NXOpen比较全面。Open原来支持的是C/C++,.net的NXOpen.UF命名空间支持。NXOpen支持C++和.net等。Open系统,支持C的原来叫UFun,或者API,用的人最多。后来出现了OpenC++。但是OpenC++支持编辑等属性行为,不能创建。所以,一般是通过API创建特征,比如实体,通过C++的类查询和修改。NXOpen系统,是完全面向对象的,所以可以创建
2、和修改特征。当然,NXOpen几乎支持UG所有的功能。OpenNXOpenUFun(API);面向过程开发;C主要支持造型功能OpenC++类库;面向对象开通过NXOpen命名空间支持,发;部分支持造型功能,没有需要包含相应头文件。6K+V2C++创建特征的功能等,需要使用r,q%H6o7w!J$U7oUFun通过NXOpen.UF命名空间包通过NXOpen命名空间支持,.NET装了UFun来实现。需要引用相应的程序集。所以,目前开来,如果使用C/C++方式,可以使用OpenC和C++结合的方式,利用C来创建特
3、征,使用C++来管理。如果使用.net可以直接使用NXOpen。对于不熟悉NXOpen的人可以按照OpenC的知识上手NXOpen.UF。下面将通过各个例子说明上述系统的使用,因为.net平台是通用的,我只举了C#的例子,VB等也是一样的的。而java我不懂,见谅了。一、OpenC1、遍历的例子#include#include#include#include#include#include4、tream>usingstd::string;usingstd::stringstream;//下面是程序片段UgSessionsession(true);try{/*TODO:Addyourapplicationcodehere*/uf_list_p_tlpObj;UF_MODL_create_list(&lpObj);tag_tprt=UF_PART_ask_display_part();tag_tNext_tag=NULL_TAG;do{UF_OBJ_cycle_objs_in_part(prt,UF_s5、olid_type,&Next_tag);if(Next_tag==NULL_TAG)break;intt,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);logicalis_open;UF_UI_is_listing_window_open(&is_open);if(!is_ope6、n)UF_UI_open_listing_window();intsum;UF_MODL_ask_list_count(lpObj,&sum);for(inti=0;i7、F_UI_exit_listing_window();UF_MODL_delete_list(&lpObj);}/*Handleerrors*/catch(constUgException&exception){processException(exception);}2,创建block的例子#include#include#include#include//下面是程序片段/*InitializetheAPIenvironment*/if8、(UF_CALL(UF_initialize())){/*Failedtoinitialize*/return;}/*TODO:Addyourapplicationcodehere*/doublecorner[3]={0,0,0};char*edge[3]={"10","5","20"};tag_ttag;UF_MODL_create_block(UF_NULLSIGN,NULL_TA
4、tream>usingstd::string;usingstd::stringstream;//下面是程序片段UgSessionsession(true);try{/*TODO:Addyourapplicationcodehere*/uf_list_p_tlpObj;UF_MODL_create_list(&lpObj);tag_tprt=UF_PART_ask_display_part();tag_tNext_tag=NULL_TAG;do{UF_OBJ_cycle_objs_in_part(prt,UF_s
5、olid_type,&Next_tag);if(Next_tag==NULL_TAG)break;intt,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);logicalis_open;UF_UI_is_listing_window_open(&is_open);if(!is_ope
6、n)UF_UI_open_listing_window();intsum;UF_MODL_ask_list_count(lpObj,&sum);for(inti=0;i7、F_UI_exit_listing_window();UF_MODL_delete_list(&lpObj);}/*Handleerrors*/catch(constUgException&exception){processException(exception);}2,创建block的例子#include#include#include#include//下面是程序片段/*InitializetheAPIenvironment*/if8、(UF_CALL(UF_initialize())){/*Failedtoinitialize*/return;}/*TODO:Addyourapplicationcodehere*/doublecorner[3]={0,0,0};char*edge[3]={"10","5","20"};tag_ttag;UF_MODL_create_block(UF_NULLSIGN,NULL_TA
7、F_UI_exit_listing_window();UF_MODL_delete_list(&lpObj);}/*Handleerrors*/catch(constUgException&exception){processException(exception);}2,创建block的例子#include#include#include#include//下面是程序片段/*InitializetheAPIenvironment*/if
8、(UF_CALL(UF_initialize())){/*Failedtoinitialize*/return;}/*TODO:Addyourapplicationcodehere*/doublecorner[3]={0,0,0};char*edge[3]={"10","5","20"};tag_ttag;UF_MODL_create_block(UF_NULLSIGN,NULL_TA
此文档下载收益归作者所有