July 5, 2013

Tính chiều dài đường cong Curve trong ObjectARX


Dưới đây là đoạn mã dùng để tính toán chiều dài một đường cong Curve.

Curve ở đây được hiểu theo nghĩa rộng hơn, bao gồm cả đoạn thẳng LINE, các đa tuyến POLYLINE, các cung tròn ARC, đường tròn CIRCLE.


Acad::ErrorStatus GetLength(AcDbObjectId id, double& length)
{
Acad::ErrorStatus es;

AcDbCurve* pEnt;
es = acdbOpenObject(pEnt, id, AcDb::kForRead);
if( es == Acad::eOk && pEnt)
{
double startParam, endParam, startDist, endDist;

es = pEnt->getStartParam(startParam);
if( es!=Acad::eOk ) { pEnt->close(); return es; }

es = pEnt->getEndParam(endParam);
if( es!=Acad::eOk ) { pEnt->close(); return es; }

es = pEnt->getDistAtParam(startParam, startDist);
if( es!=Acad::eOk ) { pEnt->close(); return es; }

es = pEnt->getDistAtParam(endParam, endDist);
if( es!=Acad::eOk ) { pEnt->close(); return es; }

es = pEnt->close();
length = endDist - startDist;
}

return es;
}

No comments:

Post a Comment

Featured Post

Tổng hợp nút giao trong Quy hoạch Giao thông | Quy hoạch LDT | AutoLISP Reviewer

Ngày hôm nay AutoLISP Reviewer xin giới thiệu với các bạn một chức năng mới của Quy hoạch LDT là tổng hợp nút giao THNG Chức năng này giúp t...

Popular Posts