CAD技术及应用--CAD系统二次开发--课件

上传人:风*** 文档编号:240745193 上传时间:2024-05-04 格式:PPT 页数:51 大小:390KB
返回 下载 相关 举报
CAD技术及应用--CAD系统二次开发--课件_第1页
第1页 / 共51页
CAD技术及应用--CAD系统二次开发--课件_第2页
第2页 / 共51页
CAD技术及应用--CAD系统二次开发--课件_第3页
第3页 / 共51页
点击查看更多>>
资源描述
CADCAD技术及应用技术及应用CADCAD系统二次开发系统二次开发华中科技大学华中科技大学CADCAD中心中心吴义忠吴义忠1ppt课件内容提要二次开发的界定1.AutoCAD二次开发2.Pro/E二次开发3.UG二次开发2ppt课件AutoCAD开发1 AutoLISP(R2.5)Visual LISP2 ADS(R10)3 ObjectARX(R13)4 ActiveX Automation(VBA)内模式与OpenDWG3ppt课件1.ObjectARX安装应用程序向导(objectArx.awx)工程配置:头文件:objectArxinc库文件搜索:objectArxlib所需库:rxapi.lib acrx15.lib acdb15.lib acutil15.lib acge15.lib acgiapi.lib achapi15.lib acISMobj15.lib acad.lib acedapi.lib acsiobj.lib adui15.lib acui15.lib4ppt课件ObjectARX程序框架入口回调函数extern C AcRx:AppRetCode acrxEntryPoint(AcRx:AppMsgCode msg,void*pkt)/初始化,命令与函数体映射5ppt课件2.ObjectARX内库五大类:1.AcRx类2.AcEd类3.AcDb类4.AcGi类5.AcGe类6ppt课件AcRx类7ppt课件AcEd类8ppt课件AcDb类9ppt课件AcGe类10ppt课件AcGi类11ppt课件3开发实例与作业开发实例与作业DrawCurve例子 作业:根据曲线曲面理论,在AutoCAD下作:1)Bezier曲线与曲面;2)Spline曲线与曲面3)NURBS曲线与曲面。12ppt课件4基于基于AutoCAD的的InteCAD介绍介绍天喻天喻CAD(AutoCAD版)版)演示演示特点:符合国标的辅助绘图功能 参数化设计工具 标准件库零部件设计13ppt课件UG二次开发Unigraphics介绍UG/Open开发简介UG/Open开发技术开发实例14ppt课件UG简介15ppt课件UG/OPEN API简介UG/OPEN是UG提供的C调用库;1)对UG的模型文件和模型进行操作,一般只要命令,都有函数;2)改变UG的界面,建立自己的交互式程序界面;3)创建并管理自定义对象。优点:开放性好;易开发调试;帮助较详细 16ppt课件UG开发模式外模式(External):Exe,UF_Initialize()启动所需的动态连接库,UF_terminate()结束。这种模式主要用于不需要UG图形界面出现时使用,如PDM中提取装配体的装配树。UG/OPEN中绝大多函数均可在External模式下使用。内模式(Internal):dll在UG图形环境下加载运行,其特点是:执行代码小、连接快;运行结果在UG的图形窗口中可见;入口函数ufusr()或ufsta();一旦加载不能手工卸载,只有调用API函数才能卸载17ppt课件VC开发环境的设置应用程序向导:Ugopen_v18.awx;一般的DLL改变工程设置:1)link库:libufun.lib libugopenint.lib libopenpp.lib libvmathpp.lib 2)Preprocessor:WIN32,_DEBUG,_WINDOWS,_USRDLL,_AFXDLL,_MBCS3)Additional Include Path:$(UGII_BASE_DIR)ugopen,$(UGII_BASE_DIR)ugopenpp18ppt课件程序调试19ppt课件程序格式/入口extern C void _declspec(dllexport)ufsta(char*name,int*rtcode,int rtlen)tag_t root_part_occ=NULL_TAG;tag_t displayed_part=NULL_TAG;strcpy(TopPartName,);strcpy(TopPartName,);strcpy(PathName,);/装载AVIDM接口函数-结束UF_MB_add_actions(actionTable);strcpy(name,);displayed_part=UF_PART_ask_display_part();UF_PART_ask_part_name(displayed_part,TopPartName);程序退出回调extern int ufusr_ask_unload(void)return(UF_UNLOAD_UG_TERMINATE);获得程序错误static void PrintErrorMessage(int errorCode)if(0!=errorCode)/*Retrieve the associated error message*/char message133;UF_get_fail_message(errorCode,message);/*Print out the message*/UF_UI_set_status(message);fprintf(stderr,%sn,message);20ppt课件MFC的使用的使用 int fuction()AFX_MANAGE_STATE(AfxGetStaticModule State();HINSTANCE hInstResourceClient=AfxGetResourceHandle();AfxSetResourceHandle(:GetModuleHa ndle(3DLib.dll);CtestDlg dlg;Dlg.DoModal();21ppt课件UG/Open API约定函数名称:UF_;uc和uf 得到:UF_ask_创建:UF_create_编辑:UF_edit_设置:UF_set_22ppt课件UG/OPEN的HTML帮助帮助的使用数据的类型:input,output,Output to be freed23ppt课件UG/OPEN数据类型含义数据类型:_t(数据类型),_p_t(数据类型的指针),_s(结构标示),_u_t(联合),_u_p_t(联合指针),_f_t(函数指针)举例:typedef unsigned int tag_t,*tag_p_t;24ppt课件用户界面接口 信息窗口:UF_UI_Open_Listing_Window(),write,save,close,对象选择:UF_UI_select_with_class_dialog()按类选择;UF_UI_select_with_single_dialog()选择单个实体对话框文件选择:UF_UI_create_part(),UF_UI_open_part();获得输入:uc1600()获得字符串,uc1608实数/整形输入,uc1607()获得整数输入,uc1609()实数25ppt课件菜单添加-1/AVIDM接口函数声明typedef LONG (WINAPIV*AVIDM_LOGIN_TYPE)(void);typedef LONG (WINAPIV*AVIDM_CHECKIN_TYPE)(char*&);typedef LONG (WINAPIV*AVIDM_CHECKOUT_TYPE)(AsmNode*&);typedef LONG (WINAPIV*AVIDM_LOGOUT_TYPE)(void);AVIDM_LOGIN_TYPE AVIDM_LogIn=NULL;AVIDM_CHECKIN_TYPE AVIDM_CheckIn=NULL;AVIDM_CHECKOUT_TYPE AVIDM_CheckOut=NULL;AVIDM_LOGOUT_TYPE AVIDM_LogOut=NULL;26ppt课件菜单添加-2/命令余函数对应表static UF_MB_action_t actionTable=/AVIDM LogInAVIDM,(UF_MB_callback_t)LogInAVIDM,NULL,CheckInFromAVIDM,(UF_MB_callback_t)CheckInFromAVIDM,NULL,CheckToAVIDM,(UF_MB_callback_t)CheckToAVIDM,NULL,LogOutAVIDM,(UF_MB_callback_t)LogOutAVIDM,NULL,NULL,NULL,NULL;27ppt课件菜单添加-3编辑菜单命令文件.men28ppt课件菜单添加-4/建立函数与命令的对应关系extern C void _declspec(dllexport)ufsta(char*name,int*rtcode,int rtlen)/装载AVIDM接口函数-结束UF_MB_add_actions(actionTable);29ppt课件菜单添加-5/命令的执行函数调用int LogInAVIDM()/登陆AVIDMUF_Initialize();OpenStdPart();UF_Terminate();return 1;30ppt课件UG/OPEN的加载 FILE/UGOPEN加载DLLUG的自动加载,在UG安装路径C:UGS180UGIImenus下的Custom_dirs.dat文件,则UG启动时自动的查找该路经下或子目录startup的菜单文件和应用程序dll,和application下的dll,以及UDO下的自定义对象。演示31ppt课件UG_PART 类32ppt课件UG_ASSEM类 装配概念:tagUG对象的标示;Piece Part单个零件,装配的基本元素,包括几何和特征Occurrence装配的零件的具体实例Object Occurrence 零件中对象的实例Reference Set 简化表达组件,引用集为NULLDisplay part 显示零件/子装配Workpart 工作零件/子装配33ppt课件UG_ASSEM类应用遍历装配体:extern void ufusr(char*name,int*rtcode,int rtlen)UF_initialize();displayed_part=UF_PART_ask_display_part();if(displayed_part!=NULL_TAG)root_part_occ=UF_ASSEM_ask_root_part_occ(displayed_part);if(root_part_occ!=NULL_TAG)char partname133;char ref_name31;int partNum=UF_ASSEM_ask_part_occ_children(root_part_occ,&chdrs);for(int i=0;ipartNum;i+)UF_ASSEM_askcomponent_data(chdrsi,partname,refname,instance_name,origin,matrix,transform);/处理chdrsi RecursCall(chdrsi);/UF_terminate();34ppt课件对象创建UF_MODL_ 创建特征类(相应的有ask/edit)UF_MODL_create_blend UF_MODL_create_block UF_MODL_create_cone UF_MODL_create_cylinder UF_MODL_create_extruded UF_MODL_create_extrusion_path UF_MODL_create_face_taper UF_MODL_create_hollow UF_MODL_create_quilt UF_MODL_create_revolved UF_MODL_create_sphere UF_MODL_create_sweep 35ppt课件对象创建UF_MODL_创建几何类 UF_MODL_create_bs_2d_edgesUF_MODL_create_bs_edgesUF_MODL_create_bsurfUF_MODL_create_bsurf_thru_ptsUF_MODL_create_bsurfaceUF_MODL_create_circular_isetUF_MODL_create_curve_from_edgeUF_MODL_create_expUF_MODL_create_exp_tagUF_MODL_create_fitted_splineUF_MODL_create_instantiated_udfUF_MODL_create_isocline_curvesUF_MODL_create_isocurveUF_MODL_create_linear_isetUF_MODL_create_listUF_MODL_create_proj_curvesUF_MODL_create_promotionUF_MODL_create_simplified_curveUF_MODL_create_spline 36ppt课件查询part中的所有特征/查询part中的所有特征:UF_OBJ_cycle_objs_in_part()举例:part=UF_PART_ask_nth_part(curr_part);UF_PART_ask_part_name(part,part_fspec);printf(title0,part_fspec);count_1=0;type=UF_feature_type;feature=NULL_TAG;/*Start the cycling process by passing in a NULL_TAG.*/UF_OBJ_cycle_objs_in_part(part,type,&feature);/*Keep cycling until there are no more features to cycle.*/while(feature!=NULL_TAG)count_1+;UF_OBJ_cycle_objs_in_part(part,type,&feature);printf(UF_OBJ_cycle_objs_in_part shows%d featuresn,count_1);37ppt课件UF_OBJ_cycle_objs_in_partextern int UF_OBJ_cycle_objs_in_part(tag_t part_tag,int type,tag_t*object);tag_t part_tagInputTag of part you wish to cycleint typeInputType of object on which to cycletag_t*object On input the object found by the last call to this routine.if this routine has not been called yet,then set object=NULL_TAG to start cycling.On output the next object of the type specified.If there is no object,and the cycling is complete a NULL_TAG is returned.On input the object found by the last call to this routine.ifthis routine has not been called yet,then set object=NULL_TAGto start cycling.On output the next object of the typespecified.If there is no object,and the cycling is completea NULL_TAG is returned.EnvironmentInternal and External38ppt课件用户自定义对象UDO/主要函数UF_UDOBJ_create_classUF_UDOBJ_create_udoUF_UDOBJ_add_linksUF_UDOBJ_add_owning_linksUF_UDOBJ_ask_owning_udo(tag_t obj_tag,tag_t*udo_tag);UF_UDOBJ_ask_udo_links_to_obj(tag_t ug_tag,int*num_links,UF_UDOBJ_link_t*udo_links);UF_UDOBJ_ask_owned_objects(tag_t udo_tag,int*num_owned_objects,tag_t*owned_objects);39ppt课件UDO/7个回调函数UF_UDOBJ_register_update_cbUF_UDOBJ_register_attn_pt_cbUF_UDOBJ_register_delete_cbUF_UDOBJ_register_display_cbUF_UDOBJ_register_fit_cbUF_UDOBJ_register_info_obj_cbUF_UDOBJ_register_select_cb40ppt课件UDO应用实例应用:1)移动一个实体(尺寸),另外一个实体也随之移动(公差)。2)指引线,标题栏与实体零部件之间的关系41ppt课件表达式及其应用参数化UF_MODL_ask_exp(char*exp_name,UF_MODL_ask_exps_of_feature(tag_t feature,int*number_of_exps,tag_t*exps);UF_MODL_ask_exps_of_part(tag_t part_tag,int*number_of_exps,tag_t*exps);UF_MODL_create_exp(char*expr_str);UF_MODL_delete_exp(char*exp_name);UF_MODL_export_exp(char*file_spec);UF_MODL_eval_exp(char*exp_name,double*exp_value);UF_MODL_dissect_exp_string(char*exp_str,char*lhs_str,char*rhs_str,tag_t*exp_tag);UF_MODL_edit_exp(char*expr_str);UF_MODL_rename_exp(char*old_exp_name,char*new_exp_name);42ppt课件表达式应用/用一组新的数据重绘:得到expression,编辑expression UF_MODL_ask_exps_of_part(part,&number_of_exps,&exps);for(i=0;inumber_of_exps;i+)UF_MODL_ask_exp_tg_string(expsi,&string);CString cstr=string;if(cstr.Left(4)!=PAR_)continue;int pos=cstr.Find(=);CString Name=cstr.Left(pos);CString Value=cstr.Right(cstr.GetLength()-pos-1);for(int j=0;jParam_Num;j+)CString pName=_T(PAR_)+pPartInfo-pDataNamej;if(pName=Name)/找到对应的字段名 UF_MODL_edit_exp(char*)(LPCSTR)expression);break;UF_MODL_update();43ppt课件基于UG/OPEN开发3Dlib for UG简介演示44ppt课件Pro/E 二次开发Pro/Engineer简介Pro/Toolkit和Pro/Develop开发Pro/Toolkit开发步骤Pro/Toolkit开发关键技术45ppt课件Pro/E简介PTC公司CAD/CAM/CAE产品Pro/E的使用简单介绍:零件造型、装配操作、工程图;特征、UDF、族表等。46ppt课件1Pro/Toolkit和和Pro/develop区别版本与兼容性目录结构帮助的使用47ppt课件2Pro/E二次开发步骤 1)VC下环境的设置:头文件路径,连接库文件,库搜索路径,预处理器2)程序调试环境变量设置:LM_LICENSE_FILE:c:downloadslicense.datPROE_FEATURE_NAME:PROE_200PRO_DIRECTORY:c:proe200148ppt课件Pro/Toolkit开发开发3)开发模式:外模式:调用ProEStart()函数,启动xtop进程,结束调用ProEEnd();内模式:回调函数extern“C”int user_initialize()程序启动时执行;extern“C”void user_ternminate()程序退出调用。4)MFC资源对话框的使用AFX_MANAGE_STATE(AfxGetStaticModuleState();AfxSetResourceHandle(:GetModuleHandle(3DLib.dll);CtestDlg dlg;Dlg.DoModal();/只能模态调用49ppt课件应用的加载方式手工加载DAT:辅助应用程序 命令工作路径下自动加载Protk.dat:NAME StdPartLibALLOW_STOP TrueEXEC_FILE C:HUSTCADInte3DLIB for ProEProe3dLibFace.dllTEXT_DIR C:HUSTCADInte3DLIB for ProEstartup dllREVISION 23END 50ppt课件3Pro/E开发关键技术开发关键技术1)菜单设计2)模型类操作3)特征创建4)参数化设计5)UDF技术6)族表操作7)装配操作后面详细介绍51ppt课件
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!