找回密码
 注册会员

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 325|回复: 0

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

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

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

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

×

  四、注释生成实例与程序

5 Q, C; x2 U& t1 @/ \( [8 N" H, E7 a5 b+ x! b) V: P$ i3 y5 N3 _

  在TOOLKIT中,注释是以文本行(Note Line)为最小的存储单元的,不同的文本行组成一个注释块(Note Data),对于这些注释块,调用函数ProDtlnoteCreate()就可以生成注释,并在图纸的任何位置处显示出来。对于显示的字符可以通过设置不同的参数来改变它的颜色,字体以及倾斜度。实例中,通过调用用户自定义的注释生成函数UsrNoteCreate(),在图纸上生成轴的技术要求等信息。具体函数如下:

7 A0 I) S: y! ^5 i' n8 ^! i3 T% s. u; O0 E' e5 \/ y6 a! w

  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();}

- Y: s9 h- V9 A1 g' c6 _+ I% A# O4 M

  五、其他特殊符号的生成方法

\' F' R0 X8 _$ F* W2 ]6 W8 E1 x' L 2 k. F* j* z: M& k& x9 H- n

  TOOLKIT提供了最基本的二维图形生成函数ProDtlentityCreate(),它的生成方法和文本注释的生成方法类似。通过调用圆弧初始化函数ProArcdataInit()或者直线初始化函数ProLinedataInit(),可以很容易地画出直线或者圆弧曲线。以圆弧生成为例,程序如下:

9 k0 e- R; [* F* c1 S9 _, m: {' g V; C* R

  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(); }

T& i* B1 n' n" O " Z H _5 [: e$ [/ G, ]/ b3 n

  借助于以上图形生成函数,可以生成一些特殊符号或者简单的剖面图形。在实例中,应用这种方法来实现粗糙度、同轴度及平行度等的标注。

" g: p! Z4 p; m* [- V, s3 Q* t$ z2 \, _1 L 1 Q- F2 \; P% K( y9 Y. F& q 5 w5 _% m/ ^* ~) E
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

中国磨削网

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

GMT+8, 2024-11-16 14:59 , Processed in 0.196944 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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