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

📄 geardesign.c

📁 Pro.TOOLKIT.Wildfire插件设计.配套光盘-141M.zip
💻 C
📖 第 1 页 / 共 5 页
字号:
	{1, PRO_E_STD_SECTION,  {(ProValueDataType)-1}},	{2, PRO_E_STD_SEC_SETUP_PLANE,  {(ProValueDataType)-1}},	{3, PRO_E_STD_SEC_PLANE, {PRO_VALUE_TYPE_SELECTION}},	{3, PRO_E_STD_SEC_PLANE_VIEW_DIR, {PRO_VALUE_TYPE_INT, PRO_SEC_VIEW_DIR_SIDE_ONE}},	{3, PRO_E_STD_SEC_PLANE_ORIENT_DIR, {PRO_VALUE_TYPE_INT, PRO_SEC_ORIENT_DIR_LEFT}},	{3, PRO_E_STD_SEC_PLANE_ORIENT_REF, {PRO_VALUE_TYPE_SELECTION}},	{1, PRO_E_FEAT_FORM_IS_THIN, {PRO_VALUE_TYPE_INT, PRO_EXT_FEAT_FORM_NO_THIN}},	{1, PRO_E_STD_DIRECTION, {PRO_VALUE_TYPE_INT, PRO_EXT_CR_IN_SIDE_TWO}},	{1, PRO_E_STD_EXT_DEPTH, {(ProValueDataType)-1}},	{2, PRO_E_EXT_DEPTH_FROM, {(ProValueDataType)-1}},	{3, PRO_E_EXT_DEPTH_FROM_TYPE, {PRO_VALUE_TYPE_INT, PRO_EXT_DEPTH_FROM_NONE}},	{2, PRO_E_EXT_DEPTH_TO, {(ProValueDataType)-1}},	{3, PRO_E_EXT_DEPTH_TO_TYPE, {PRO_VALUE_TYPE_INT, PRO_EXT_DEPTH_TO_BLIND}},	{3, PRO_E_EXT_DEPTH_TO_VALUE, {PRO_VALUE_TYPE_DOUBLE}},    };    ProError err;    FeatureDef feat_def;    ProFeature feature;    Pro3dPnt pnt;    ProModelitem modelitem;    if (g_ptr->hub_out_diam == 0.0 || g_ptr->hub_depth == 0.0)      return 1;/*-----------------------------------------------------------------*\    Preparation of feature data\*-----------------------------------------------------------------*/    memset(&feat_def, 0, sizeof(feat_def));    ProUtilSelectionFromSurfaceId(g_ptr->model, g_ptr->gear_type == SPUR_GEAR ?	g_ptr->disk_front_surf_id : g_ptr->backplate_back_surf_id, 	&tree[7].data.v.r);    ProUtilSelectionFromSurfaceId(g_ptr->model, g_ptr->side_surface_id, 	&tree[10].data.v.r);    tree[18].data.v.d = g_ptr->hub_depth;     feat_def.tree = tree;    feat_def.sizeof_tree = SIZEOFARR(tree);    feat_def.params[0].d = g_ptr->hub_out_diam;    feat_def.params[1].r = tree[10].data.v.r;    ProUtilSelectionFromSurfaceId(g_ptr->model, g_ptr->bottom_surface_id, 	&feat_def.params[2].r);    feat_def.section_create_func = ProUtilCreateCircleSection;    feat_def.feat_name  = "Hub";/*-----------------------------------------------------------------*\    Create new feature\*-----------------------------------------------------------------*/    err  = ProUtilCreateSketchedFeature(g_ptr, &feat_def, &feature);    if (err == PRO_TK_NO_ERROR)    {	g_ptr->hub_created = 1;		ProUserFeatsReorder(g_ptr);	/*-----------------------------------------------------------------*\    Find and name required surfaces\*-----------------------------------------------------------------*/	pnt[0] = g_ptr->datum_x_offset;	pnt[1] = g_ptr->datum_y_offset + (g_ptr->inner_diam + g_ptr->hub_out_diam)/4; 	if (g_ptr->gear_type == SPUR_GEAR)	    pnt[2] = g_ptr->datum_z_offset + g_ptr->gear_depth + g_ptr->hub_depth;	else	    pnt[2] = g_ptr->datum_z_offset - g_ptr->backplate_depth - g_ptr->hub_depth;	ProUtilGeometryAtPointFind((ProPart)g_ptr->model, pnt, &modelitem);	g_ptr->hub_front_surf_id = modelitem.id;	ProUtilModelitemNameSet(&modelitem, "HUB_FRONT");	pnt[0] = g_ptr->datum_x_offset;	pnt[1] = g_ptr->datum_y_offset + g_ptr->hub_out_diam/2; 	if (g_ptr->gear_type == SPUR_GEAR)	    pnt[2] = g_ptr->datum_z_offset + g_ptr->gear_depth + g_ptr->hub_depth/2;	else	    pnt[2] = g_ptr->datum_z_offset - g_ptr->backplate_depth - g_ptr->hub_depth/2;	ProUtilGeometryAtPointFind((ProPart)g_ptr->model, pnt, &modelitem);	g_ptr->hub_side_surf_id = modelitem.id;	ProUtilModelitemNameSet(&modelitem, "HUB_SIDE");    }/*-----------------------------------------------------------------*\    Free allocated memory\*-----------------------------------------------------------------*/    ProSelectionFree(&tree[7].data.v.r);    ProSelectionFree(&tree[10].data.v.r);    ProSelectionFree(&feat_def.params[2].r);    return (err);}/*=============================================================*\  Function: 	ProUserCreateBackPlate  Purpose:	create first gear tooth\*=============================================================*/int ProUserCreateBackPlate(GearParam *g_ptr){    static ElemTreeData tree[]={	{0, PRO_E_FEATURE_TREE, {(ProValueDataType)-1}},	{1, PRO_E_FEATURE_TYPE, {PRO_VALUE_TYPE_INT, PRO_FEAT_PROTRUSION}},	{1, PRO_E_FEATURE_FORM, {PRO_VALUE_TYPE_INT, PRO_EXTRUDE}},	{1, PRO_E_EXT_SURF_CUT_SOLID_TYPE, {PRO_VALUE_TYPE_INT, PRO_EXT_FEAT_TYPE_SOLID}},	{1, PRO_E_REMOVE_MATERIAL, {PRO_VALUE_TYPE_INT, PRO_EXT_MATERIAL_ADD}},	{1, PRO_E_STD_SECTION,  {(ProValueDataType)-1}},	{2, PRO_E_STD_SEC_SETUP_PLANE, {(ProValueDataType)-1}},	{3, PRO_E_STD_SEC_PLANE, {PRO_VALUE_TYPE_SELECTION}},	{3, PRO_E_STD_SEC_PLANE_VIEW_DIR, {PRO_VALUE_TYPE_INT, PRO_SEC_VIEW_DIR_SIDE_TWO}},	{3, PRO_E_STD_SEC_PLANE_ORIENT_DIR, {PRO_VALUE_TYPE_INT, PRO_SEC_ORIENT_DIR_LEFT}},	{3, PRO_E_STD_SEC_PLANE_ORIENT_REF, {PRO_VALUE_TYPE_SELECTION}},	{1, PRO_E_FEAT_FORM_IS_THIN, {PRO_VALUE_TYPE_INT, PRO_EXT_FEAT_FORM_NO_THIN}},	{1, PRO_E_STD_DIRECTION, {PRO_VALUE_TYPE_INT, PRO_EXT_CR_IN_SIDE_TWO}},	{1, PRO_E_STD_EXT_DEPTH, {(ProValueDataType)-1}},	{2, PRO_E_EXT_DEPTH_FROM, {(ProValueDataType)-1}},	{3, PRO_E_EXT_DEPTH_FROM_TYPE, {PRO_VALUE_TYPE_INT, PRO_EXT_DEPTH_FROM_NONE}},	{2, PRO_E_EXT_DEPTH_TO, {(ProValueDataType)-1}},	{3, PRO_E_EXT_DEPTH_TO_TYPE, {PRO_VALUE_TYPE_INT, PRO_EXT_DEPTH_TO_BLIND}},	{3, PRO_E_EXT_DEPTH_TO_VALUE, {PRO_VALUE_TYPE_DOUBLE}},    };    ProError err;    FeatureDef feat_def;    ProFeature feature;    Pro3dPnt pnt;    ProModelitem modelitem;        if (g_ptr->backplate_diam == 0.0 || g_ptr->backplate_depth == 0.0)      return 1;    /*-----------------------------------------------------------------*\    Preparation of feature data\*-----------------------------------------------------------------*/    memset(&feat_def, 0, sizeof(feat_def));    ProUtilSelectionFromSurfaceId(g_ptr->model, g_ptr->front_surface_id, 	&tree[7].data.v.r);    ProUtilSelectionFromSurfaceId(g_ptr->model, g_ptr->side_surface_id, 	&tree[10].data.v.r);    tree[18].data.v.d = g_ptr->backplate_depth;     feat_def.tree = tree;    feat_def.sizeof_tree = SIZEOFARR(tree);    feat_def.params[0].d = g_ptr->backplate_diam;    feat_def.params[1].r = tree[10].data.v.r;    ProUtilSelectionFromSurfaceId(g_ptr->model, g_ptr->bottom_surface_id, 	&feat_def.params[2].r);    feat_def.section_create_func = ProUtilCreateCircleSection;    feat_def.feat_name  = "Back_Plate";/*-----------------------------------------------------------------*\    Create new feature\*-----------------------------------------------------------------*/    err  = ProUtilCreateSketchedFeature(g_ptr, &feat_def, &feature);    if (err == PRO_TK_NO_ERROR)    {	g_ptr->backplate_created = 1;		ProUserFeatsReorder(g_ptr);	/*-----------------------------------------------------------------*\    Find and name required surfaces\*-----------------------------------------------------------------*/	pnt[0] = g_ptr->datum_x_offset + (g_ptr->backplate_diam - g_ptr->inner_diam)/2;	pnt[1] = g_ptr->datum_y_offset; 	pnt[2] = g_ptr->datum_z_offset - g_ptr->backplate_depth;	ProUtilGeometryAtPointFind((ProPart)g_ptr->model, pnt, &modelitem);	g_ptr->backplate_back_surf_id = modelitem.id;	ProUtilModelitemNameSet(&modelitem, "BACKPLATE_BACK");	pnt[0] = g_ptr->datum_x_offset;	pnt[1] = g_ptr->datum_y_offset + g_ptr->backplate_diam/2; 	pnt[2] = g_ptr->datum_z_offset - g_ptr->backplate_depth/2;	ProUtilGeometryAtPointFind((ProPart)g_ptr->model, pnt, &modelitem);	g_ptr->backplate_side_surf_id = modelitem.id;	ProUtilModelitemNameSet(&modelitem, "BACKPLATE_SIDE");    }/*-----------------------------------------------------------------*\    Free allocated memory\*-----------------------------------------------------------------*/    ProSelectionFree(&tree[7].data.v.r);    ProSelectionFree(&tree[10].data.v.r);    ProSelectionFree(&feat_def.params[2].r);    return (err);}/*=============================================================*\  Function: 	ProUserCreateKeyway  Purpose:	create keyway inner\*=============================================================*/int ProUserCreateKeyway(GearParam *g_ptr){    static ElemTreeData tree[]= {	{0, PRO_E_FEATURE_TREE, {(ProValueDataType)-1}},	{1, PRO_E_FEATURE_TYPE, {PRO_VALUE_TYPE_INT, PRO_FEAT_CUT}},	{1, PRO_E_FEATURE_FORM, {PRO_VALUE_TYPE_INT, PRO_EXTRUDE}},	{1, PRO_E_EXT_SURF_CUT_SOLID_TYPE, {PRO_VALUE_TYPE_INT, PRO_EXT_FEAT_TYPE_SOLID}},	{1, PRO_E_REMOVE_MATERIAL, {PRO_VALUE_TYPE_INT, PRO_EXT_MATERIAL_REMOVE}},	{1, PRO_E_STD_SECTION,  {(ProValueDataType)-1}},	{2, PRO_E_STD_SEC_SETUP_PLANE,  {(ProValueDataType)-1}},	{3, PRO_E_STD_SEC_PLANE, {PRO_VALUE_TYPE_SELECTION}},	{3, PRO_E_STD_SEC_PLANE_VIEW_DIR, {PRO_VALUE_TYPE_INT, PRO_SEC_VIEW_DIR_SIDE_ONE}},	{3, PRO_E_STD_SEC_PLANE_ORIENT_DIR, {PRO_VALUE_TYPE_INT, PRO_SEC_ORIENT_DIR_RIGHT}},	{3, PRO_E_STD_SEC_PLANE_ORIENT_REF, {PRO_VALUE_TYPE_SELECTION}},	{1, PRO_E_FEAT_FORM_IS_THIN, {PRO_VALUE_TYPE_INT, PRO_EXT_FEAT_FORM_NO_THIN}},	{1, PRO_E_STD_DIRECTION, {PRO_VALUE_TYPE_INT, PRO_EXT_CR_IN_SIDE_ONE}},	{1, PRO_E_STD_MATRLSIDE, {PRO_VALUE_TYPE_INT, PRO_EXT_MATERIAL_SIDE_TWO}},	{1, PRO_E_STD_EXT_DEPTH, {(ProValueDataType)-1}},	{2, PRO_E_EXT_DEPTH_FROM, {(ProValueDataType)-1}},
	{3, PRO_E_EXT_DEPTH_FROM_TYPE, {PRO_VALUE_TYPE_INT, PRO_EXT_DEPTH_FROM_NONE}},	{2, PRO_E_EXT_DEPTH_TO, {(ProValueDataType)-1}},	{3, PRO_E_EXT_DEPTH_TO_TYPE, {PRO_VALUE_TYPE_INT, PRO_EXT_DEPTH_TO_ALL}}    };    ProError err;    FeatureDef feat_def;    ProFeature feature;    if (g_ptr->keyway_in_width == 0.0 || g_ptr->keyway_in_height == 0.0)      return 1;/*-----------------------------------------------------------------*\    Preparation of feature data\*-----------------------------------------------------------------*/    memset(&feat_def, 0, sizeof(feat_def));    ProUtilSelectionFromSurfaceId(g_ptr->model, g_ptr->disk_front_surf_id, 	&tree[7].data.v.r);    ProUtilSelectionFromSurfaceId(g_ptr->model, g_ptr->side_surface_id, 	&tree[10].data.v.r);    tree[12].data.v.i = g_ptr->gear_type != RING_GEAR ?      PRO_EXT_CR_IN_SIDE_ONE : PRO_EXT_CR_IN_SIDE_TWO;      feat_def.tree = tree;    feat_def.sizeof_tree = SIZEOFARR(tree);    feat_def.params[0].d = g_ptr->keyway_in_width;    feat_def.params[1].d = g_ptr->keyway_in_height;        ProUtilSelectionFromSurfaceId(g_ptr->model, g_ptr->hole_side_surf_id, 	&feat_def.params[2].r);    feat_def.section_create_func = ProUtilCreateKeySection;    feat_def.feat_name  = "Keyway";/*-----------------------------------------------------------------*\    Create new feature\*-----------------------------------------------------------------*/    err  = ProUtilCreateSketchedFeature(g_ptr, &feat_def, &feature);    if (err == PRO_TK_NO_ERROR)    {	g_ptr->keyway_created = 1;    }/*-----------------------------------------------------------------*\    Free allocated memory\*-----------------------------------------------------------------*/    ProSelectionFree(&tree[7].data.v.r);    ProSelectionFree(&tree[10].data.v.r);    ProSelectionFree(&feat_def.params[2].r);    return (err);}/*=============================================================*\  Function: 	ProUserCreateKey  Purpose:	create keyway outer\*=============================================================*/int ProUserCreateKey(GearParam *g_ptr){    static ElemTreeData tree[]= {	{0, PRO_E_FEATURE_TREE, {(ProValueDataType)-1}},	{1, PRO_E_FEATURE_TYPE, {PRO_VALUE_TYPE_INT, PRO_FEAT_PROTRUSION}},	{1, PRO_E_FEATURE_FORM, {PRO_VALUE_TYPE_INT, PRO_EXTRUDE}},	{1, PRO_E_EXT_SURF_CUT_SOLID_TYPE, {PRO_VALUE_TYPE_INT, PRO_EXT_FEAT_TYPE_SOLID}},	{1, PRO_E_REMOVE_MATERIAL, {PRO_VALUE_TYPE_INT, PRO_EXT_MATERIAL_ADD}},	{1, PRO_E_STD_SECTION,  {(ProValueDataType)-1}},	{2, PRO_E_STD_SEC_SETUP_PLANE,  {(ProValueDataType)-1}},	{3, PRO_E_STD_SEC_PLANE, {PRO_VALUE_TYPE_SELECTION}},	{3, PRO_E_STD_SEC_PLANE_VIEW_DIR, {PRO_VALUE_TYPE_INT, PRO_SEC_VIEW_DIR_SIDE_ONE}},	{3, PRO_E_STD_SEC_PLANE_ORIENT_DIR, {PRO_VALUE_TYPE_INT, PRO_SEC_ORIENT_DIR_RIGHT}},	{3, PRO_E_STD_SEC_PLANE_ORIENT_REF, {PRO_VALUE_TYPE_SELECTION}},	{1, PRO_E_FEAT_FORM_IS_THIN, {PRO_VALUE_TYPE_INT, 0}},	{1, PRO_E_STD_DIRECTION, {PRO_VALUE_TYPE_INT, PRO_EXT_CR_IN_SIDE_ONE}},	{1, PRO_E_STD_MATRLSIDE, {PRO_VALUE_TYPE_INT, PRO_EXT_MATERIAL_SIDE_TWO}},		{1, PRO_E_STD_EXT_DEPTH, {(ProValueDataType)-1}},	{2, PRO_E_EXT_DEPTH_FROM, {(ProValueDataType)-1}},	{3, PRO_E_EXT_DEPTH_FROM_TYPE, {PRO_VALUE_TYPE_INT, PRO_EXT_DEPTH_FROM_NONE}},	{2, PRO_E_EXT_DEPTH_TO, {(ProValueDataType)-1}},	      	{3, PRO_E_EXT_DEPTH_TO_TYPE, {PRO_VALUE_TYPE_INT, PRO_EXT_DEPTH_TO_NEXT}}	    };    ProError err;    FeatureDef feat_def;    ProFeature feature;    if (g_ptr->keyway_out_width == 0.0 || g_ptr->keyway_out_height == 0.0)      return 1;/*-----------------------------------------------------------------*\    Preparation of feature data\*-----------------------------------------------------------------*/    memset(&feat_def, 0, sizeof(feat_def));    ProUtilSelectionFromSurfaceId(g_ptr->model, g_ptr->hub_front_surf_id, 	&tree[7].data.v.r);    ProUtilSelectionFromSurfaceId(g_ptr->model, g_ptr->side_surface_id, 	&tree[10].data.v.r);    tree[9].data.v.i = g_ptr->gear_type == RING_GEAR ?      PRO_SEC_ORIENT_DIR_LEFT : PRO_SEC_ORIENT_DIR_RIGHT;       feat_def.tree = tree;    feat_def.sizeof_tree = SIZEOFARR(tree);    feat_def.params[0].d = g_ptr->keyway_out_width;    feat_def.params[1].d = g_ptr->keyway_out_height;    ProUtilSelectionFromSurfaceId(g_ptr->model, g_ptr->hub_side_surf_id, 	&feat_def.params[2].r);    feat_def.section_create_func = ProUtilCreateKeySection;    feat_def.feat_name  = "Key";/*-----------------------------------------------------------------*\    Create new feature\*-----------------------------------------------------------------*/    err  = ProUtilCreateSketchedFeature(g_ptr, &feat_def, &feature);    if (err == PRO_TK_NO_ERROR)    {	g_ptr->key_created = 1;    }/*-----------------------------------------------------------------*\    Free allocated memory\*-----------------------------------------------------------------*/    ProSelectionFree(&tree[7].data.v.r);    ProSelectionFree(&tree[10].data.v.r);    ProSelectionFree(&feat_def.params[2].r);    return (err);}/*=============================================================*\  Function: 	ProUserCreateBackNotch  Purpose:	create a notch on the Back Plate\*=============================================================*/int ProUserCreateBackNotch(GearParam *g_ptr){    static ElemTreeData tree[]={	{0, PRO_E_FEATURE_TREE, {(ProValueDataType)-1}},	{1, PRO_E_FEATURE_TYPE, {PRO_VALUE_TYPE_INT, PRO_FEAT_CUT}},	{1, PRO_E_FEATURE_FORM, {PRO_VALUE_TYPE_INT, PRO_EXTRUDE}},	{1, PRO_E_EXT_SURF_CUT_SOLID_TYPE, {PRO_VALUE_TYPE_INT, PRO_EXT_FEAT_TYPE_SOLID}},	{1, PRO_E_REMOVE_MATERIAL, {PRO_VALUE_TYPE_INT, PRO_EXT_MATERIAL_REMOVE}},	{1, PRO_E_STD_SECTION,  {(ProValueDataType)-1}},	{2, PRO_E_STD_SEC_SETUP_PLANE,  {(ProValueDataType)-1}},	{3, PRO_E_STD_SEC_PLANE, {PRO_VALUE_TYPE_SELECTION}},	{3, PRO_E_STD_SEC_PLANE_VIEW_DIR, {PRO_VALUE_TYPE_INT, PRO_SEC_VIEW_DIR_SIDE_ONE}},	{3, PRO_E_STD_SEC_PLANE_ORIENT_DIR, {PRO_VALUE_TYPE_INT, PRO_SEC_ORIENT_DIR_RIGHT}},	{3, PRO_E_STD_SEC_PLANE_ORIENT_REF, {PRO_VALUE_TYPE_SELECTION}},	{1, PRO_E_FEAT_FORM_IS_THIN, {PRO_VALUE_TYPE_INT, PRO_EXT_FEAT_FORM_NO_THIN}},	{1, PRO_E_STD_DIRECTION, {PRO_VALUE_TYPE_INT, PRO_EXT_CR_IN_SIDE_ONE}},	{1, PRO_E_STD_MATRLSIDE, {PRO_VALUE_TYPE_INT, PRO_EXT_MATERIAL_SIDE_TWO}},		{1, PRO_E_STD_EXT_DEPTH, {(ProValueDataType)-1}},

⌨️ 快捷键说明

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