关于AcDbHatch的关联

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);

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值