AcDbObjectIdArray internalIds, outerIds;
AcDbObjectId internalCircleId = CBaseDwg::AddCircle(AcGePoint3d::kOrigin, 100);
internalIds.append(internalCircleId);
AcDbObjectId outerCircleId = CBaseDwg::AddCircle(AcGePoint3d::kOrigin, 200);
outerIds.append(outerCircleId);
AcDbHatch* pHatch2 = new AcDbHatch;
pHatch2->setNormal(CBaseGe::ZAxis());
pHatch2->setElevation(0.0);
pHatch2->setAssociative(true);
pHatch2->setPattern(AcDbHatch::kPreDefined, _T("SOLID"));
pHatch2->setHatchStyle(AcDbHatch::kNormal);
pHatch2->setColorIndex(1);
pHatch2->appendLoop(AcDbHatch::kExternal, outerIds);
pHatch2->appendLoop(AcDbHatch::kNormal, internalIds);
AcDbObjectId hatchId = CBaseDwg::AddEntity(pHatch2);
{
//setAssociative
AcDbObjectPointer<AcDbCircle> pCircle1(internalCircleId, AcDb::kForWrite);
pCircle1->addPersistentReactor(hatchId);
AcDbObjectPointer<AcDbCircle> pCircle2(outerCircleId, AcDb::kForWrite);
pCircle2->addPersistentReactor(hatchId);
}
AcGePoint2d pt1(100, 100), pt2(-100, 100), pt3(-100, -100), pt4(100, -100);
AcGePoint2dArray outPnts;
outPnts.append(pt1);
outPnts.append(pt2);
outPnts.append(pt3);
outPnts.append(pt4);
outPnts.append(pt1);
AcGePoint2d pt11(50, 50), pt22(-50, 50), pt33(-50, -50), pt44(50, -50);
AcGePoint2dArray interPnts;
interPnts.append(pt11);
interPnts.append(pt22);
interPnts.append(pt33);
interPnts.append(pt44);
interPnts.append(pt11);
AcGeDoubleArray bulges;
bulges.append(0.0);
bulges.append(0.0);
bulges.append(0.0);
bulges.append(0.0);
bulges.append(0.0);
AcDbHatch* pHatch1 = new AcDbHatch;
pHatch1->setNormal(CBaseGe::ZAxis());
pHatch1->setElevation(0.0);
pHatch1->setAssociative(true);
pHatch1->setPattern(AcDbHatch::kPreDefined, _T("SOLID"));
pHatch1->setHatchStyle(AcDbHatch::kNormal);
pHatch1->setColorIndex(1);
pHatch1->appendLoop(AcDbHatch::kExternal, outPnts, bulges);
pHatch1->appendLoop(AcDbHatch::kNormal, interPnts, bulges);
CBaseDwg::AddEntity(pHatch1);
关于AcDbHatch的关联
最新推荐文章于 2023-05-09 18:24:45 发布