- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi,
I need help. I do not know how to use this function - geometry().ellipticalArc.
Thank you.
Adesk::Boolean MyCurve3d::subWorldDraw(AcGiWorldDraw* mode)
{
assertReadEnabled () ;
//------ Returning Adesk::kFalse here will force viewportDraw() call
AcGeLineSeg3d *pGeLine=NULL;
AcGeCircArc3d *pGeArc=NULL;
AcGeEntity3d *pObj=NULL;
AcGePoint3d points[2];
AcGeEllipArc3d* pGeEllipArc=NULL;
mode->subEntityTraits().setColor(256);
int ij=1;
for (int i=0; i < geCurves.length(); i++) {
pObj=(AcGeEntity3d*)geCurves.at(i);
if (pObj->isKindOf(AcGe::kLineSeg3d)) {
pGeLine=(AcGeLineSeg3d*)geCurves.at(i);
points[0]=pGeLine->startPoint();
points[1]=pGeLine->endPoint();
mode->subEntityTraits().setSelectionMarker(ij++);
mode->geometry().worldLine(points);
} else
if (pObj->isKindOf(AcGe::kCircArc3d)) {
pGeArc=(AcGeCircArc3d*)geCurves.at(i);
AcGePoint3d startpt(pGeArc->startPoint());
AcGePoint3d endpt(pGeArc->endPoint());
AcGeVector3d startvec = startpt - pGeArc->center();
AcGeVector3d endvec = endpt - pGeArc->center();
double angle = pGeArc->endAng() - pGeArc->startAng();
mode->subEntityTraits().setSelectionMarker(ij++);
mode->geometry().circularArc(pGeArc->center(),pGeArc->radius(),pGeArc->normal(),startvec, angle, kAcGiArcSimple);
} else
if (pObj->isKindOf(AcGe::kEllipArc3d)) {
double uhelStart=0, uhelEnd=0;
mode->subEntityTraits().setSelectionMarker(ij++);
pGeEllipArc=(AcGeEllipArc3d*)geCurves.at(i);
AcGePoint3d cen(pGeEllipArc->center());
AcGePoint3d startpt(pGeEllipArc->startPoint());
AcGePoint3d endpt(pGeEllipArc->endPoint());
angStart=pGeEllipArc->startAng();
angEnd=pGeEllipArc->endAng();
mode->geometry().ellipticalArc(cen, pGeEllipArc->normal(),pGeEllipArc->majorRadius(),pGeEllipArc->minorRadius(),
angStart, angEnd, 0, kAcGiArcSimple);
}
}
return (Adesk::kTrue) ;
}
Solved! Go to Solution.