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


         

Step 2: Add the block


// Step 2: Add the block table record to block table.

//

pBlockTable->add(blockId, pBlockRecord);

// Step 3: Create a circle entity.

//

AcDbCircle *pCircle = new AcDbCircle;

pCircle->setCenter(basePoint);

pCircle->setRadius(textHeight * 4.0);

pCircle->setColorIndex(3);

// Append the circle entity to the block record.

//

pBlockRecord->appendAcDbEntity(entityId, pCircle);

pCircle->close();

// Step 4: Create an attribute definition entity.

//

AcDbAttributeDefinition *pAttdef

= new AcDbAttributeDefinition;

// Set the attribute definition values.

//

pAttdef->setPosition(basePoint);

pAttdef->setHeight(textHeight);

pAttdef->setRotation(textAngle);

pAttdef->setHorizontalMode(AcDb::kTextLeft);

pAttdef->setVerticalMode(AcDb::kTextBase);

pAttdef->setPrompt("Prompt");

pAttdef->setTextString("DEFAULT");

pAttdef->setTag("Tag");

pAttdef->setInvisible(Adesk::kFalse);

pAttdef->setVerifiable(Adesk::kFalse);

pAttdef->setPreset(Adesk::kFalse);

pAttdef->setConstant(Adesk::kFalse);

pAttdef->setFieldLength(25);

// Append the attribute definition to the block.

//

pBlockRecord->appendAcDbEntity(entityId, pAttdef);

// The second attribute definition is a little easier

// because we are cloning the first one.

//

AcDbAttributeDefinition *pAttdef2

= AcDbAttributeDefinition::cast(pAttdef->clone());

// Set the values that are specific to the

// second attribute definition.

//

AcGePoint3d tempPt(basePoint);

tempPt.y -= pAttdef2->height();

pAttdef2->setPosition(tempPt);

pAttdef2->setColorIndex(1); // Red

pAttdef2->setConstant(Adesk::kTrue);

// Append the second attribute definition to the block.

//

pBlockRecord->appendAcDbEntity(entityId, pAttdef2);

pAttdef->close();

pAttdef2->close();

pBlockRecord->close();

pBlockTable->close();

return;

}


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