/* Copyright (c) 2024 PTC Inc. and/or Its Subsidiary Companies. All Rights Reserved. */ /*--------------------------------------------------------------------*\ Pro/TOOLKIT includes \*--------------------------------------------------------------------*/ #include <ProToolkit.h> #include <ProObjects.h> #include <ProMdl.h> #include <ProMenu.h> #include <ProDrawing.h> #include <ProMessage.h> #include <ProUtil.h> #include <ProDwgtable.h> /*--------------------------------------------------------------------*\ Pro/DEVELOP includes \*--------------------------------------------------------------------*/ /*--------------------------------------------------------------------*\ C System includes \*--------------------------------------------------------------------*/ /*--------------------------------------------------------------------*\ Application includes \*--------------------------------------------------------------------*/ #include "TestError.h" /*--------------------------------------------------------------------*\ Application macros \*--------------------------------------------------------------------*/ /*--------------------------------------------------------------------*\ Application data types \*--------------------------------------------------------------------*/ /*--------------------------------------------------------------------*\ Application global/external data \*--------------------------------------------------------------------*/ ProError ProTestDrawingMerge(); /*====================================================================*\ FUNCTION : ProTestDraw() PURPOSE : Define and activate menu of Toolkit Test commands drawing \*====================================================================*/ int ProTestDraw() { ProError status; ProMdl model; int action; int ProTestLayerMenu (ProMdl *mod); int ProTestDrwSimpRep (); int ProTestDrwSheets (); int ProTestDetail (); int ProTestDrawingView (ProMdl *mod); int ProTestDimensionMenu (ProMdl *model); ProError ProTestDrawingInfo(); ProError ProTestDrwTable(); status = ProMdlCurrentGet(&model); TEST_CALL_REPORT("ProMdlCurrentGet()", "ProTestDraw()", status, status != PRO_TK_NO_ERROR); ProMenuPush (); ProMenuFileRegister((char*)"TkDrawing",(char*)"tkdrawing.mnu", NULL); ProMenubuttonActionSet((char*)"TkDrawing",(char*)"-Layer", (ProMenubuttonAction)ProTestLayerMenu, &model, 0); ProMenubuttonActionSet((char*)"TkDrawing",(char*)"-Dimension", (ProMenubuttonAction)ProTestDimensionMenu, &model, 0); ProMenubuttonActionSet((char*)"TkDrawing",(char*)"-Table", (ProMenubuttonAction)ProTestDrwTable, NULL, 0); ProMenubuttonActionSet((char*)"TkDrawing",(char*)"-Sheets", (ProMenubuttonAction)ProTestDrwSheets, &model, 0); ProMenubuttonActionSet((char*)"TkDrawing",(char*)"-Simp Rep", (ProMenubuttonAction)ProTestDrwSimpRep, NULL, 0); ProMenubuttonActionSet((char*)"TkDrawing",(char*)"-Detail", (ProMenubuttonAction)ProTestDetail, &model, 0); ProMenubuttonActionSet((char*)"TkDrawing",(char*)"-View", (ProMenubuttonAction)ProTestDrawingView, &model, 0); ProMenubuttonActionSet((char*)"TkDrawing",(char*)"-Info", (ProMenubuttonAction)ProTestDrawingInfo,&model, 0); ProMenubuttonActionSet((char*)"TkDrawing",(char*)"-Drawing Merge", (ProMenubuttonAction)ProTestDrawingMerge,&model, 0); ProMenubuttonActionSet((char*)"TkDrawing",(char*)"TkDrawing", (ProMenubuttonAction)ProMenuDelete, NULL, 0); ProMenubuttonActionSet((char*)"TkDrawing",(char*)"-Done/Return", (ProMenubuttonAction)ProMenuDelete, NULL, 0); ProMenuCreate(PROMENUTYPE_MAIN, (char*)"TkDrawing", NULL); ProMenuProcess((char*)"", &action); ProMenuPop(); return (0); } /*====================================================================*\ FUNCTION : ProTestDetail() PURPOSE : Define and activate menu of Toolkit Test commands drawing \*====================================================================*/ int ProTestDetail (void** app_data, int int_dummy) { ProDrawing drawing = (ProDrawing)*app_data; int menu_id; ProError err; int ProTestEntity(); int ProTestDtlNoteMenu(); int ProTestSymInst(); int ProTestDtlGroupMenu(); int ProTestSymDefMenu(ProDrawing drawing); err = ProMenuFileRegister((char*)"-Detail",(char*)"tkdetail.mnu", &menu_id); err = ProMenubuttonActionSet((char*)"-Detail",(char*)"-Detail", (ProMenubuttonAction)ProMenuDelete, NULL, 0); err = ProMenubuttonActionSet((char*)"-Detail",(char*)"Entity", (ProMenubuttonAction)ProTestEntity, &drawing, 0); err = ProMenubuttonActionSet((char*)"-Detail",(char*)"Note", (ProMenubuttonAction)ProTestDtlNoteMenu, &drawing, 0); err = ProMenubuttonActionSet((char*)"-Detail",(char*)"Symdef", (ProMenubuttonAction)ProTestSymDefMenu, drawing, 0); err = ProMenubuttonActionSet((char*)"-Detail",(char*)"Syminst", (ProMenubuttonAction)ProTestSymInst, drawing, 0); err = ProMenubuttonActionSet((char*)"-Detail",(char*)"Group", (ProMenubuttonAction)ProTestDtlGroupMenu, drawing, 0); err = ProMenuCreate(PROMENUTYPE_MAIN, (char*)"-Detail",&menu_id); err = ProMenuProcess((char*)"", &menu_id); return (0); } /*====================================================================* Function : ProTestDrawingMerge Purpose : Merge two drawings \*====================================================================*/ ProError ProTestDrawingMerge() { ProDrawing drawing1,drawing2; wchar_t name [PRO_FAMILY_MDLNAME_SIZE]; ProError status; ProFileName WMSGFIL = {'u','s','e','r','m','s','g','.','t','x','t','\0'}; /*------------------------------------------------------------*\ Get the current model \*------------------------------------------------------------*/ status = ProMdlCurrentGet ((ProMdl*)&drawing1); TEST_CALL_REPORT ("UserDrawingMerge", "ProMdlCurrentGet", status, status != PRO_TK_NO_ERROR); if (status != PRO_TK_NO_ERROR) return(status); /*------------------------------------------------------------*\ Get drawings to merge \*------------------------------------------------------------*/ status = ProMessageDisplay (WMSGFIL, (char*)"USER %0s", "Enter model name which you want to merge"); TEST_CALL_REPORT ("UserDrawingMerge", "ProMessageDisplay", status, status != PRO_TK_NO_ERROR); status = ProMessageStringRead (PRO_FAMILY_MDLNAME_SIZE, (wchar_t*)name); TEST_CALL_REPORT ("ProMessageStringRead", "UserDrawingMerge", status, status != PRO_TK_NO_ERROR); if (status != PRO_TK_NO_ERROR) return(status); status = ProMdlnameRetrieve (name, PRO_MDLFILE_DRAWING , (ProMdl*)&drawing2); TEST_CALL_REPORT ("ProMdlnameRetrieve", "UserDrawingMerge", status, status != PRO_TK_NO_ERROR); if (status != PRO_TK_NO_ERROR) return(status); status = ProDrawingMerge (drawing1, drawing2); TEST_CALL_REPORT ("UserDrawingMerge", "ProDrawingMerge", status, status != PRO_TK_NO_ERROR); /*--------------------------------------------------------------*\ To get handle for second drawing \*--------------------------------------------------------------*/ status = ProMdlnameRetrieve (name,PRO_MDLFILE_DRAWING , (ProMdl*)&drawing2); TEST_CALL_REPORT ("ProMdlnameRetrieve", "UserDrawingMerge", status, status != PRO_TK_NO_ERROR); return (status); }