/*============================================================================*\ FILE : TestCavLayout.c PURPOSE : HISTORY.. DATE BUILD AUTHOR MODIFICATIONS 14-Oct-98 I-01-23 Alexey $$1 Created 10-Nov-98 I-01-26 Alexey $$2 Update CavityLayoutRedefine 19-Nov-98 I-01-26 Alexey $$3 ProTestCavityLayoutSetup: use valid leader csys asmcomppath 03-Dec-98 I-01-27 Alexey $$4 Test ProCavlayrule functionality 16-Dec-98 I-01-27 Alexey $$5 Fix ProTestCavityLayoutSetup 21-Dec-98 I-01-28 akh $$6 Update ProTestCavityLayoutCreate for a new cavity layout 06-Jan-99 I-01-29 Alexey $$7 Fix bug when calling to ProCavlayruleFileRead from ProTestCavlayruleSet 31-May-99 I-03-11 mka $$8 Delete unused variable. 28-Oct-99 I-03-20 akkur $$9 Fixed TEST_CALL_REPORTs. Added *Free and ProCavitylayoutModelnames(Set/Get) calls. \*============================================================================*/ /*----------------------------------------------------------------------------*\ Pro/TOOLKIT includes \*----------------------------------------------------------------------------*/ #include #include #include #include #include #include #include #include #include #include #include #include #include /*----------------------------------------------------------------------------*\ C System includes \*----------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*\ Application includes \*----------------------------------------------------------------------------*/ #include "TestError.h" #include "UtilMessage.h" #include "UtilString.h" #include "UtilMenu.h" #include "UtilFiles.h" #include "UtilCollect.h" /*----------------------------------------------------------------------------*\ Application macros \*----------------------------------------------------------------------------*/ #define RULE_FILE_READ 5 /*----------------------------------------------------------------------------*\ Application prototypes \*----------------------------------------------------------------------------*/ ProError ProTestCavityLayoutModelNamesSet (ProCavityLayout *cvlayout_ptr); /*----------------------------------------------------------------------------*\ Application global/external data \*----------------------------------------------------------------------------*/ /*============================================================================*\ FUNCTION : ProTestCavityLayoutMenu PURPOSE : Setup menu for testing \*============================================================================*/ ProError ProTestCavityLayoutMenu() { ProError status; ProMdl mdl; int menu_id, action; ProMdlType type; ProAssembly assy_obj; ProError ProTestCavityLayoutInfo(); ProError ProTestCavityLayoutRedefine(); ProError ProTestCavityLayoutCreate(); status = ProMdlCurrentGet(&mdl); if (status != PRO_TK_NO_ERROR) { ProUtilMsgPrint("gen", "TEST %0s", "NO current object"); return(PRO_TK_NO_ERROR); } status = ProMdlTypeGet(mdl, &type); if(type == PRO_MFG) { status = ProMfgAssemGet((ProMfg)mdl, &assy_obj); mdl = assy_obj; } status = ProMenuFileRegister("TkCavityLayout","tkcavitylayout.mnu", &menu_id); status = ProMenubuttonActionSet("TkCavityLayout", "TkCavityLayout", (ProMenubuttonAction)ProMenuDelete, NULL, 0); status = ProMenubuttonActionSet("TkCavityLayout", "Info", (ProMenubuttonAction)ProTestCavityLayoutInfo, &mdl, 0); status = ProMenubuttonActionSet("TkCavityLayout", "Create", (ProMenubuttonAction)ProTestCavityLayoutCreate, &mdl, 0); status = ProMenubuttonActionSet("TkCavityLayout", "Redefine", (ProMenubuttonAction)ProTestCavityLayoutRedefine, &mdl, 0); status = ProMenuCreate(PROMENUTYPE_MAIN, "TkCavityLayout", NULL); status= ProMenuProcess("", &action); return (0); } /*============================================================================*\ FUNCTION : ProTestCavityLayoutInfo PURPOSE : Test Cavity Layout info functions \*============================================================================*/ ProError ProTestCavityLayoutInfo(ProMdl *mdl) { ProError status; ProCavityLayout cvlayout; ProAsmcomppath csys_comp_path, leader_comp; ProCsys csys; int count, i, j, csys_id; double min_x, min_y, min_z, max_x, max_y, max_z; ProMdl mdl_leader; ProModelitem item_lider; ProPath w_path; ProSelection sel; char fname[PRO_FILE_NAME_SIZE] = "cavity_layout.inf"; char leader_name[PRO_NAME_SIZE]; FILE *fp; ProCvLayoutRule rule; ProCvLayoutType type, basic_type; int cavity_num, cavity_num_x, cavity_num_y; double *increment1_arr, *increment2_arr, *increment3_arr; ProCvLayoutOrient orient; ProName *model_names; char* ProTestCavityLayoutTypeToStr(); fp = fopen(fname, "w"); if(fp == NULL) return(PRO_TK_GENERAL_ERROR); status = ProCavitylayoutCountGet(*mdl, &count); TEST_CALL_REPORT("ProCavitylayoutCountGet()", "ProTestCavityLayoutInfo()", status, status != PRO_TK_NO_ERROR); if(count == 0) { ProUtilMsgPrint("gen", "TEST %0s", "Cavity Layout not found"); return(PRO_TK_E_NOT_FOUND); } for (i = 0; i= butn_num)) { } ProStringToWstring (new_model_names[i], itm_btns[opt].button); } ProArrayFree((ProArray*)&itm_btns); status = ProCavitylayoutModelnamesSet (*cvlayout_ptr, new_model_names); TEST_CALL_REPORT("ProCavitylayoutModelnamesSet()", "ProTestCavityLayoutModelNamesSet()", status, status != PRO_TK_NO_ERROR); ProArrayFree((ProArray*)&old_model_names); status = ProCavitylayoutModelnamesGet (*cvlayout_ptr, &old_model_names); TEST_CALL_REPORT("ProCavitylayoutModelnamesGet()", "ProTestCavityLayoutModelNamesSet()", status, status != PRO_TK_NO_ERROR); printf ("New names:\n"); for (i=0; i