找回密码
 注册会员

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 324|回复: 0

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

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

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

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

×

  四、注释生成实例与程序

8 M) p9 W9 P, r8 { ) a4 ?/ N, b; W! T

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

- s$ S! C. @. j0 M# v 1 K! G+ N) w% `( k7 z7 Y- T' d

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

3 Y4 D! }9 s8 s1 l " @) t; \0 D5 J" W

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

7 f H2 e5 v, O; d8 A- J 3 L1 m) D! G2 Z6 G c3 }' {% i, X

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

1 |: I" n) I' c5 V ( F" v, g1 \6 W6 X( |4 c- N* Z$ v

  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( q+ S3 E7 a! }9 L0 Z 1 @6 F3 N6 [1 \' r2 o: z

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

D- i n( Q: F X7 r# K- b 9 o6 @& ]2 Y6 l& r) c( H/ w7 H) W" Z& _' J) K; D 0 K/ }6 t$ U% X. d( X: ^# ~ [
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

中国磨削网

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

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

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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