• S sverchok
  • Информация о проекте
    • Информация о проекте
    • Активность
    • Метки
    • Участники
  • Репозиторий
    • Репозиторий
    • Файлы
    • Коммиты
    • Ветки
    • Теги
    • Участники
    • Диаграмма
    • Сравнение
  • Задачи 148
    • Задачи 148
    • Список
    • Доски
    • Спринты
  • Запросы на слияние 21
    • Запросы на слияние 21
  • CI/CD
    • CI/CD
    • Конвейеры
    • Задания
    • Расписания
  • Развертывания
    • Развертывания
    • Окружения
    • Релизы
  • Пакеты и реестры
    • Пакеты и реестры
    • Реестр пакетов
    • Реестр контейнеров
  • Мониторинг
    • Мониторинг
    • Инциденты
  • Аналитика
    • Аналитика
    • Поток ценности
    • CI/CD
    • Репозиторий
  • Wiki
    • Wiki
  • Сниппеты
    • Сниппеты
  • Активность
  • Диаграмма
  • Создать новую задачу
  • Задания
  • Коммиты
  • Доски с задачами
Свернуть панель
  • nikitronn
  • sverchok
  • Задачи
  • #3884
Закр.
Открыто
Задача созд. Фев 08, 2021 пользователемnikitronn@nikitronnВладелец

NURBS Birail does not support cyclic curves as profile inputs. Also does not support Rotation Algorithms as in NURBS sweep

Created by: andremi

Problem statement

Thank you for producing such an amazing piece of software. I am newbie to the blender/sverchok, and looking for a node (or combination of nodes) which would do the “Single Profile Birail Loft where planes of the lofted intermediate profiles stay parallel to the plane of the input profile.” What I am trying to do is exactly this: https://blenderartists.org/t/extrude-on-2-rails-possibly-via-script/685892/22 but with different profile and different rails (see the blender python script and try running it). But rather then having hard coded values of the profile and curve generation in python script I would have these as input into to the sverchok node. Yet when trying to use Nurbs Birail, I am running into two problems:

  1. The profile cannot be cyclic ( you have this in nurbs.py: if pr_length < 1e-6: raise Exception("One of profiles is closed". This looks like it’s by design: rails are auto-placed at the beginning and end of the profile. So when profile is closed, the code does not work. Would be great to have a choice of rails placement on the profile).

  2. The profiles of generated intermediate profiles used for the sweep (“All Profiles” output of the node) are not parallel to the original profile. It looks like with monorail Nurbs sweep node it is possible to make the profiles parallel to each other by selecting Algorithm:None. Would be great to see this functionality in NURBS birail.

I have also tried splitting my closed profile into two complimentary open profiles then doing two birail sweeps across the same rails, then later joining the results. Yet this results in a poor geometry (might be Ok for animation application, but I need precision) at the seam where the profile was split into two. It might be possible to get better geometry by taking my rails, revolving them 90 degrees along long the profile (to the point where the edge is less sharp) and feeding these new revolved-curves into the NURBS sweep (along with profiles which are now split differently). Yet I am not sure it will not end up with the bumps on the wing.

Also given that I have only 1 (or 2, the second for the end) profiles, and 2 rails, I tried using profiles as rails (because rails can be cyclic as input to NURBS birail node) and rails as profiles. Just to see what this does. Yet there I cannot assure that the generated profiles are parallel.

Or maybe I there is a better/simpler way of doing this?

P.S. A nice to have feature would be to have another input into the NURBS birail node: which would take a list of pairs (intermediate_profile_index, algorithm_id), indicating the algorithm to use for rotation calculation. So for example if there are 10 “v sections” used for sweep, then the list [[0,0],[8,4]] would indicate that v-sections 0-7 would use the “NONE” rotation algorithm, while v-sections 8 and 9 would use “HOUSEHOLDER” rotation algorithm. This would be to add “wingtips” to the very end of the generated object. Once again, this is “nice to have” feature and I can work around this sending the last V-section of the first NURBS sweep node into the profile input of the second NURBS node. Similarly, for profiles, I think I can send only the vertices of the last part of the rails into the second NURBS sweep node.

Steps to reproduce

  1. Insert Nurbs circle, Bezier Curve and Nurbs Curve into Blender
  2. Insert Nurbs In into sverchok, GetSelection Nurbs Curve
  3. Insert Nurbs In into sverchok, GetSelection Bezier Curve
  4. Insert Nurbs In into sverchok, GetSelection Nurbs circle
  5. Insert NURBs BiRail Into sverchok
  6. connect 2->5 into path1 input
  7. connect 3->5 into path2 input
  8. connect 3->5 into profile input

Expected result

No error

Actual result

Result: "One of Profiles is closed" error

Sverchok version

0.6.0.0

Ответственный
Назначить
Оценка трудозатрат