admin@creocustomization.com

Get active model data in Creo Toolkit

Get active model data in Creo Toolkit

Getting data of the active creo model is most basic thing in Creo Customization. Here I considering to get the data of the Creo model which opened in active window.

Create a function named getActiveModel(). The return type ProError can be modified by user as per their requirement.

Declare the Variables required
Declare Variable

ProError mStatus;
ProMdl *activeModel;
ProName wName;
char cName[PRO_NAME_SIZE];
 char *Name;

ProError 

The creo API Enumerated type to return function calls whether it is failed or succeed.

ProError declared to return the function status

ProMdl

The top level object in the Creo parametric.

In Part Mode the ProMdl is Part

In Assembly Mode the ProMdl is Assembly

We will use the ProMdl to handle the Currently active model

ProName

Used to refer the address of the model name

For Any Creo parametic name property, we can use ProName

The Size of the ProName is 32

char* & char are C/C++ datatypes to hold characters

Call the API function ProMdlActiveGet to get the Creo model

Get Active Model

mStatus = ProMdlActiveGet(activeModel);

return the ProError value , if it is PRO_TK_NO_ERROR then the function successfully got the model else it failed.

Validate the Get Active Model

switch (mStatus)
        {
        case PRO_TK_NO_ERROR:
// Get Active model success
break;
        default:
                MessageBox(NULL, “Couldn’t get the Active model”, “Failure”, MB_OK);
                return PRO_TK_GENERAL_ERROR;
                break;
        }

If model got successfully then call the API function to get the model name (model data) to verify the model is active model

Get the Active Model Data (Name)

ProError getActiveModel() {
ProError mStatus;
	ProMdl *activeModel;
	ProName wName;
	char cName[PRO_NAME_SIZE];
	char *Name;
mStatus = ProMdlActiveGet(activeModel);
	switch (mStatus)
	{
	case PRO_TK_NO_ERROR:
mStatus = ProMdlNameGet(activeModel, wName);
		ProWstringToString(cName, wName);
		Name = cName;
		MessageBox(NULL, Name, "Active Model Name", MB_OK);
		return PRO_TK_NO_ERROR;
		break;
	default:
		MessageBox(NULL, "Couldn't get the Active model", "Failure", MB_OK);
		return PRO_TK_GENERAL_ERROR;
		break;
	}
}

Hope it would be useful for beginners in Creo toolkit to access the model data.

Leave a Reply

Contact Us