Добрый день !
Мне хотелось бы поделится элегантным способом создания острых углов в NURBS кривых буквально в два клика, найденного в файле Beizer.3dm FTP архива McNeel. Тема не нова, но возможно кому-то пригодится `
Перед созданием NURBS кривой включается Persistent Snap to EndPoint, создаётся криволинейный участок необходимой формы, затем после создания последней из его точек щёлкаем правой кнопкой мыши для завершения текущей команды (1 Click) и повторным RightClick в области последней точки инициируем новую кривую, начальная точка которой благодаря Snap to EndPoint совпадает с конечной точкой предыдущей кривой (2 Click).
В итоге мы получаем острый угол между двумя сегментами NURBS кривых, которые после Join образуют кривую, состоящую из нескольких сегментов, угол между которыми можно дополнительно настроить при помощи EndBulge.
IMHO таким образом не притрагиваясь к другим кнопкам можно только мышой создавать достаточно сложные кривые, а использовав HandleBar editor (команда HBar) на созданном начерно контуре можно при помощи привычных тангентов настроить кривизну сплайнов почти как при работе с традиционными Beizer сплайнами.
Минусом является тот факт, что создаваемые кривые на самом деле состоят из нескольких сегментов и соответственно преобразуются в PolySurface. Однако традиционный способ концентрации числа вершин, равных порядку кривой (обычно 3) в точке излома так же даёт Polysurface так как Rhino предпочитает разбивать резкие изменения кривизны в отличии от того же MAX`а. Если необходимо обеспечить непрерывность создаваемой кривой то можно просто, как говорится в документации к Rhino - расположить на равном расстояни три точки образовав прямой угол, что приведёт к созданию планого перехода, подобного Fillet, который может быть очень маленького размера и восприниматься как прямой угол. Но на мой взгляд первый способ как-то эргономичнее `) К тому же просто удалив Join вершины можно вновь соиеденить сегменты в единую кривую, подобно тому как это делает MatchCrv, так что добавив две дополнительные вершины по сторонам от удаляемой Join можно опять же получить подобие Fillet, ценой некоторых искажений исходной формы.
Файл Beizer.3dm доступен в разделе `Rhino` ftp McNeel - папка Misc.
С Уважением DP.
Мне хотелось бы поделится элегантным способом создания острых углов в NURBS кривых буквально в два клика, найденного в файле Beizer.3dm FTP архива McNeel. Тема не нова, но возможно кому-то пригодится `
Перед созданием NURBS кривой включается Persistent Snap to EndPoint, создаётся криволинейный участок необходимой формы, затем после создания последней из его точек щёлкаем правой кнопкой мыши для завершения текущей команды (1 Click) и повторным RightClick в области последней точки инициируем новую кривую, начальная точка которой благодаря Snap to EndPoint совпадает с конечной точкой предыдущей кривой (2 Click).
В итоге мы получаем острый угол между двумя сегментами NURBS кривых, которые после Join образуют кривую, состоящую из нескольких сегментов, угол между которыми можно дополнительно настроить при помощи EndBulge.
IMHO таким образом не притрагиваясь к другим кнопкам можно только мышой создавать достаточно сложные кривые, а использовав HandleBar editor (команда HBar) на созданном начерно контуре можно при помощи привычных тангентов настроить кривизну сплайнов почти как при работе с традиционными Beizer сплайнами.
Минусом является тот факт, что создаваемые кривые на самом деле состоят из нескольких сегментов и соответственно преобразуются в PolySurface. Однако традиционный способ концентрации числа вершин, равных порядку кривой (обычно 3) в точке излома так же даёт Polysurface так как Rhino предпочитает разбивать резкие изменения кривизны в отличии от того же MAX`а. Если необходимо обеспечить непрерывность создаваемой кривой то можно просто, как говорится в документации к Rhino - расположить на равном расстояни три точки образовав прямой угол, что приведёт к созданию планого перехода, подобного Fillet, который может быть очень маленького размера и восприниматься как прямой угол. Но на мой взгляд первый способ как-то эргономичнее `) К тому же просто удалив Join вершины можно вновь соиеденить сегменты в единую кривую, подобно тому как это делает MatchCrv, так что добавив две дополнительные вершины по сторонам от удаляемой Join можно опять же получить подобие Fillet, ценой некоторых искажений исходной формы.
Файл Beizer.3dm доступен в разделе `Rhino` ftp McNeel - папка Misc.
С Уважением DP.