2021-06-06
02:52 AM
- last edited on
2021-09-14
09:35 AM
by
Noemi Balogh
static GS::ErrCode Do_CreateNCS(API_Coord c) {
keyParams keys;
GS::UniString name("NCS Indicator 24");
API_LibPart libPart;
API_Element element;
API_ElementMemo memo;
API_AddParType **addPars = nullptr;
API_Guid nn;
double a, b;
Int32 addParNum;
GS::ErrCode err;
BNZeroMemory(&libPart, sizeof(API_LibPart));
BNZeroMemory(&element, sizeof(API_Element));
BNZeroMemory(&memo, sizeof(API_ElementMemo));
GS::ucscpy(libPart.docu_UName, name.ToUStr());
// "DB8C3EE - 4019 - 46C8 - 91D0 - 7A8DE0A5EC6D" - NCS guid
err = ACAPI_LibPart_Search(&libPart, false);
if (err == NoError) {
ACAPI_WriteReport(" Lib Part index %d", true,libPart.index);
}
else {
ACAPI_WriteReport(" Did Not Find Lib Part", true);
return err;
}
if (libPart.location != nullptr)
delete libPart.location;
element.label.labelClass = APILblClass_Symbol;
element.label.parent = APINULLGuid;
API_Coord xx;
xx.x = 0;
xx.y = 0;
element.label.begC = xx;
element.label.midC.x = xx.x + 1.0;
element.label.midC.y = xx.y + 0.5;
element.label.endC.x = xx.x + 3.0;
element.label.endC.y = xx.y + 0.5;
GS::Guid buf("BDB8C3EE - 4019 - 46C8 - 91D0 - 7A8DE0A5EC6D");// NCS Indicator Guid
element.label.u.head.guid = GSGuid2APIGuid(buf);
element.header.typeID = API_LabelID; //ElementTypeID
element.header.variationID = APIVarId_LabelSymb;
element.label.parent = APINULLGuid;
element.label.u.symbol.libInd= libPart.index; //library part index;
element.header.hasMemo = true;
err = ACAPI_Element_GetDefaults(&element, &memo);
if (err == NOERROR) {
GS::Guid gs(APIGuid2GSGuid(element.label.u.head.guid));
char hold[254] = {};
gs.ConvertToString(hold);
ACAPI_WriteReport("Label GUID %s ", true, hold);
// label guid -- should be the same as NCS Indicator Guid but is reset to 0 by GetDefault?
}
API_StoryInfo storyInfo;
BNZeroMemory(&storyInfo, sizeof(API_StoryInfo));
err = ACAPI_Environment(APIEnv_GetStorySettingsID, &storyInfo, nullptr);
//element.object.libInd = libPart.index; //library part index;
element.header.floorInd = storyInfo.actStory;
element.object.level = 0; //height from the floor
element.object.pos.x = c.x + .25; //End of Arrow
element.object.pos.y = c.y;
element.object.angle = 1; //element angle
BMKillHandle((GSHandle *)&storyInfo.data);
//err = ACAPI_LibPart_GetParams(libPart.index, &a, &b, &addParNum, &addPars);
UInt32 totalParams = BMGetHandleSize((GSConstHandle)addPars) / (UInt32)sizeof(API_AddParType);
// totalParams redundant but retain for future use
//memo.params = addPars;
err = ACAPI_CallUndoableCommand("NCS Test API Function",
[&]() -> GSErrCode {
err = ACAPI_Element_Create(&element, &memo);
return err;
});
if (err)
ACAPI_WriteReport("Create Error %s ", true, ErrID_To_Name(err));
return NOERROR;
}
Thanks for any help -- I hope this isn't a bug??