


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Pro/E平台的工程图纸自动化生成软件的开发作者:发布时间:2007-07-19 03:16:13来源: 字体:【大 中 小】 一、前言 Pro/ENGINEER美数技术公司(PTC)研制的三维CAD/CAM软件,TOOLKIT是PTC专门提供的一个二次开发工具。在TOOLKIT中,PTC向用户提供了大型的C语言函数库,通过调用些底层函数,用户能方便而又安全地访问Pro/ENGINEER的数据库及内部应用程序,进行二次开发,扩展一些特定功能。 作为一种成功的三维CAD/CAM软件,Pro/ENGINEER已经包含了比较高效的出图模块,可以适用于任何形状的零件出图任务,但是,对于一些零件较为类似、几何外形接近的出图要求来说,将大量的时间花在重复布置视图、标记尺寸上,是得不偿失的。在Pro/ENGINEER已有的出图模块基础上进行二次开发,则更适合此类情况。 目前,在很多设计部门中所设计的产品有一定相关性,这就使得很多设计过程存在重复劳动的问题。基于这种原因,在Pro/ENGINEER2000i2基础上,作者参与开发了一个较为完整的轴类零件设计(三维模型)、零件出图、零件加工(加工刀轨代码生成)系统,让一些通用的设计过程实现自动处理,以减轻设计员的工作量(本文仅着重讨论其中的零件出图部分)。对于零件设计,该系统采用较为简单的族表方法(即预先手工构建产品模型,把它作为族表的类属件,然后在族表中定义各个控制参数来控制模型的形状大小,并在程序中通过改变各个参数的值来得到所需要的衍生件)。对于零件出图部分的程序设计,就可以十分方便地根据前面零件设计中定义的参数名称来获得相应的轴类零件形状及尺寸信息。 二、视图生成方法分析 1图纸区域划分 为了避免在图纸自动生成的过程中产生视图间干涉、尺寸重叠等现象,可以事先按要求将图纸划分出特定区域。对于结构较为相似、几何外形不太复杂的轴类零件,可以将整个图纸分成主视图区、剖面图区、表格区及注释区。然后根据所确定的区域大小及位置,调节视图比例,生成较为合理的视图。这样就可避免图纸上视图及尺寸间的位置冲突。 2生成主视图及剖面图 生成视图的关键是确定视图方向以及视图的比例。对于视图方向,如果方向选择错误,则无法正确表达零件的形状。在TOOLKIT提供的生成主视图(General View)的函数中,可以通过输入不同的方向矩阵(Orientation Matrix)来调整视图方向。对于视图比例,选择恰当的比例系数,可以使视图尽可能表达清楚,又不会造成越界,产生区域干涉。 对于轴类零件,由于特定的外形特征,在生成图纸时除了主视图外还需生成各键槽处的剖视图。通过调用TOOLKIT提供的视图生成函数ProDrawingGeneral viewCreate(),可以方便地生成需要的视图(需要注意:在零件模型设计阶段就确定恰当的默认参考平面,这样可以在出图阶段忽略考虑方向的问题,即方向矩阵可用单位矩阵代替;视图比例先默认为1:1)。在此基础上,调用TOOLKIT提供的视图轮廓提取函数ProDrawingViewOutlineGet(),计算此视图的轮廓大小,再根据事先划分好的区域大小,重新设定视图比例,自动生成大小合适的视图。 3视图生成实例及程序 在这个实例中,根据已生成的轴模型实体(axis.part),采用C语言编程,调用TOOLKIT提供的视图生成及调整函数,生成符合要求的图纸,并在此之上生成视图。程序如下: ProSolid solid; int sheet; ProMdlCurrentGet(&solid);/获得内存中打开的轴模型 ProStringToWstring(wroot, “drawing”); ProObjectwindowCreate(wroot,PRO_DRAWING,&w_id);/打开名为drawing的空视图窗口 ProDrawingCurrentSheetSet(drawing, sheet);/设置当前图层 ProDrawingSolidAdd(drawing, solid);/将获得的轴模型加入当前窗口 ProWindowActivate(w_id);/激活当前窗口 ProDrawingGeneralviewCreate(drawing,solid,sheet,0,pos,scale,matrix,&view); /在当前图层上生成视图,其中比例大小scale=1.0,方向矩阵matrix为33单位矩阵 ProDrawingViewOutlineGet(drawing,view,outline);/获得视图轮廓大小 . /调整scale大小 ProDrawingViewDelete(drawing,view,1);/删除不合理的视图 ProDrawingGeneralviewCreate(drawing,solid,sheet,0,pos,scale,matrix,&view);/按照调整的比例大小scale重新生成视图 ProDwgSheetRegenerate(drawing,sheet);/刷新窗口,重新显示生成的视图 三、显示尺寸方法分析 在Pro/ENGINEER中,实体模式(part mode)存储的尺寸和在制图(drawing)中创立的尺寸是不同的概念,因此要显示零件的尺寸就有以下两种方法可以实现。 1在制图模式中生成新的尺寸 在TOOLKIT中提供了尺寸生成函数ProDrawingDimCreate(),应用该函数可以生成各种尺寸。但是,该函数要求输入较多的入口参数,包括图纸模型(Drawing)、尺寸基准(Dimension Attachments)、尺寸类型(ProDimSense)、标注文本定位点(Dimension Text Location)等。 2在制图模式中直接显示实体模型中存储的尺寸 在TOOLKIT中提供了尺寸显示函数ProDimensionShow(),应用该函数可以在制图模式中有条件地显示实体模型中存储的各种尺寸,这也是Pro/ENGINEER制图模块中默认的显示模型尺寸的方法。相比较而言,这种显示尺寸的方法更简单适用,而且根据面向加工的设计思想(DFM),可以在设计阶段即实体造型阶段就考虑到加工,使得实体模型中存储的尺寸信息满足加工需求,即满足在出图时对尺寸显示的要求。 3尺寸显示实例及程序 在此实例中,选择第二种尺寸显示方法。 ProSolid solid; ProSolidDimensionVisit(solid,-1,(ProDimensionVisitAction)DimVisitAction01, (ProDimensionFilterAction)DimVisitFilter01, (ProAppData)&p_data);/遍历实体模型中的各种尺寸 ProError DimVisitAction01(ProDimension *dimension,ProError status,data *p_data) /尺寸处理函数 ProDimensionShow(dimension,p_data-p_view,p_data-p_drawing,NULL); /尺寸显示 ProDrawingDimensionPosGet(p_data-p_drawing,dimension,location); /获得默认标注文本位置 ProDrawingDimensionMove(p_data-p_drawing,dimension,location_new); /移动标注文本到指定位置 ProError DimVisitFilter01(ProDimension *dimension)/尺寸遍历过滤函数 status = .; /设置不同的过滤条件,使得不同类型的尺寸可以对应不同的处理函数 return (status); 四、注释生成实例与程序 在TOOLKIT中,注释是以文本行(Note Line)为最小的存储单元的,不同的文本行组成一个注释块(Note Data),对于这些注释块,调用函数ProDtlnoteCreate()就可以生成注释,并在图纸的任何位置处显示出来。对于显示的字符可以通过设置不同的参数来改变它的颜色,字体以及倾斜度。实例中,通过调用用户自定义的注释生成函数UsrNoteCreate(),在图纸上生成轴的技术要求等信息。具体函数如下: UsrNoteCreate() ProDtlnote note; ProDtlnotetextHeightSet(text, height); ProDtlnotetextWidthSet(text, -1.0); ProDtlnotetextSlantSet(text, 0.0); /设置注释字体的高、宽、倾斜度 ProDtlnotetextThicknessSet(text, 0.0);/设置字体粗细 ProStringToWstring(font, 襢ont?; ProDtlnotetextFontSet(text, font); /设置字体类型 ProStringToWstring(wstr, note_text); /note_text中存储需要显示的字符串 ProDtlnotetextStringSet(text, wstr); ProDtlnotelineAlloc(&line); ProDtlnotelineTextAdd(line, text); /为文本行分配存储空间 ProDtlnotedataAlloc(drawing, &ndata); ProDtlnotedataLineAdd(ndata, line);/为头峙淇占洌尤胛谋拘? ProDtlnotedataAngleSet(ndata, angle) ; ProDtlattachAlloc(PRO_DTLATTACHTYPE_FREE,NULL, pos_note, NULL, &attach); ProDtlnotedataAttachmentSet(ndata, attach); ProDtlattachAlloc(PRO_DTLATTACHTYPE_PARAMETRIC, NULL, NULL, surf_sel, &leader); ProDtlnotedataLeaderAdd(ndata, leader); ProDtlnoteCreate(drawing, NULL, ndata, ¬e); ProDtlnoteShow(¬e);/最终生成注释,并显示其中的字符串 ProDtlnotedataFree(ndata);/释放前面所分配的内存空间 Return(); 五、其他特殊符号的生成方法 TOOLKIT提供了最基本的二维图形生成函数ProDtlentityCreate(),它的生成方法和文本注释的生成方法类似。通过调用圆弧初始化函数ProArcdataInit()或者直线初始化函数ProLinedataInit(),可以很容易地画出直线或者圆弧曲线。以圆弧生成为例,程序如下: UsrCircleentityCreate() ProVector start_pos,end_pos; double start_angle, end_angle,start_angle ,end_angle ; ProDtlentitydataAlloc(drawing, &edata);/分配图元存储空间 ProCurvedataAlloc(&curve); /分配圆弧存储空间 ProArcdataInit(start_pos,end_pos,center,start_angle,end_angle,radius,curve);/ 圆弧的初始化:设置起点,终点,起始角度,中止角度以及半径 ProDtlentitydataCurveSet(edata, curve); entity_color.method = PRO_COLOR_METHOD_TYPE; entity_color.value.type = color; ProDtlentitydataColorSet(edata, &entity_color);/设置圆弧的线型颜色 ProDtlentityCreate(drawing, NULL, edata, entity);/生成圆弧 ProDtlentitydataFree(edata);/释放内存空间 return (); 借助于以上图形生成函数,可以生成一些特殊符号或者简单的剖面图形。在实例中,应用这种方法来实现粗糙度、同轴度及平行度等的标注。 六、程序运行 在Pro/ENGINEER环境中要运行用户自己的应用程序(可执行exe文件或动态链接库dll文件),必须在Pro/ENGINEER中对该程序进行注册。在Pro/ENGINEER安装目录下的toolkit子目录中有个Protk.dat文件,这就是一个标准的注册文件,用户只需按照实际情况简单更改就可以生成自己的注册文件。 程序如下: NAME drawing_application/应用程序名称 EXEC_FILE./$PRO_MACHINE_TYPE/obj/drawing_application.exe /用户编写的可执行程序 TEXT_DIR ./protk_appls/pt_install_test/text / STARTUPexe REVISION 18 END 有了注
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 培训班动员讲话稿
- 企业中层管理者高效沟通与协调技巧课件
- 《生态系统与生物循环》课件
- 网络安全管理员初级工练习题库与答案(附解析)
- 货币金融学模拟题及答案(附解析)
- 2024年4月护理三基三严习题库(附答案解析)
- 箱包绿色环保与可持续发展考核试卷
- 融资租赁业务中的国际法律合规考核试卷
- 《生产流程管理与控制》课件
- 谷物磨制设备故障分析与预防措施考核试卷
- 《进一步规范管理燃煤自备电厂工作方案》发改体改〔2021〕1624号
- SQL语句创建学生信息数据库表的示例学生信息数据库表
- 舆情风险应对处置
- 2024河南中考数学备考 二次函数图象与性质综合题、交点问题 (课件)
- 快速入门穿越机-让你迅速懂穿越机
- 数字电子技术(广东工业大学)智慧树知到期末考试答案章节答案2024年广东工业大学
- 人工智能对书法技法的革新
- 2024年四川省成都市高新区中考数学二诊试卷
- MOOC 知识创新与学术规范-南京大学 中国大学慕课答案
- 2024年济南市槐荫区二模英语试题
- 中外美术评析与欣赏智慧树知到期末考试答案章节答案2024年湖南大学
评论
0/150
提交评论