- UID
- 281509
- 积分
- 1054
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2005-6-21
- 最后登录
- 1970-1-1
|
发表于 2007-3-22 19:53:51
|
显示全部楼层
//画填充面料
void WJRedCpEntity::DrawMianLiao(AcGiWorldDraw* mode,int ModNo)
{
int i,j,k;
AcGeTol tol;
AcGePoint3d pt,pt1,pt2;
AcGePoint3dArray pts;
AcDbHatch* pHatch;
AcGeLineSeg3d* pGeLine;
AcGeNurbCurve3d* pGeSpline;
AcGeIntArray edgeTypes;
AcGeVoidPointerArray edgePtrs;
pHatch=new AcDbHatch;
pHatch->setNormal(AcGeVector3d(0,0,1));
pHatch->setElevation(0);
pHatch->setAssociative(Adesk::kFalse);
pHatch->setPattern(AcDbHatch::kPreDefined,m_MianLiaoName);
pHatch->setHatchStyle(AcDbHatch::kNormal);
pHatch->setColorIndex(int(m_MianLiaoColour));
pHatch->setPatternAngle(0);
k=m_LunKuoPtNum*ModNo;
for(i=0;i<m_LunKuoLineNum;i++)
{
if(m_LunKuoLnPtNums==2)
{
pGeLine=new AcGeLineSeg3d;//直线
pt1=mLunKuoModPts[k];
pt2=mLunKuoModPts[(k+1==m_LunKuoPtNum*(ModNo+1))?m_LunKuoPtNum*ModNo:k+1];
pGeLine->set(pt1,pt2);
edgeTypes.append(AcDbHatch::kLine);
edgePtrs.append((void*)pGeLine);
}
else if(m_LunKuoLnPtNums>2)
{
pGeSpline=new AcGeNurbCurve3d;//曲线
pts=NULL;
for(j=k;j<k+m_LunKuoLnPtNums;j++)
{
pt=mLunKuoModPts[(j==m_LunKuoPtNum*(ModNo+1))?m_LunKuoPtNum*ModNo:j];
pts.append(pt);
}
tol.setEqualPoint(0);
pGeSpline->setFitData(3,pts,tol);
edgeTypes.append(AcDbHatch::kSpline);
edgePtrs.append((void*)pGeSpline);
}
k+=m_LunKuoLnPtNums-1;
}
pHatch->appendLoop(AcDbHatch::kExternal,edgePtrs,edgeTypes);
pHatch->evaluateHatch();
pHatch->worldDraw(mode);
delete pHatch;
} |
|