找回密码
 注册会员

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 362|回复: 0

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

[复制链接]
发表于 2010-9-13 22:00:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转磨削论坛

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

×

  3.视图生成实例及程序

- I6 Q7 B" t: x8 D: ?" h" S) k ) N! m% R& u, w, B" {& I

  在这个实例中,根据已生成的轴模型实体(axis.part),采用C语言编程,调用TOOLKIT提供的视图生成及调整函数,生成符合要求的图纸,并在此之上生成视图。程序如下:

t+ f1 q8 J5 i. M5 G* H" R. ~ % W: U: ?2 g0 f; ]9 A N4 j D y

  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);//获得视图轮廓大小…………….

% J( ~! K# M( Q* ?) P) ]6 P% j& E- q- q9 C& t, E

  //调整scale大小

$ T: _" U9 y8 m0 z, B2 K 8 ^, z' A3 V1 M' I" k7 D

  ProDrawingViewDelete(drawing,view,1);//删除不合理的视图ProDrawingGeneralviewCreate(drawing,solid,sheet,0,pos,scale,matrix,&view);//按照调整的比例大小scale重新生成视图ProDwgSheetRegenerate(drawing,sheet);//刷新窗口,重新显示生成的视图

8 r/ @) R: [5 J$ O/ z 6 K7 O+ c4 n' Z& s

  三、显示尺寸方法分析

N4 a9 K* U4 P- Z2 { 3 X6 K7 v3 _9 Z# r; b

  在Pro/ENGINEER中,实体模式(part mode)存储的尺寸和在制图(drawing)中创立的尺寸是不同的概念,因此要显示零件的尺寸就有以下两种方法可以实现。

5 `3 R- R0 R) O' p% a6 F" i$ F* \) P! w/ |8 L" k; J

  1.在制图模式中生成新的尺寸

1 H4 H* |. \ x F: E# j9 o / f [7 {+ Q. k* i+ Z; o: X

  在TOOLKIT中提供了尺寸生成函数ProDrawingDimCreate(),应用该函数可以生成各种尺寸。但是,该函数要求输入较多的入口参数,包括图纸模型(Drawing)、尺寸基准(Dimension Attachments)、尺寸类型(ProDimSense)、标注文本定位点(Dimension Text Location)等。

2 m# z# z. l; B7 l: |) K) g 1 ?, ]* E. [* G9 n% F

  2.在制图模式中直接显示实体模型中存储的尺寸

" B, B" ^8 Y4 \# g 7 w0 M) o1 }! j5 j7 P

  在TOOLKIT中提供了尺寸显示函数ProDimensionShow(),应用该函数可以在制图模式中有条件地显示实体模型中存储的各种尺寸,这也是Pro/ENGINEER制图模块中默认的显示模型尺寸的方法。相比较而言,这种显示尺寸的方法更简单适用,而且根据面向加工的设计思想(DFM),可以在设计阶段即实体造型阶段就考虑到加工,使得实体模型中存储的尺寸信息满足加工需求,即满足在出图时对尺寸显示的要求。

. _) c" R X. f: s# g. \ ; N# i6 r' b0 Q, E% M

  3.尺寸显示实例及程序

. [8 m0 O# c! R$ W5 y+ j ! ]' S( }3 w, K1 c

  在此实例中,选择第二种尺寸显示方法。

( P) l) Y9 S9 O4 j ; \+ J& \6 e1 z, P8 J

  ProSolid solid; ProSolidDimensionVisit(solid,-1,(ProDimensionVisitAction)DimVisitAction01, (ProDimensionFilterAction)DimVisitFilter01, (ProAppData)&p_data);//遍历实体模型中的各种尺寸ProError DimVisitAction01(ProDimension *dimension,ProError status,data *p_data)

" f5 \1 M7 {1 h4 j 9 ]5 Y0 y( i# K: Y. x

  //尺寸处理函数{ 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); //移动标注文本到指定位置}

3 H) I5 b7 j3 n% b2 [6 m3 O4 ~$ r( o! L+ ?# n$ M+ D: D$ f) R

  ProError DimVisitFilter01(ProDimension *dimension)//尺寸遍历过滤函数{ status =………….; //设置不同的过滤条件,使得不同类型的尺寸可以对应不同的处理函数return (status);

' J. Y# T: ]/ z* d' C% P 3 k8 G3 G/ o6 U" a( @. B8 B # I1 L: j* ~' T: ~; {0 u7 Z/ E3 b) Z) M& g% v
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

中国磨床技术论坛
论 坛 声 明 郑重声明:本论坛属技术交流,非盈利性论坛。本论坛言论纯属发表者个人意见,与“中国磨削技术论坛”立场无关。 涉及政治言论一律删除,请所有会员注意.论坛资源由会员从网上收集整理所得,版权属于原作者. 论坛所有资源是进行学习和科研测试之用,请在下载后24小时删除, 本站出于学习和科研的目的进行交流和讨论,如有侵犯原作者的版权, 请来信告知,我们将立即做出整改,并给予相应的答复,谢谢合作!

中国磨削网

QQ|Archiver|手机版|小黑屋|磨削技术网 ( 苏ICP备12056899号-1 )

GMT+8, 2025-1-9 10:14 , Processed in 0.172757 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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