⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ugfundvisit.c

📁 Pro.TOOLKIT.Wildfire插件设计.配套光盘-141M.zip
💻 C
字号:
/*-----------------------------------------------------------------------------	File:		UgFundVisit.c	Description:	demo visit functionality (new for Pro/TOOLKIT)            PTC             File   Date   Version   Author  Vers  Comment--------- -------  -------- ----- ---------------------------------------------04-dec-97 H-02-02  AWY/CHI    $$1 setup-----------------------------------------------------------------------------*//*---------------------- Pro/Toolkit Includes ------------------------*/#include "ProToolkit.h"#include "ProAxis.h"#include "ProFeature.h"#include "ProFeatType.h"#include "ProGeomitem.h"#include "ProMdl.h"#include "ProModelitem.h"#include "ProObjects.h"#include "ProSelection.h"#include "ProSizeConst.h"#include "ProSolid.h"#include "ProUtil.h"/*---------------------- Application Includes ------------------------*/#include "TestError.h"/*---------------------- Global Data ------------------------*/typedef struct surface_visit_data{    FILE *fp;    ProSolid part;} AxisVisitData_t;/*---------------------- Function Prototypes -------------------------*/ProError UserDemoAxisAct();ProError UserDemoHoleList();int UserVisitDemo();/*====================================================================*\    FUNCTION :  UserDemoAxisAct()    PURPOSE  :  Axis-visit action function, to write the		axis name to a file.\*====================================================================*/ProError UserDemoAxisAct(    ProAxis axis,    ProError filt_status,    ProAppData app_data){    ProError status;    AxisVisitData_t *p_data = (AxisVisitData_t*)app_data;    ProSolid part=p_data->part;    FILE *fp=p_data->fp;    int id;    ProModelitem modelitem;    ProFeature feature;    ProFeattype ftype;    ProName wname;    char name[PRO_NAME_SIZE];    ProSelection selection;/*--------------------------------------------------------------------*\    Get the axis id\*--------------------------------------------------------------------*/    status = ProAxisIdGet(axis, &id);    if(status != PRO_TK_NO_ERROR)        return(status);/*--------------------------------------------------------------------*\    Make a Modelitem handle for the axis\*--------------------------------------------------------------------*/    status = ProModelitemInit(part, id, PRO_AXIS, &modelitem);    if(status != PRO_TK_NO_ERROR)        return(status);/*--------------------------------------------------------------------*\    Get the feature the axis belongs to\*--------------------------------------------------------------------*/    status = ProGeomitemFeatureGet(&modelitem, &feature);    if(status != PRO_TK_NO_ERROR)        return(status);/*--------------------------------------------------------------------*\    Get the type of the feature\*--------------------------------------------------------------------*/    status = ProFeatureTypeGet(&feature, &ftype);    if(status != PRO_TK_NO_ERROR)        return(status);    /*--------------------------------------------------------------------*\    If the type was not HOLE, skip\*--------------------------------------------------------------------*/    if(ftype != PRO_FEAT_HOLE)        return(PRO_TK_NO_ERROR);/*--------------------------------------------------------------------*\    Get the name of the axis\*--------------------------------------------------------------------*/    status = ProModelitemNameGet(&modelitem, wname);    if(status != PRO_TK_NO_ERROR)        return(status);    ProWstringToString(name,wname);/*--------------------------------------------------------------------*\    Print out the axis name and hole id\*--------------------------------------------------------------------*/    fprintf(fp, "Axis %s belongs to hole feature %d\n", name, feature.id);/*--------------------------------------------------------------------*\    Highlight the owning hole\*--------------------------------------------------------------------*/    ProSelectionAlloc(NULL, &feature, &selection);    ProSelectionHighlight(selection, PRO_COLOR_HIGHLITE);    ProSelectionFree(&selection);    return(PRO_TK_NO_ERROR);}/*====================================================================*\    FUNCTION :  UserDemoHoleList()    PURPOSE  :  Function to list the axes which belong to hole features                in a part, and report their names\*====================================================================*/ProError UserDemoHoleList(    ProSolid part){    ProError status;    AxisVisitData_t data;    data.part = part;/*--------------------------------------------------------------------*\    Open the text file\*--------------------------------------------------------------------*/    data.fp = fopen("holelist.dat","w");/*--------------------------------------------------------------------*\    Visit all the axes using the visit and filter functions above.    Pass the owning sold, and the text file pointer using the app_data argument.\*--------------------------------------------------------------------*/    status = ProSolidAxisVisit(part, UserDemoAxisAct,                                NULL, (ProAppData)&data);    ERROR_CHECK("UserDemoHoleList","ProSolidAxisVisit",status);/*--------------------------------------------------------------------*\    Close the file\*--------------------------------------------------------------------*/    fclose(data.fp);
	    return( PRO_TK_NO_ERROR );}/*====================================================================*\    FUNCTION :  UserVisitDemo    PURPOSE  :  call UserDemoHoleList on current model\*====================================================================*/int UserVisitDemo( ){  ProMdl model;  ProError status;    status = ProMdlCurrentGet( &model );  ERROR_CHECK( "UserDemoVisit", "ProMdlCurrentGet", status );  if ( status == PRO_TK_NO_ERROR )    status = UserDemoHoleList( (ProSolid)model );  return( (int)status );}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -