ObjectARX, AutoCAD. Среда программирования библиотеки C++


         

At this point the entity


pDict = acutBuildList(RTDXF0, "DICTIONARY", 100,

"AcDbDictionary", 0);

acdbEntMakeX(pDict, extDict);

acutRelRb(pDict);

pDict = acutBuildList(102, "{ACAD_XDICTIONARY", 360,

extDict, 102, "}", 0);

for (pTemp = pEnt; pTemp->rbnext->restype != 100; pTemp = pTemp->rbnext)

{ ; }

for (pTemp2 = pDict; pTemp2->rbnext != NULL; pTemp2 = pTemp2->rbnext)

{ ; }

pTemp2->rbnext = pTemp->rbnext;

pTemp->rbnext = pDict;

acdbEntMod(pEnt);

acutRelRb(pEnt);

}

// At this point the entity has an extension dictionary.

// Create a resbuf list of the xrecord’s entity information

// and data.

//

pXrec = acutBuildList(RTDXF0, "XRECORD",

100, "AcDbXrecord",

1, "This is a test Xrecord list", //AcDb::kDxfText

10, testpt, //AcDb::kDxfXCoord

40, 3.14159, //AcDb::kDxfReal

50, 3.14159, //AcDb::kDxfAngle

60, 1, //AcDb::kDxfColor

70, 180, //AcDb::kDxfInt16

0);

// Create the xrecord with no owner set. The xrecord’s

// new entity name will be placed into the xrecname

// argument.

//

acdbEntMakeX (pXrec, xrecname);

acutRelRb (pXrec);

// Set the xrecord’s owner to the extension dictionary

//

acdbDictAdd(extDict, "ASDK_XRECADS", xrecname);

acedRetVoid();

return RTNORM;

}

// Accesses the xrecord associated with the key ASDK_XRECADS in

// the extension dictionary of a user-selected entity. Then

// list out the contents of this xrecord using the printList

// function.

//

int

listXrecord()

{

struct resbuf *pXrec, *pEnt, *pTemp;

ads_point dummy;

ads_name ename, extDict = {0L, 0L};

// Have the user select an entity; then get its data.

//

if (acedEntSel("\nselect entity: ", ename, dummy) != RTNORM) {

acutPrintf("\nNothing selected");

acedRetVoid();

return RTNORM;

}

pEnt = acdbEntGet(ename);

// Get the entity name of the extension dictionary.

//

for (pTemp = pEnt;pTemp->rbnext != NULL;pTemp = pTemp->rbnext) {

if (pTemp->restype == 102) {

if (!strcmp("{ACAD_XDICTIONARY", pTemp->resval.rstring)){

ads_name_set(pTemp->rbnext->resval.rlname, extDict);

break;

}

}

}

if (extDict[0] == 0L) {

acutPrintf("\nNo extension dictionary present.");

return RTNORM;

}

pXrec = acdbDictSearch(extDict, "ASDK_XRECADS", 0);

if(pXrec) {

printList(pXrec);

acutRelRb(pXrec);

}

acedRetVoid();

return RTNORM;

}


Содержание  Назад  Вперед