基于Pro/E的工程图纸自动化生成软件的开发(三)
<p> 四、注释生成实例与程序</p><p> 在TOOLKIT中,注释是以文本行(Note Line)为最小的存储单元的,不同的文本行组成一个注释块(Note Data),对于这些注释块,调用函数ProDtlnoteCreate()就可以生成注释,并在图纸的任何位置处显示出来。对于显示的字符可以通过设置不同的参数来改变它的颜色,字体以及倾斜度。实例中,通过调用用户自定义的注释生成函数UsrNoteCreate(),在图纸上生成轴的技术要求等信息。具体函数如下:</p>
<p> 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();} </p>
<p> 五、其他特殊符号的生成方法</p>
<p> TOOLKIT提供了最基本的二维图形生成函数ProDtlentityCreate(),它的生成方法和文本注释的生成方法类似。通过调用圆弧初始化函数ProArcdataInit()或者直线初始化函数ProLinedataInit(),可以很容易地画出直线或者圆弧曲线。以圆弧生成为例,程序如下:</p>
<p> 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(); } </p>
<p> 借助于以上图形生成函数,可以生成一些特殊符号或者简单的剖面图形。在实例中,应用这种方法来实现粗糙度、同轴度及平行度等的标注。</p>
页:
[1]