2021-01-17
10:51 PM
- last edited on
2021-09-14
01:34 PM
by
Noemi Balogh
GSErrCode CreateObjectElement (double posX, double posY, API_Guid& placedObjectGuid)
{
GSErrCode err = NoError;
API_Element objElement = {};
API_ElementMemo memo = {};
BNZeroMemory (&objElement, sizeof (API_Element));
BNZeroMemory (&memo, sizeof (API_ElementMemo));
API_LibPart libPart;
BNZeroMemory (&libPart, sizeof (API_LibPart));
libPart.typeID = APILib_ObjectID;
libPart.isTemplate = false;
libPart.isPlaceable = true;
CHCopyC ("{9C72BC5B-9742-4B29-8863-75AAF5F23226}-{4281AA33-3CD6-46A2-AAB0-85F555577C6F}", libPart.ownUnID); // Cube unID
// searching the libray using "libPart.ownUnID"
err = ACAPI_LibPart_Search(&libPart, false);
if (err != NoError) {
return err;
}
objElement.object.libInd=libPart.index; //library index
objElement.object.head.typeID = API_ObjectID;
objElement.object.head.variationID = APIVarId_Object;
err = ACAPI_Element_GetDefaults (&objElement, &memo);
if (err != NoError) {
return err;
}
double aParam, bParam;
Int32 addParNum;
err = ACAPI_LibPart_GetParams (libPart.index, &aParam, &bParam, &addParNum, &memo.params);
if(err != noErr){
return err;
}
objElement.object.libInd=libPart.index;
objElement.object.head.typeID = API_ObjectID;
objElement.object.head.variationID = APIVarId_Object;
objElement.object.pos.x = 0;
objElement.object.pos.y = 0;
objElement.object.level = 0;
err = ACAPI_Element_Create (&objElement, &memo);
if (err != NoError) {
return err; // ------- got error here!! ------
}
placedObjectGuid = objElement.header.guid;
ACAPI_DisposeElemMemoHdls (&memo);
return NoError;
}
The function is called from a ACAPI_CallUndoableCommand block:
ACAPI_CallUndoableCommand ("Create and Object", [&] () -> GSErrCode {
err = STR_OM::CreateObjectElement (columnElement.column.origoPos.x + 1, columnElement.column.origoPos.y + 1, placedObjectGuid);
if (err != NoError)
return err;
...
return NoError;
});
Thanks in advance.Solved! Go to Solution.
2021-01-18 11:22 PM
2021-01-18 11:22 PM