Коротко
- ShrinkWrap принимает в качестве исходных данных поверхности NURBS, SubD, mesh-объекты, облака точек и отдельные точки.
- Целевую длину ребра можно рассчитать автоматически; значение Polygon Optimization задается в диапазоне от 0 до 100%.
- Check сообщает об ошибках в структуре данных выбранного объекта, но не гарантирует обнаружение всех дефектов геометрии.
- В документации Rhino не указаны особые требования ShrinkWrap к оборудованию или сведения о лицензировании.
В этом руководстве описаны этапы создания mesh из сложных или проблемных исходных объектов с помощью команды ShrinkWrap в Rhino 8, а также проверки результата. Команда может создавать новый mesh вокруг поверхностей NURBS, объектов SubD и mesh, облаков точек и отдельных точек. McNeel рекомендует ShrinkWrap для таких задач, как подготовка mesh для 3D-печати, создание цельного mesh из нескольких объектов и построение mesh по фрагментам 3D-сканирования. Шаги ниже основаны на документации Rhino 8, посвященной команде и ее параметрам.
1. Проверьте исходные объекты с помощью Check
Перед преобразованием выберите объект, который нужно проверить, и запустите команду Check по пути Analyze › Diagnostics › Check. Команда сообщает об ошибках в структуре данных объекта и помогает выявить возможные проблемы до начала работы. Если в отчете есть ошибки, сначала стоит проверить структуру объекта, а не менять параметры ShrinkWrap.
Чистый результат Check не доказывает, что модель безупречна во всех отношениях. В документации Rhino отмечается, что некоторые проблемы поверхностей, например самопересечения или взаимные пересечения, бывает сложно обнаружить автоматически. Поэтому воспринимайте Check как общую проверку структуры, а не как тест, подтверждающий полную корректность геометрии.
Чтобы отслеживать ошибки в объектах, которые могут возникнуть при моделировании или импорте файла, можно также использовать команду CheckNewObjects. Если команда сообщает о проблеме, отметьте, во время какой операции она появилась. Если предупреждение возникает при обычном моделировании, отмените операцию и перенесите соответствующие объекты в новый файл; приложите к сообщению о проблеме сведения о команде и активных параметрах.
2. Подберите параметры ShrinkWrap под задачу
Откройте команду через Mesh Tools › Mesh › Shrink Wrap. Сначала определите, сколько деталей нужно сохранить в результате. Параметр ShrinkWrap Target Edge Length задает приблизительную длину ребер mesh; в документации сказано, что по умолчанию значение рассчитывается автоматически. Поэтому не следует ожидать одного фиксированного значения по умолчанию.
| Параметр | Рекомендуемое значение | Эффект |
|---|---|---|
| Target Edge Length | Автоматический расчет или приблизительная длина ребра, выбранная с учетом задачи | Определяет примерный размер ребер в итоговом mesh. |
| Offset | Положительное или отрицательное значение в зависимости от задачи | Положительное значение раздувает mesh наружу и увеличивает количество граней; отрицательное уменьшает mesh и сокращает количество граней. |
| Smoothing iterations | 0, если сглаживание не требуется | Значение 0 отключает сглаживание. При увеличении значения удаляется больше граней и mesh сильнее уменьшается. |
| Polygon Optimization % | От 0 до 100 в зависимости от необходимой степени упрощения | Адаптивно объединяет вершины, сокращая количество граней; более высокое значение удаляет больше граней, а грани на острых ребрах сохраняются. |
При увеличении Polygon Optimization ребра результата могут сильнее отклоняться от целевой длины. Поэтому учитывайте одновременно стремление получить mesh с меньшим количеством граней и требования к детализации. Влияние Offset на целевую длину ребра более ограниченное. Не считайте, что увеличение любого параметра всегда улучшает результат: используйте предварительный просмотр, чтобы проверить mesh.
3. Настройте обработку точек, отверстий и цветов
Параметр Inflate Vertices and Points создает результат на основе вершин исходного mesh или точек облака. Для точек и облаков точек эта опция включена по умолчанию, а для остальных типов объектов — выключена. Для поверхностей NURBS и объектов SubD при этом используются вершины их render mesh. Если нужны дополнительные вершины, может быть полезно настроить render mesh. Раздутые mesh объединяются в более крупные только в том случае, если пересекаются. Отрицательный Offset смещает результат обратно к исходным вершинам или точкам.
Параметр Fill holes in input objects закрывает отверстия в исходных объектах перед созданием mesh. Эта опция может быть полезна во многих случаях, однако она также способна закрыть очень маленькие зазоры, оставленные намеренно, поэтому учитывайте назначение модели. Для исходных точек или облаков точек, а также при включенном параметре Inflate Vertices and Points эта опция не влияет на результат.
Если в результате нужно сохранить цвета, рассмотрите возможность включить Compute vertex colors. Параметр переносит цвета вершин mesh и цвета отображения облаков точек в ShrinkWrap mesh в виде цветов вершин. Чтобы исходные объекты не отображались в предварительном просмотре, можно использовать Hide input objects; для отображения каркаса предусмотрен параметр Draw mesh wires. С помощью Preview можно просмотреть результат в сеансе команды до создания mesh. Параметр Delete input objects удаляет исходные объекты, если результат успешно создан; будьте осторожны, если исходную геометрию нужно сохранить.
4. Проверьте результат и возможные проблемы mesh
После создания mesh еще раз проверьте структуру объекта с помощью Check. Такая проверка не означает, что ShrinkWrap устранил все проблемы геометрии; если mesh предназначен для 3D-печати, отдельно проверьте характерные дефекты mesh. В документации Rhino отмечается, что некоторые принтеры STL/SLA могут работать медленно, выдавать неожиданный результат или испытывать нехватку памяти при обработке mesh с большим количеством длинных и узких граней. Для редактирования таких mesh, предназначенных для печати, можно рассмотреть MeshRepair.
Для отдельных типов дефектов в документации указаны следующие инструменты:
Для поврежденных граней и ребер нулевой длины —
CullDegenerateMeshFaces.Для неманифолдных ребер сначала используйте
CullDegenerateMeshFaces, затемExtractNonManifoldMeshEdges.Для поиска открытых ребер —
ShowEdges; чтобы попробовать закрыть их, используйтеFillMeshHole,FillMeshHolesилиMatchMeshEdge.Для дублирующихся граней —
ExtractDuplicateMeshFaces; для исправления ориентации граней —UnifyMeshNormals.Для отдельных частей mesh —
SplitDisjointMesh.
Не применяйте эти инструменты ко всем результатам без разбора: выбирайте подходящий инструмент в зависимости от проблемы, выявленной при проверке. Проверка структуры с помощью Check и этапы диагностики и исправления mesh не заменяют друг друга.
Влияние на рабочий процесс архитектурной визуализации
ShrinkWrap может быть полезен в рабочих процессах архитектурных бюро, студий интерьера и визуализации, которым нужно объединить фрагменты 3D-сканирования, создать цельный mesh из нескольких исходных объектов или попытаться получить замкнутый mesh из геометрии, которую сложно исправить. Согласно документации, команда также предназначена для 3D-печати и реверс-инжиниринга. Уровень детализации, обработку отверстий и необходимость переноса цветов следует выбирать с учетом назначения модели.
В документации Rhino не приводятся конкретные требования к оборудованию, условия лицензирования или сведения о совместимости с другими программами. Поэтому командам следует отдельно проверять результат ShrinkWrap с учетом этапа, на котором он будет использоваться; особенно важно проверить параметр удаления исходных объектов, а при подготовке к 3D-печати — дефекты mesh.
Частые ошибки
Не учитывать отклонение от целевой длины ребра при увеличении значения Polygon Optimization.
Не принимать во внимание, что параметр
Fill holes in input objectsможет закрыть микрозазоры, оставленные намеренно.Считать чистый отчет Check доказательством отсутствия всех дефектов поверхностей и пересечений.
Предполагать, что исходная геометрия сохранится, если включен параметр
Delete input objects.Использовать mesh для 3D-печати, не проверив открытые ребра и длинные узкие грани.
Источники
Источников: 2Тексты источников не перепечатываются; короткие цитаты отмечены, остальное — наш пересказ и комментарий.
Для архитектурных бюро и студий визуализации в Турции практическая ценность ShrinkWrap заключается в возможности создавать новый mesh из данных сканирования и сложных исходных объектов. Команда может помочь в подготовке mesh для 3D-печати или реверс-инжиниринга, но ее не следует считать универсальным решением, исправляющим все дефекты.
Чтобы работать эффективнее, добавьте в процесс предварительный просмотр и проверку с помощью Check, а также заранее решите, нужно ли сохранять исходные объекты. Поскольку в документации не описаны требования к оборудованию и условия лицензирования, бюро стоит отдельно проверить настройки своего оборудования и статус лицензии.
Частые вопросы
Какие объекты поддерживает ShrinkWrap в Rhino 8?
Команда принимает в качестве исходных данных поверхности NURBS, объекты SubD и mesh, облака точек и отдельные точки.
Для чего нужен Polygon Optimization в Rhino ShrinkWrap?
Параметр в диапазоне от 0 до 100% сокращает количество граней в итоговом mesh. Чем выше значение, тем больше граней удаляется; грани на острых ребрах сохраняются.
Как проверить результат ShrinkWrap перед 3D-печатью?
С помощью Check можно проверить структуру данных объекта на наличие ошибок. В зависимости от дефектов mesh также можно использовать ShowEdges, MeshRepair и соответствующие команды исправления.



