Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: avc от 13-05-2018, 16:04:55

Название: Параметры цилиндра по ExternalBoundedSurface
Отправлено: avc от 13-05-2018, 16:04:55
Я разбираюсь с размерами поверхностей твердых тел. Сложности возникли с деталями типа порезанных, изсверленных труб. Из Brep я могу извлечь интересующую меня грань Face, а из нее описание поверхности Ge.ExternalBoundedSurface. У поверхности есть хорошие свойства IsTorus и IsCylinder. Но нет никаких параметров этих цилиндров. Есть ли какой-то не сложный способ получить диаметр и длину огрызка цилиндра? Тора? Есть ли стандарт в описании этих типовых форм в системе u-v параметров? Ограничивающие контуры ничего не дают, т.к. там стыки с другими цилиндрами – это крайне сложные 3d-сплайны.  Сам исходный солид может быть и не сохранен в БД, так что получить Db.Surface невозможно.
Название: Re: Параметры цилиндра по ExternalBoundedSurface
Отправлено: Александр Ривилис от 13-05-2018, 16:08:37
Есть ли какой-то не сложный способ получить диаметр и длину огрызка цилиндра? Тора? Есть ли стандарт в описании этих типовых форм в системе u-v параметров?
Не думаю, что эта задача имеет решение в общем случае. А тем более "не сложное".
Название: Re: Параметры цилиндра по ExternalBoundedSurface
Отправлено: Владимир Шу от 14-05-2018, 08:19:34
Есть ли какой-то не сложный способ получить диаметр
Вот тут : http://through-the-interface.typepad.com/through_the_interface/2011/10/identifying-holes-in-an-autocad-solid-using-net.html
посмотри метод GetNormalAndPoint() , его достаточно легко переписать для получения диаметра.
хотя там весь код интересен...
Название: Re: Параметры цилиндра по ExternalBoundedSurface
Отправлено: avc от 14-05-2018, 11:40:08
Ну да, вот же он простой способ! Спасибо за ссылку. Я просто упустил из виду свойство ebSurf.BaseSurface. А в нем как раз водятся Cylinder и т.п. у которых есть все нужные свойства. Там у Kean вся заморочка только в том, чтоб отличить внутреннюю поверхность от наружной.