首页 >> 直流稳压器

基于ProE的工程图纸自动化生成软件的开发模切机


2022年06月28日

基于Pro/E的工程图纸自动化生成软件的开发

基于Pro/E的工程图纸自动化生成软件的开发 2011: 一、前言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为3Χ3单位矩阵 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 有了注册文件之后,可在Pro/ENGINEER的AuxiliaryApplication对话框中加载该注册文件,以运行指定的应用程序,也可以将该注册文件放到Pro/ENGINEER的启动目录中,这样每次运行Pro/ENGINEER,都会自动加载这个文件,并运行指定的应用程序。 七、结束语 本文详细讨论了基于Pro/ENGINEER平台的零件工程图纸生成软件中零件视图、尺寸、注释等的自动生成方法,并通过编写C语言程序调用二次开发工具TOOLKIT提供的相关函数,具体实现了Pro/ENGINEER平台上轴类零件工程图纸的自动生成,从而改变了传统的人工出图方式,极大提高了设计人员的工作效率。 (end)

今天黄金回收多少一克

面包管厂家

重庆固化地坪哪家好

杭州物资回收

威特斯洗衣怎样

深圳人才引进网

相关阅读
最火铁合页铁合页厂家揭阳铁合页高档铁合页鼎捷冲版机功率控制器冷风扇实验箱仪表阀Rra

铁合页,铁合页厂家,揭阳铁合页,高档铁合页,鼎捷合页您当前位置:首页 企业...

2024-03-22
最火河南赛宇制冷科技有限公司网站全新改版上线电子枪激光晶体抛光轮涂布机铸钢Rra

河南赛宇制冷科技有限公司站全新改版上线您当前位置:首页 企业河南赛宇...

2024-03-22
最火1月25日郑州硬线最新价格行情步进电机刚玉砂轮铠装电缆软管接头旋转端子Rra

1月25日郑州硬线最新价格行情您当性能可靠前位置:首页 价格行情1月23、高...

2024-03-22
最火家装暖气靠窗散热效果更棒传动齿轮管阀连接导线手机主板引擎支架Rra

家装暖气靠窗 散热效果更棒您当前位置:首页 企业家装暖气靠窗 散热效果更...

2024-03-22
最火14日无锡市场碳素工具钢价格行情薄膜电容分歧管紧定螺丝青岛线材加工Rra

14日无锡市场碳素工具钢价格行情您当前位置:首页 价格行情14日无锡市场而...

2024-03-22
最火国内铝企业应把握政策性拐点不断扩大应用领除氧器挂钩立式钻床手扶拖拉机音圈Rra

国内铝企业应把握政策性拐点不断扩大应用领域应把握政策性拐点不断扩大应...

2024-03-22
友情链接
聚酯布 我D小蔡蔡 腿沉无力是怎么回事 拉力试验机 定制服装 止痛膏药哪种效果好 婚姻律师 葵花盐酸氨溴索口服溶液治孩子咳痰有用吗 如何有效去除黑头粉刺 宝宝感冒了怎么办才好得快 京万红软膏多久可以治好 家庭常备药 PVC电力管生产厂家 40多记忆力减退是不是老年痴呆 中秋送父亲什么酒 吃什么药能养心调律 下腹痛有尿急尿不出 上海离婚事务所 北京离婚纠纷律师 招聘网 我D小蔡蔡 脑栓塞后遗症的护理措施 痛性糖尿病周围神经病变的护理诊断 工作服门户 灰指甲用亮甲要多久才能好 腊八蒜和白醋能治灰指甲吗 灰指甲长出来发白是什么原因 指甲里有白色斑块是灰指甲吗 优甲乐和亮甲的区别 治灰指甲期间脚可以沾水吗 有脚气泡脚会感染灰指甲吗 凤仙花治灰指甲要多久 一瓶亮甲能用几次 哪种再造丸作用好 睡眠易醒可以服用百乐眠胶囊吗 找医院 喝酒的人吃什么护肝 甲流发热怎么退烧 芜湖肿瘤医院 诉讼离婚律师在线 黔西妇科专科医院哪家好 离婚析产 林芝癫痫病医院哪家好 深圳离婚共同财产 漯河治疗妇产专科医院 湖南长沙癫痫病 子女抚养 LED Display 今时兄弟 天津定做工作服 岩棉试验机试验机 Hardness Tester Color 寻医问药 昆明癫痫病哪个医院好 四川治疗精神科哪家医院好 河南痛风风湿病医院 昆明治疗妇产哪个医院好 广东哪个医院治疗儿科好 寄瑶网 万能电子试验机 Products In China