|
Ketan Lalcheta wrote:
Hello,
I tried below code snippet:
/***************************************************************************
ProError status = PRO_TK_GENERAL_ERROR;
ProAsmcomppath objCompPath; status = ProSelectionAsmcomppathGet(objSelection,&objCompPath); if (status != PRO_TK_NO_ERROR){return status;}
{
ProModelitem mi = {(ProType)0,0,0};
status = ProSelectionModelitemGet( objSelection, &mi);
if (status != PRO_TK_NO_ERROR){return status;}
if( objCompPath.owner == NULL) {
status = ProAsmcomppathInit( mi.owner, NULL, 0, &objCompPath);
if (status != PRO_TK_NO_ERROR){return status;}
}
}
ProMatrix objMatrixCompAsm;
status = ProAsmcomppathTrfGet(&objCompPath,PRO_B_TRUE,objMatrixCompAsm);
if (status != PRO_TK_NO_ERROR){return status;}
ProView objView; status = ProSelectionViewGet(objSelection,&objView); if (status != PRO_TK_NO_ERROR){return status;}
ProDrawing objDrawing; status = ProSelectionDrawingGet(objSelection,&objDrawing); if (status != PRO_TK_NO_ERROR){return status;}
ProPoint3d objSelPoint; status = ProSelectionPoint3dGet(objSelection,objSelPoint); if (status != PRO_TK_NO_ERROR){return status;} ProVector objSelPointTemp; objSelPointTemp[0] = objSelPoint[0]; objSelPointTemp[1] = objSelPoint[1]; objSelPointTemp[2] = objSelPoint[2];
ProName objViewName; status = ProDrawingViewNameGet(objDrawing,objView,objViewName); if (status != PRO_TK_NO_ERROR){return status;}
ProMatrix objMatrixView;
//wrong //status = ProViewMatrixGet(objDrawing,objView,objMatrixView); //wrong
status = ProDrawingViewTrfGet( objDrawing, objView, PRO_B_TRUE, objMatrixView);
if (status != PRO_TK_NO_ERROR){return status;}
//needed if you have drawing coordinates which are 'paper measurements' so to speak
//ProMatrix objMatrixSheet;
//status = ProDrawingSheetTrfGet(..., objMatrixSheet)
//ProMatrix objMatrixView_Inv; //ProUtilMatrixInvert(objMatrixSheet,objMatrixView_Inv); //if (status != PRO_TK_NO_ERROR){return status;}
ProMatrix objMatrixCompAsm; status = ProAsmcomppathTrfGet(&objCompPath,PRO_B_TRUE,objMatrixCompAsm); if (status != PRO_TK_NO_ERROR){return status;}
ProVector objSelPointAfterAsm;
//from component to assembly status = ProPntTrfEval(objSelPointTemp,objMatrixCompAsm,objSelPointAfterAsm); if (status != PRO_TK_NO_ERROR){return status;} //from assembly to drawing status = ProPntTrfEval(objSelPointAfterAsm,objMatrixView,objLeaderLocationFrmAsm); if (status != PRO_TK_NO_ERROR){return status;}
/***************************************************************************
let me know whether it is correct or not. In addition to that, ProViewMatrixGet API return -1.
THanks and Regards
Ketan
|