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

Rigid Origami Folding

  • Ревью изменений

  • Скачать
  • Почтовые патчи
  • Простое отличие
Слиты nikitronn запросил слияние github/fork/asahidari/rigid_origami_folding в master Июл 23, 2020
  • Обзор 58
  • Коммиты 28
  • Конвейеры 0
  • Изменения 10

Created by: asahidari

Addressed problem description

This PR enable us to simulate wide range of rigid origami fold. Previously, I added #3375 for only one type of folding, but this PR can offer various type of origami folding. Also, this is related to #1381 (closed) 'WISHLIST' of origami fold.

Solution description

I added a script node to SNLite_templates/utils directory to avoid any influence or changes to other modules. Inputs and outputs of this script node are following. I see this link as a reference: https://www.grasshopper3d.com/forum/topics/new-origami-example?groupUrl=kangaroo&groupId=2985220%3AGroup%3A120977&id=2985220%3ATopic%3A973616&page=3

  • [in] obj_in (object)
  • [in] valleys (edge list)
  • [in] valley angle (scalar value)
  • [in] mountains (edge list)
  • [in] mountain angle (scalar value)
  • [in] folding (scalar value, ratio of folding)
  • [in] step (scalar value to use as delta angle in integral calculation )
  • [in] fixed_face (index of a mesh polygon. Face rotation begin at this face)
  • [out] verts (moved vertices)
  • [out] edges (edges)
  • [out] faces (faces)

rigid_origami_folding_screen_shot

Next is an example of the node tree. rigid_origami_folding_node_tree_screen_shot

In this script, these classes are included.

  • ObjectParams (Object wrapper)
  • CreaseLines (Manager of crease lines)
  • InsideVertex (Instance of each vertices inside of the target paper)
  • FoldAngleCalculator (Calculator of each edge's fold angles)
  • FaceRotation (Handler to operate face rotation)

Limitation:

  • Some types of folding may not be done, which need some extra strength. For example, https://www.youtube.com/watch?v=IP7WbV_yLgQ or https://www.foldfactory.com/offering/twist .
  • It may be difficult to find where error occurred. For example, when using wrong edge list or opposite valleys/mountains.
  • It's not always right shape because this calculation include differentiation and integration, but these are semi-pseudo implementation using only NumPy library.

Preflight checklist

Put an x letter in each brackets when you're done this item:

  • Code changes complete.
  • [] Code documentation complete.
  • Documentation for users complete (or not required, if user never sees these changes).
  • [x ] Manual testing done.
  • Unit-tests implemented.
  • Ready for merge.
Ответственный
Назначить
Проверяющие
Запросить ревью
Оценка трудозатрат
Исходная ветка: github/fork/asahidari/rigid_origami_folding