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