Тема: Вторая точка дуги
Подскажите пожалуйста функцию, которая возвращает вторую точку дуги (т.е. вторую точку, которая требуется для построения дуги).
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → ObjectARX → Вторая точка дуги
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Подскажите пожалуйста функцию, которая возвращает вторую точку дуги (т.е. вторую точку, которая требуется для построения дуги).
Имеется в виду вторая точка при построении дуги по трем точкам? Уточни вопрос.
Да. Конкретно задача заключается в следующем в момент преребора выбранных примитивов при обработке дуг
if (AcDbArc::cast(pEnt.object())){
//обработка дуги
AcGePoint3d pStart,pEnd,pMid;
pArc->getStartPoint(pStart);//получаем
pArc->getEndPoint(pEnd);
pMid = ???
}
необходимо получить координаты стартовой, конечной и второй точки (той которая используется при построении дуги по трем точкам).
> Алексей
Координату именно той точки, которая использовалась при создании дуги ты не получишь (информация о ней нигде не сохраняется), а вот среднюю точку дуги, которую можно использовать в качестве второй точки для построения дуги, получить не сложно:
static void ArcMid(void) { ads_name en; ads_point p; if (acedEntSel(_T("\nВыберите дугу: "),en,p) == RTNORM) { AcDbObjectId eId; acdbGetObjectId(eId,en); AcDbObjectPointer<AcDbArc> pArc(eId,AcDb::kForRead); if (pArc.openStatus() == Acad::eOk) { double parmStart=0, parmEnd=0; AcGePoint3d pStart, pEnd, pMid; if (pArc->getStartParam(parmStart) == Acad::eOk && pArc->getEndParam(parmEnd) == Acad::eOk) { double parmMid = 0.5*(parmStart+parmEnd); pArc->getPointAtParam(parmStart,pStart); pArc->getPointAtParam(parmEnd,pEnd); pArc->getPointAtParam(parmMid,pMid); acutPrintf(_T("\nStart=(%g %g %g) End = (%g %g %g) Mid=(%g %g %g)"), pStart.x,pStart.y,pStart.z, pEnd.x,pEnd.y,pEnd.z, pMid.x,pMid.y,pMid.z ); } } } }
Все координаты возвращаются в МСК (WCS).
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → ObjectARX → Вторая точка дуги
Форум работает на PunBB, при поддержке Informer Technologies, Inc