2016-11-29
09:56 AM
- last edited on
2023-07-12
09:03 PM
by
Doreena Deng
2016-12-02 03:50 AM
void CreateLevelDimension(API_Element& i_elemParent)
{
API_Element elem;
GSErrCode err = NoError;
BNZeroMemory(&elem, sizeof(elem));
elem.header.typeID = API_LevelDimensionID;
err = ACAPI_Element_GetDefaults(&elem, nullptr);
if (err != NoError)
{
DBGPrintlnf("["__FUNC__"] ERROR %s - ACAPI_Element_GetDefaults", ErrId2Name(err));
return;
}
// get the center of the element
tdv_Coord coordList = GetMemoCoords(i_elemParent, false);
API_Coord centerPoly = GetPolyCentroid(coordList, false);
elem.levelDimension.loc = centerPoly;
// elem.levelDimension.dimForm = 4;
// static type
elem.levelDimension.staticLevel = true;
// attached to parent
// elem.levelDimension.staticLevel = false;
// elem.levelDimension.parentGuid = i_elemParent.header.guid;
// elem.levelDimension.parentType = i_elemParent.header.typeID;
ACAPI_CallUndoableCommand("Create Level Dimension", [&] () -> GSErrCode {
err = ACAPI_Element_Create(&elem, nullptr);
return NoError; });
if (err != NoError)
{
DBGPrintlnf("["__FUNC__"] ERROR %s - ACAPI_Element_Create", ErrId2Name(err));
return;
}
// Get the newly created element then change the text position
err = ACAPI_Element_Get(&elem);
if (err != NoError)
{
DBGPrintlnf("["__FUNC__"] ERROR %s - ACAPI_Element_Get()", ErrId2Name(err));
return;
}
// elem.levelDimension.dimForm = 14;
// Adjust the text
elem.levelDimension.note1.pos.x += 0.125;
elem.levelDimension.note1.pos.y += -0.375;
API_Element elemMask;
ACAPI_ELEMENT_MASK_CLEAR(elemMask);
ACAPI_ELEMENT_MASK_SET(elemMask, API_LevelDimensionType, note1.pos);
// ACAPI_ELEMENT_MASK_SET(elemMask, API_LevelDimensionType, dimForm);
ACAPI_CallUndoableCommand("Change Element", [&] () -> GSErrCode {
err = ACAPI_Element_Change(&elem, &elemMask, nullptr, NULL, true);
return NoError; });
if (err != NoError)
{
DBGPrintlnf("[Error] %s "__FUNC__" - ACAPI_Element_Change()", ErrId2Name(err));
}
}
2017-02-09 02:00 PM
2017-07-04 06:45 AM
2017-07-04 02:15 PM
Erenford wrote:Hi Erenford,
Hello again, I found some issues about Dimensions this time and it looks like its related to this so I'll just post it here.
This is when creating Elevation Dimensions (dimension.dimAppear = APIApp_Elev😞
1. OnACAPI_Element_Create, dimension.ed_dimFormaccepts values 1-5 but not 0, 6, 7 (see left image for reference). If those values are passed it reverts back to symbol 1.
2. Whendimension.ed_dimForm = 5, I've tried looking up which of API_DimensionTypevariables corresponds to the settings dialog (see right image for ref) and I can't figure out which one affects the "Level Dimension Marker Style" (green circled on the image). If I pick the 1st one then displayed the struct's values, it's the same values when I then pick the 2nd or 3rd style.
On creation though it doesn't revert to a default value, it uses whatever the chosen style on the default settings dialog, even ifed_dimForm = 5is not currently the default.
Any help on this?
Thanks for the help.
2017-07-06 07:39 AM