/*
Copyright (c) 2019 PTC Inc. and/or Its Subsidiary Companies. All Rights Reserved.
*/
/*---------------------- Pro/Toolkit Includes ------------------------*/
#include <ProToolkit.h>
#include <ProMenu.h>
#include <ProMdl.h>
#include <ProMode.h>
/*---------------------- Application Includes ------------------------*/
#include <TestError.h>
int UserGeometrySetup(void * user_data, int calling_menu);
int UserLayerSetup(void * user_data, int calling_menu);
int UserParamSetup(void * user_data, int calling_menu);
int UserSktFeatSetup();
int UserInterfChckSetup();
int UserAnimationSetup();
int UserMenuDeleteAndPop();
int UserCoordTransfSetup();
ProError UserViewsSetup();
int UserSectionSetup();
int UserRelationsSetup();
int CreateCascadeMenu();
/*------------------------- External Data ----------------------------*/
extern int UserVisitDemo();
extern int UserLoadPart();
extern int UserOutlineCompute();
extern int UserArcDiaDisp();
extern int UserConeAngDisp();
extern int UserChildDisp();
extern int UserSurfRename();
extern int UserSurfArea();
extern int UserCurveLength();
extern int UserHoleSrfDisp();
extern int UserBlank();
extern int UserScanLayers();
extern int UserLabelFeature();
extern int UserDatumRefs();
extern int UserAsmCompVisit();
extern int ProDemoBaseExtrudeProtrCreate();
extern ProError user_surf_clear();
extern ProError user_dist_manifolds();
extern ProError user_global_interference();
extern ProError user_part_interference();
extern int UserLayerCreate();
extern int UserAsmcompAnimate();
extern ProError UserDisplayREADME();
extern int UserDtmPlaneSetup();
extern int UserFeatCollectExample();
extern int UserDimensionChange();
extern ProError UserDimDisplayRounded();
extern ProError UserDimensionsByAxisDirectionShow();
extern int UserScreen2DrwExample();
extern int UserSolid2ScreenExample();
extern int UserSectionCreateExample();
extern int UserSectionReplace();
extern int UserAddSplineDimension();
extern int user_Family_Diffs();
extern int UserExtobjCreate();
extern int UgBaseSweepProtrCreate();
extern int UserRelsEdit();
extern int ProDemoHoleCreate();
extern ProError ProDemoGeneralCsysCreate();
extern ProError ProDemoGeneralPointCreate();
extern ProError ProDemoSketchedPointCreate();
extern ProError ProDemoOffsetPointCreate();
extern ProError ProDemoFieldPointCreate();
extern ProError ProDemoSketchedCurveCreate();
extern ProError ProDemoDatumAxisCreate();
extern ProError UserSktExtrusionProtrusion();
extern ProError UserSktExtrusionCut();
extern ProError UserSktExtrusionThin();
extern ProError UserSktExtrusionSurfaceCapped();
extern ProError UserSktExtrusionSurfaceTrim();
extern ProError UserSktRevolveProtrusion();
extern ProError UserSktRevolveThinCut();
extern ProError UserSktRevolveSurface();
extern int UgSweepProtrCreate();
extern ProError UgSktFirstFeatureCreate();
extern ProError UgSktFirstFeatureRevCreate();
extern ProError UserEdgeRoundCreate();
extern ProError UserEdgeChamferCreate();
extern ProError UserSimpleDraftCreate();
extern ProError UserSktRevolveProtrusionExtSkt();
extern ProError UserSktExtrusionProtrusionExtSkt();
extern ProError UserIntcollectionDraftCreate();
extern ProError UserOADraftCreate();
extern ProError FeatRemoveSurfExample();
extern ProError UgCreoSweepCreate();
extern ProError UserFlexModelCreateonSurface();
extern ProError UserFlexModelCreateFree();
extern ProError UserFlexModelCreateonEdge();
/*====================================================================*\
Function : UserFundSetup()
Purpose : Set up the Fundamentals Menu
\*====================================================================*/
int UserFundSetup(void * user_data, int calling_menu)
{
int menu_id, action, status;
status = ProMenuFileRegister("UGFUND", "ugfund.mnu", &menu_id);
ERROR_CHECK( "UserFundSetup", "ProMenuFileRegister", status );
status = ProMenubuttonActionSet("UGFUND","-Exp Array",
(ProMenubuttonAction)UserFeatCollectExample, NULL, 0);
ERROR_CHECK( "UserFundSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFUND","-Visit Functions",
(ProMenubuttonAction)UserVisitDemo, NULL, 0);
ERROR_CHECK( "UserFundSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFUND","-Coord Transf",
(ProMenubuttonAction)UserCoordTransfSetup, NULL, calling_menu);
ERROR_CHECK( "UserFundSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFUND", "-Done/Return",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL,0);
ERROR_CHECK( "UserFundSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFUND", "UGFUND",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL, 0);
ERROR_CHECK( "UserFundSetup", "ProMenubuttonActionSet", status );
status = ProMenuPush();
ERROR_CHECK( "UserFundSetup", "ProMenuPush", status );
status = ProMenuCreate(PROMENUTYPE_MAIN, "UGFUND", &menu_id);
ERROR_CHECK( "UserFundSetup", "ProMenuCreate", status );
if (calling_menu != PRO_MODE_PART)
{
status = ProMenubuttonDeactivate("UGFUND","-Exp Array");
ERROR_CHECK( "UserFundSetup", "ProMenubuttonDeactivate", status );
if (calling_menu != PRO_MODE_ASSEMBLY)
{
status = ProMenubuttonDeactivate("UGFUND","-Visit Functions");
ERROR_CHECK( "UserFundSetup", "ProMenubuttonDeactivate", status );
}
}
status = ProMenuProcess("UGFUND", &action);
ERROR_CHECK( "UserFundSetup", "ProMenuProcess", status );
return(PRO_TK_NO_ERROR);
}
/*====================================================================*
Function : UserCoordTransfSetup()
Purpose : Set up the menu for Coordinate Transformations
\*====================================================================*/
int UserCoordTransfSetup(void * user_data, int calling_menu)
{
int menu_id, action, status;
status = ProMenuFileRegister("UGCoordTransf", "ugcoord.mnu", &menu_id);
ERROR_CHECK( "UserCoordTransfSetup", "ProMenuFileRegister", status );
status = ProMenubuttonActionSet("UGCoordTransf","-Screen To Drawing",
(ProMenubuttonAction)UserScreen2DrwExample, NULL, 0);
ERROR_CHECK( "UserCoordTransfSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGCoordTransf","-Solid To Screen",
(ProMenubuttonAction)UserSolid2ScreenExample, NULL, 0);
ERROR_CHECK( "UserCoordTransfSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGCoordTransf","-Done/Return",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL, 0);
ERROR_CHECK( "UserCoordTransfSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGCoordTransf","UGCoordTransf",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL, 0);
ERROR_CHECK( "UserCoordTransfSetup", "ProMenubuttonActionSet", status );
status = ProMenuPush();
ERROR_CHECK( "UserCoordTransfSetup", "ProMenuPush", status );
status = ProMenuCreate(PROMENUTYPE_MAIN, "UGCoordTransf", &menu_id);
ERROR_CHECK( "UserCoordTransfSetup", "ProMenuCreate", status );
if ((calling_menu != PRO_MODE_PART) && (calling_menu != PRO_MODE_ASSEMBLY))
{
status = ProMenubuttonDeactivate("UGCoordTransf","-Solid To Screen");
ERROR_CHECK( "UserCoordTransfSetup", "ProMenubuttonDeactivate", status );
}
if (calling_menu != PRO_MODE_DRAWING)
{
status = ProMenubuttonDeactivate("UGCoordTransf","-Screen To Drawing");
ERROR_CHECK( "UserCoordTransfSetup", "ProMenubuttonDeactivate", status );
}
status = ProMenuProcess("UGCoordTransf", &action);
ERROR_CHECK( "UserCoordTransfSetup", "ProMenuProcess", status );
return(PRO_TK_NO_ERROR);
}
/*====================================================================*
Function : UserGeometrySetup()
Purpose : Set up the Geometry menu or the User's guide demo
\*====================================================================*/
int UserGeometrySetup(void * user_data, int calling_menu)
{
int menu_id, action, status;
status = ProMenuFileRegister("UGGeometry","uggeom.mnu",&menu_id);
ERROR_CHECK( "UserGeometrySetup", "ProMenuFileRegister", status );
status = ProMenubuttonActionSet("UGGeometry","-Outline",
(ProMenubuttonAction)UserOutlineCompute, NULL, 0);
ERROR_CHECK( "UserGeometrySetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGGeometry","-Disp Arc Dia",
(ProMenubuttonAction)UserArcDiaDisp, NULL, 0);
ERROR_CHECK( "UserGeometrySetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGGeometry","-Disp Cone Angle",
(ProMenubuttonAction)UserConeAngDisp, NULL, 0);
ERROR_CHECK( "UserGeometrySetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGGeometry","-Disp Children",
(ProMenubuttonAction)UserChildDisp, NULL, 0);
ERROR_CHECK( "UserGeometrySetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGGeometry","-Disp Hole Surf",
(ProMenubuttonAction)UserHoleSrfDisp, NULL, 0);
ERROR_CHECK( "UserGeometrySetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGGeometry","-Rename Surf",
(ProMenubuttonAction)UserSurfRename, NULL, 0);
ERROR_CHECK( "UserGeometrySetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGGeometry","-Interference Chck",
(ProMenubuttonAction)UserInterfChckSetup, NULL, calling_menu);
ERROR_CHECK( "UserGeometrySetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGGeometry","-Surf Area",
(ProMenubuttonAction)UserSurfArea, NULL, 0);
ERROR_CHECK( "UserGeometrySetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGGeometry","-Curve Length",
(ProMenubuttonAction)UserCurveLength, NULL, 0);
ERROR_CHECK( "UserGeometrySetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGGeometry","-Done/Return",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL, 0);
ERROR_CHECK( "UserGeometrySetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGGeometry","UGGeometry",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL, 0);
ERROR_CHECK( "UserGeometrySetup", "ProMenubuttonActionSet", status );
status = ProMenuPush();
ERROR_CHECK( "UserGeometrySetup", "ProMenuPush", status );
status = ProMenuCreate(PROMENUTYPE_MAIN, "UGGeometry", &menu_id);
ERROR_CHECK( "UserGeometrySetup", "ProMenuCreate", status );
if (calling_menu != PRO_MODE_PART)
{
status = ProMenubuttonDeactivate("UGGeometry","-Disp Hole Surf");
ERROR_CHECK("UserGeometrySetup","ProMenubuttonDeactivate",status );
}
status = ProMenuProcess("UGGeometry", &action);
ERROR_CHECK( "UserGeometrySetup", "ProMenuProcess", status );
return(PRO_TK_NO_ERROR);
}
/*====================================================================*
Function : UserInterfChckSetup()
Purpose : Set up the Interference Checking Menu
\*====================================================================*/
int UserInterfChckSetup(void * arg1, int calling_menu)
{
int menu_id, action, status;
status = ProMenuFileRegister("UGINTERFCHCK", "uginterf.mnu", &menu_id);
ERROR_CHECK( "UserInterfChckSetup", "ProMenuFileRegister", status );
status = ProMenubuttonActionSet("UGINTERFCHCK","-Srf Clearance",
(ProMenubuttonAction)user_surf_clear, NULL, 0);
ERROR_CHECK( "UserInterfChckSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGINTERFCHCK","-Crit Dist",
(ProMenubuttonAction)user_dist_manifolds, NULL, 0);
ERROR_CHECK( "UserInterfChckSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGINTERFCHCK","-Part Interf",
(ProMenubuttonAction)user_part_interference, NULL, 0);
ERROR_CHECK( "UserInterfChckSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGINTERFCHCK","-Global Interf",
(ProMenubuttonAction)user_global_interference, NULL, 0);
ERROR_CHECK( "UserInterfChckSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGINTERFCHCK", "-Done/Return",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL,0);
ERROR_CHECK( "UserInterfChckSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGINTERFCHCK", "UGINTERFCHCK",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL, 0);
ERROR_CHECK( "UserInterfChckSetup", "ProMenubuttonActionSet", status );
status = ProMenuPush();
ERROR_CHECK( "UserInterfChckSetup", "ProMenuPush", status );
status = ProMenuCreate(PROMENUTYPE_MAIN, "UGINTERFCHCK", &menu_id);
ERROR_CHECK( "UserInterfChckSetup", "ProMenuCreate", status );
if (calling_menu != PRO_MODE_ASSEMBLY)
{
status = ProMenubuttonDeactivate("UGINTERFCHCK","-Part Interf");
ERROR_CHECK( "UserInterfChckSetup", "ProMenubuttonDeactivate", status );
status = ProMenubuttonDeactivate("UGINTERFCHCK","-Global Interf");
ERROR_CHECK( "UserInterfChckSetup", "ProMenubuttonDeactivate", status );
}
status = ProMenuProcess("UGINTERFCHCK", &action);
ERROR_CHECK( "UserInterfChckSetup", "ProMenuProcess", status );
return(PRO_TK_NO_ERROR);
}
/*====================================================================*
Function : UserFeatCreatSetup()
Purpose : Set up the Feature Creation Menu
\*====================================================================*/
int UserFeatCreatSetup(void * arg1, int calling_menu)
{
int menu_id, action, status;
status = ProMenuFileRegister("UGFeatCreate", "ugfeatcrt.mnu", &menu_id);
ERROR_CHECK( "UserSktFeatSetup", "ProMenuFileRegister", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Datum Plane",
(ProMenubuttonAction)UserDtmPlaneSetup, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Section",
(ProMenubuttonAction)UserSectionSetup, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-General Csys",
(ProMenubuttonAction)ProDemoGeneralCsysCreate, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-General Point",
(ProMenubuttonAction)ProDemoGeneralPointCreate, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Sketched Point",
(ProMenubuttonAction)ProDemoSketchedPointCreate, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Offset Point",
(ProMenubuttonAction)ProDemoOffsetPointCreate, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Field Point",
(ProMenubuttonAction)ProDemoFieldPointCreate, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Sketched Curve",
(ProMenubuttonAction)ProDemoSketchedCurveCreate, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Datum Axis",
(ProMenubuttonAction)ProDemoDatumAxisCreate, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-First Swept Protr",
(ProMenubuttonAction)UgBaseSweepProtrCreate, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Creo Sweep",
(ProMenubuttonAction)UgCreoSweepCreate, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Swept Protr",
(ProMenubuttonAction)UgSweepProtrCreate, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-First Feature",
(ProMenubuttonAction)UgSktFirstFeatureCreate, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-First Feature Rev",
(ProMenubuttonAction)UgSktFirstFeatureRevCreate, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Extr Protr API",
(ProMenubuttonAction)ProDemoBaseExtrudeProtrCreate, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Extr Protr Conv",
(ProMenubuttonAction)UserSktExtrusionProtrusion, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Extr Protr Ext Skt",
(ProMenubuttonAction)UserSktExtrusionProtrusionExtSkt, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Extr Cut Conv",
(ProMenubuttonAction)UserSktExtrusionCut, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Extr Thin Conv",
(ProMenubuttonAction)UserSktExtrusionThin, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Extr Surf Conv",
(ProMenubuttonAction)UserSktExtrusionSurfaceCapped, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Extr SurfTrim Conv",
(ProMenubuttonAction)UserSktExtrusionSurfaceTrim, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Rev Protr Conv",
(ProMenubuttonAction)UserSktRevolveProtrusion, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Rev ThinCut Conv",
(ProMenubuttonAction)UserSktRevolveThinCut, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Rev Protr Ext Skt",
(ProMenubuttonAction)UserSktRevolveProtrusionExtSkt, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Rev Surface Conv",
(ProMenubuttonAction)UserSktRevolveSurface, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Straight Hole",
(ProMenubuttonAction)ProDemoHoleCreate, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Edge Round",
(ProMenubuttonAction)UserEdgeRoundCreate, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Edge Chamfer",
(ProMenubuttonAction)UserEdgeChamferCreate, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Simple Draft",
(ProMenubuttonAction)UserSimpleDraftCreate, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Simple Draft InterCollect",
(ProMenubuttonAction)UserIntcollectionDraftCreate, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Simple Draft OA",
(ProMenubuttonAction)UserOADraftCreate, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Remove Surface",
(ProMenubuttonAction)FeatRemoveSurfExample, NULL, 0);
ERROR_CHECK( "FeatRemoveSurfExample", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate","-Flexible Modelling",
(ProMenubuttonAction)CreateCascadeMenu,NULL,0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate", "-Done/Return",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL,0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFeatCreate", "UGFeatCreate",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL, 0);
ERROR_CHECK( "UserSktFeatSetup", "ProMenubuttonActionSet", status );
status = ProMenuPush();
ERROR_CHECK( "UserSktFeatSetup", "ProMenuPush", status );
status = ProMenuCreate(PROMENUTYPE_MAIN, "UGFeatCreate", &menu_id);
ERROR_CHECK( "UserSktFeatSetup", "ProMenuCreate", status );
if (calling_menu == PRO_MODE_UNUSED)
{
status = ProMenubuttonDeactivate("UGFeatCreate","-General Csys");
ERROR_CHECK( "UserFeatCreatSetup", "ProMenubuttonDeactivate", status );
status = ProMenubuttonDeactivate("UGFeatCreate","-General Point");
ERROR_CHECK( "UserFeatCreatSetup", "ProMenubuttonDeactivate", status );
status = ProMenubuttonDeactivate("UGFeatCreate","-Sketched Point");
ERROR_CHECK( "UserFeatCreatSetup", "ProMenubuttonDeactivate", status );
status = ProMenubuttonDeactivate("UGFeatCreate","-Offset Point");
ERROR_CHECK( "UserFeatCreatSetup", "ProMenubuttonDeactivate", status );
status = ProMenubuttonDeactivate("UGFeatCreate","-Field Point");
ERROR_CHECK( "UserFeatCreatSetup", "ProMenubuttonDeactivate", status );
status = ProMenubuttonDeactivate("UGFeatCreate","-Sketched Curve");
ERROR_CHECK( "UserFeatCreatSetup", "ProMenubuttonDeactivate", status );
status = ProMenubuttonDeactivate("UGFeatCreate","-Datum Axis");
ERROR_CHECK( "UserFeatCreatSetup", "ProMenubuttonDeactivate", status );
status = ProMenubuttonDeactivate("UGFeatCreate","-Straight Hole");
ERROR_CHECK( "UserFeatCreatSetup", "ProMenubuttonDeactivate", status );
status = ProMenubuttonDeactivate("UGFeatCreate","-Datum Plane");
ERROR_CHECK( "UserFeatCreatSetup", "ProMenubuttonDeactivate", status );
status = ProMenubuttonDeactivate("UGFeatCreate","-Extr Protr API");
ERROR_CHECK( "UserFeatCreatSetup", "ProMenubuttonDeactivate", status );
status = ProMenubuttonDeactivate("UGFeatCreate","-Extr Protr Conv");
ERROR_CHECK( "UserFeatCreatSetup", "ProMenubuttonDeactivate", status );
}
status = ProMenuProcess("UGFeatCreate", &action);
ERROR_CHECK( "UserSktFeatSetup", "ProMenuProcess", status );
return(PRO_TK_NO_ERROR);
}
/*====================================================================*
Function : UserDtmPlaneSetup()
Purpose : Set up the Datum Plane Creation Menu
\*====================================================================*/
int UserDtmPlaneSetup()
{
int menu_id, action, status;
status = ProMenuFileRegister("UGDTMCREATE", "ugdtm.mnu", &menu_id);
ERROR_CHECK( "UserDtmPlaneSetup", "ProMenuFileRegister", status );
status = ProMenubuttonActionSet("UGDTMCREATE","-Create Dtm Plane",
(ProMenubuttonAction)UserDatumRefs, NULL, 0);
ERROR_CHECK( "UserDtmPlaneSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGDTMCREATE", "-Done/Return",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL,0);
ERROR_CHECK( "UserDtmPlaneSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGDTMCREATE", "UGDTMCREATE",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL, 0);
ERROR_CHECK( "UserDtmPlaneSetup", "ProMenubuttonActionSet", status );
status = ProMenuPush();
ERROR_CHECK( "UserDtmPlaneSetup", "ProMenuPush", status );
status = ProMenuCreate(PROMENUTYPE_MAIN, "UGDTMCREATE", &menu_id);
ERROR_CHECK( "UserDtmPlaneSetup", "ProMenuCreate", status );
status = ProMenuProcess("UGDTMCREATE", &action);
ERROR_CHECK( "UserDtmPlaneSetup", "ProMenuProcess", status );
return(PRO_TK_NO_ERROR);
}
/*====================================================================*
Function : UserSectionSetup()
Purpose : Set up the Sketcher Menu
\*====================================================================*/
int UserSectionSetup()
{
int menu_id, action, status;
status = ProMenuFileRegister("UGSECTION", "ugsection.mnu", &menu_id);
ERROR_CHECK( "UserSectionSetup", "ProMenuFileRegister", status );
status = ProMenubuttonActionSet("UGSECTION","-Create SecModel",
(ProMenubuttonAction)UserSectionCreateExample, NULL, 0);
ERROR_CHECK( "UserSectionSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGSECTION","-Replace Section",
(ProMenubuttonAction)UserSectionReplace, NULL, 0);
ERROR_CHECK( "UserSectionReplace", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGSECTION","-Add Spline Dimension",
(ProMenubuttonAction)UserAddSplineDimension, NULL, 0);
ERROR_CHECK( "UserAddSplineDimension", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGSECTION", "-Done/Return",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL,0);
ERROR_CHECK( "UserSectionSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGSECTION", "UGSECTION",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL, 0);
ERROR_CHECK( "UserSectionSetup", "ProMenubuttonActionSet", status );
status = ProMenuPush();
ERROR_CHECK( "UserSectionSetup", "ProMenuPush", status );
status = ProMenuCreate(PROMENUTYPE_MAIN, "UGSECTION", &menu_id);
ERROR_CHECK( "UserSectionSetup", "ProMenuCreate", status );
status = ProMenuProcess("UGSECTION", &action);
ERROR_CHECK( "UserSectionSetup", "ProMenuProcess", status );
return(PRO_TK_NO_ERROR);
}
/*====================================================================*
Function : UserLayerSetup()
Purpose : Set up the Layer menu or the User's guide demo
\*====================================================================*/
int UserLayerSetup(void * user_data, int calling_menu)
{
int menu_id, action, status;
status = ProMenuFileRegister("UGLayer", "uglayer.mnu", &menu_id);
ERROR_CHECK( "UserLayerSetup", "ProMenuFileRegister", status );
status = ProMenubuttonActionSet("UGLayer","-LayerCreate",
(ProMenubuttonAction)UserLayerCreate, NULL, 0);
ERROR_CHECK( "UserLayerSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGLayer","-LayerBlank",
(ProMenubuttonAction)UserBlank, NULL, 0);
ERROR_CHECK( "UserLayerSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGLayer","-LayerScan",
(ProMenubuttonAction)UserScanLayers, NULL, 0);
ERROR_CHECK( "UserLayerSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGLayer","-Done/Return",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL, 0);
ERROR_CHECK( "UserLayerSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGLayer","UGLayer",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL, 0);
ERROR_CHECK( "UserLayerSetup", "ProMenubuttonActionSet", status );
status = ProMenuPush();
ERROR_CHECK( "UserLayerSetup", "ProMenuPush", status );
status = ProMenuCreate(PROMENUTYPE_MAIN, "UGLayer", &menu_id);
ERROR_CHECK( "UserLayerSetup", "ProMenuCreate", status );
status = ProMenuProcess("UGLayer", &action);
ERROR_CHECK( "UserLayerSetup", "ProMenuProcess", status );
return(PRO_TK_NO_ERROR);
}
/*====================================================================*
Function : UserParamSetup()
Purpose : Set up the Parameters menu or the User's guide demo
\*====================================================================*/
int UserParamSetup(void * user_data, int calling_menu)
{
int menu_id, action, status;
status = ProMenuFileRegister("UGParameter", "ugparam.mnu", &menu_id);
ERROR_CHECK( "UserParamSetup", "ProMenuFileRegister", status );
status = ProMenubuttonActionSet("UGParameter","-Label Feature",
(ProMenubuttonAction)UserLabelFeature, NULL, 0);
ERROR_CHECK( "UserParamSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGParameter","-Done/Return",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL, 0);
ERROR_CHECK( "UserParamSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGParameter","UGParameter",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL, 0);
ERROR_CHECK( "UserParamSetup", "ProMenubuttonActionSet", status );
status = ProMenuPush();
ERROR_CHECK( "UserParamSetup", "ProMenuPush", status );
status = ProMenuCreate(PROMENUTYPE_MAIN, "UGParameter", &menu_id);
ERROR_CHECK( "UserParamSetup", "ProMenuCreate", status );
status = ProMenuProcess("UGParameter", &action);
ERROR_CHECK( "UserParamSetup", "ProMenuProcess", status );
return(PRO_TK_NO_ERROR);
}
/*====================================================================*
Function : UserDimensionsSetup()
Purpose : Set up the Menu for Dimensions
\*====================================================================*/
ProError UserDimensionsSetup()
{
int menu_id, action, status;
ProMdl model;
status = ProMenuFileRegister("UGDIMS", "ugdims.mnu", &menu_id);
ERROR_CHECK( "UserDimensionsSetup", "ProMenuFileRegister", status );
status = ProMenubuttonActionSet("UGDIMS","-Change Dims",
(ProMenubuttonAction)UserDimensionChange, NULL, 0);
ERROR_CHECK( "UserDimensionsSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGDIMS","-Rounded Display of Dims",
(ProMenubuttonAction)UserDimDisplayRounded, NULL, 0);
ERROR_CHECK( "UserDimensionsSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGDIMS","-Find Parallel Dims",
(ProMenubuttonAction)UserDimensionsByAxisDirectionShow, NULL, 0);
ERROR_CHECK( "UserDimensionsSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGDIMS", "-Done/Return",
UserMenuDeleteAndPop, NULL,0);
ERROR_CHECK( "UserDimensionsSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGDIMS", "UGDIMS",
UserMenuDeleteAndPop, NULL, 0);
ERROR_CHECK( "UserDimensionsSetup", "ProMenubuttonActionSet", status );
status = ProMenuPush();
ERROR_CHECK( "UserDimensionsSetup", "ProMenuPush", status );
status = ProMenuCreate(PROMENUTYPE_MAIN, "UGDIMS", &menu_id);
ERROR_CHECK( "UserDimensionsSetup", "ProMenuCreate", status );
status = ProMenuProcess("UGDIMS", &action);
ERROR_CHECK( "UserDimensionsSetup", "ProMenuProcess", status );
return(PRO_TK_NO_ERROR);
}
/*====================================================================*
Function : UserFamTabSetup()
Purpose : Set up the Family Tables Menu
\*====================================================================*/
int UserFamTabSetup()
{
int menu_id, action, status;
ProMdl model;
status = ProMenuFileRegister("UGFAMTAB", "ugfamtab.mnu", &menu_id);
ERROR_CHECK( "UserFamTabSetup", "ProMenuFileRegister", status );
status = ProMenubuttonActionSet("UGFAMTAB","-Inst Comp",
(ProMenubuttonAction)user_Family_Diffs, NULL, 0);
ERROR_CHECK( "UserFamTabSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFAMTAB", "-Done/Return",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL,0);
ERROR_CHECK( "UserFamTabSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFAMTAB", "UGFAMTAB",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL, 0);
ERROR_CHECK( "UserFamTabSetup", "ProMenubuttonActionSet", status );
status = ProMenuPush();
ERROR_CHECK( "UserFamTabSetup", "ProMenuPush", status );
status = ProMenuCreate(PROMENUTYPE_MAIN, "UGFAMTAB", &menu_id);
ERROR_CHECK( "UserFamTabSetup", "ProMenuCreate", status );
status = ProMenuProcess("UGFAMTAB", &action);
ERROR_CHECK( "UserFamTabSetup", "ProMenuProcess", status );
return(PRO_TK_NO_ERROR);
}
/*====================================================================*\
Function : UserExtObjSetup()
Purpose : Set up the External Objects Menu
\*====================================================================*/
int UserExtObjSetup()
{
int menu_id, action, status;
status = ProMenuFileRegister("UGEXTOBJ", "ugextobj.mnu", &menu_id);
ERROR_CHECK( "UserExtObjSetup", "ProMenuFileRegister", status );
status = ProMenubuttonActionSet("UGEXTOBJ","-Create",
(ProMenubuttonAction)UserExtobjCreate, NULL, 0);
ERROR_CHECK( "UserExtObjSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGEXTOBJ", "-Done/Return",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL,0);
ERROR_CHECK( "UserExtObjSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGEXTOBJ", "UGEXTOBJ",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL, 0);
ERROR_CHECK( "UserExtObjSetup", "ProMenubuttonActionSet", status );
status = ProMenuPush();
ERROR_CHECK( "UserExtObjSetup", "ProMenuPush", status );
status = ProMenuCreate(PROMENUTYPE_MAIN, "UGEXTOBJ", &menu_id);
ERROR_CHECK( "UserExtObjSetup", "ProMenuCreate", status );
status = ProMenuProcess("UGEXTOBJ", &action);
ERROR_CHECK( "UserExtObjSetup", "ProMenuProcess", status );
return(PRO_TK_NO_ERROR);
}
/*====================================================================*\
Function : UserViewsSetup()
Purpose : Set up the Views Menu
\*====================================================================*/
ProError UserViewsSetup()
{
int menu_id;
int action;
ProError status;
ProError UserViews();
/*---------------------------------------------------------------------------*\
read in menu file
\*---------------------------------------------------------------------------*/
status=ProMenuFileRegister("Views","ugviews.mnu",&menu_id);
ERROR_CHECK("UserViewsSetup","ProMenuFileRegister",status);
/*---------------------------------------------------------------------------*\
attach actions to menu
\*---------------------------------------------------------------------------*/
status=ProMenubuttonActionSet("Views","Views",
(ProMenubuttonAction)UserMenuDeleteAndPop,NULL,0);
ERROR_CHECK("UserViewsSetup","ProMenubuttonActionSet(Views)",status);
status=ProMenubuttonActionSet("Views","SaveViews",
(ProMenubuttonAction)UserViews,NULL,0);
ERROR_CHECK("UserViewsSetup","ProMenubuttonActionSet(SaveViews)",status);
status=ProMenubuttonActionSet("Views","Done/Return",
(ProMenubuttonAction)UserMenuDeleteAndPop,NULL,0);
ERROR_CHECK("UserViewsSetup","ProMenubuttonActionSet(SaveViews)",status);
/*---------------------------------------------------------------------------*\
put menu on screen
\*---------------------------------------------------------------------------*/
status = ProMenuPush();
ERROR_CHECK( "UserViewsSetup", "ProMenuPush", status );
status=ProMenuCreate(PROMENUTYPE_MAIN,"Views",&menu_id);
ERROR_CHECK("UserViewsSetup","ProMenuCreate",status);
/*---------------------------------------------------------------------------*\
activate menu
\*---------------------------------------------------------------------------*/
status=ProMenuProcess("", &action);
ERROR_CHECK("UserViewsSetup","ProMenuProcess",status);
return( status );
}
/*====================================================================*
Function : UserRelationsSetup()
Purpose : Set up the Relations menu or the User's guide demo
\*====================================================================*/
int UserRelationsSetup(void * user_data, int calling_menu)
{
int menu_id, action, status;
status = ProMenuFileRegister("UGRelations","ugrels.mnu", &menu_id);
ERROR_CHECK( "UserRelationsSetup", "ProMenuFileRegister", status );
status = ProMenubuttonActionSet("UGRelations","-Edit Relations",
(ProMenubuttonAction)UserRelsEdit, NULL, 0);
ERROR_CHECK( "UserRelationsSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGRelations","-Done Return",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL, 0);
ERROR_CHECK( "UserRelationsSetup", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGRelations","UGRelations",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL, 0);
ERROR_CHECK( "UserRelationsSetup", "ProMenubuttonActionSet", status );
status = ProMenuPush();
ERROR_CHECK( "UserRelationsSetup", "ProMenuPush", status );
status = ProMenuCreate(PROMENUTYPE_MAIN, "UGRelations", &menu_id);
ERROR_CHECK( "UserRelationsSetup", "ProMenuCreate", status );
status = ProMenuProcess("UGRelations", &action);
ERROR_CHECK( "UserRelationsSetup", "ProMenuProcess", status );
return(PRO_TK_NO_ERROR);
}
/*====================================================================*
Function : UserMenuDeleteAndPop()
Purpose : Deletes the current menu and pops up its parent
\*====================================================================*/
int UserMenuDeleteAndPop()
{
int status;
status = ProMenuDelete();
ERROR_CHECK( "UserMenuDeleteAndPop", "ProMenuDelete", status );
status = ProMenuPop();
ERROR_CHECK( "UserMenuDeleteAndPop", "ProMenuPop", status );
return (PRO_TK_NO_ERROR);
}
int CreateCascadeMenu()
{
ProError status;
int menu_id,action;
status = ProMenuFileRegister("UGFlexModel","ugflex.mnu", &menu_id);
ERROR_CHECK( "CreateCascadeMenu", "ProMenuFileRegister", status );
status = ProMenubuttonActionSet("UGFlexModel","-Flex On Surface",
(ProMenubuttonAction)UserFlexModelCreateonSurface,NULL,0);
ERROR_CHECK( "CreateCascadeMenu", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFlexModel","-Flex On Edge",
(ProMenubuttonAction)UserFlexModelCreateonEdge,NULL,0);
ERROR_CHECK( "CreateCascadeMenu", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFlexModel","-Flex Free",
(ProMenubuttonAction)UserFlexModelCreateFree,NULL,0);
ERROR_CHECK( "CreateCascadeMenu", "ProMenubuttonActionSet", status );
status = ProMenubuttonActionSet("UGFlexModel", "-Done/Return",
(ProMenubuttonAction)UserMenuDeleteAndPop, NULL,0);
ERROR_CHECK( "CreateCascadeMenu", "ProMenubuttonActionSet", status );
status = ProMenuPush();
ERROR_CHECK( "CreateCascadeMenu", "ProMenuPush", status );
status = ProMenuCreate(PROMENUTYPE_MAIN,"UGFlexModel",&menu_id);
ERROR_CHECK( "CreateCascadeMenu", "ProMenuCreate", status );
status = ProMenuProcess("UGFlexModel", &action);
ERROR_CHECK( "CreateCascadeMenu", "ProMenuProcess", status );
return PRO_TK_NO_ERROR;
}