Тема: getSpline()
для AcDbCurve есть метод getSpline, который создает сплайн наиболее приближенный к кривой. Почему для AcDbCircle,AcDbArc можно создать сплайны, а для AcDbLine, например, нельзя? они же ведь все наследники AcDbCurve.
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → ObjectARX → getSpline()
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
для AcDbCurve есть метод getSpline, который создает сплайн наиболее приближенный к кривой. Почему для AcDbCircle,AcDbArc можно создать сплайны, а для AcDbLine, например, нельзя? они же ведь все наследники AcDbCurve.
Это то, что я тебе и писал. Для каких-то классов наследников AcDbCurve реализация определенных методов может неработать. Баг это или фича - это сложный вопрос.
Проверь кстати код возврата. Не Acad::eNotImplemented ли случайно.
исходя из этого
ads_name ent1; ads_point pt1; AcDbObjectId entId1; AcDbEntity* pEnt1; acedEntSel(_T("\nУкажите объект "), ent1, pt1); acdbGetObjectId(entId1, ent1); acdbOpenAcDbEntity(pEnt1, entId1, AcDb::kForRead); AcDbCurve *pCurv = AcDbCurve::cast(pEnt1); AcDbSpline *pSpline; pEnt1->close(); if (pCurv->getSpline(pSpline)!=Acad::eNotImplemented) acutPrintf(_T("\n код возврата не eNotImplemented ")); else acutPrintf(_T("\nкод возврата eNotImplemented"));
нет. хотя и Acad::eOk тоже не возвращает :(.
в случае с АсDbLine ничего из перечисленного в описании в документации :)). Вариантов 2 либо я че-то направильно накодил, либо фича такая :))
> giena
Я же не спрашиваю что перечислено в документации. Я спрашиваю какой код возврата.
возвращаемое значение 2. если я вас правильно понял...
> giena
2 это Acad::eNotApplicable, т.е. "неприменимо".
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → ObjectARX → getSpline()
Форум работает на PunBB, при поддержке Informer Technologies, Inc