Ненормальні »нормалі

Типовий діалог із замовником, який приніс «готову до друку» модель.
- Ви говорите, що підготували 3D модель для друку? Але у Вас тут нормалі перевернуті ...
- Нормалі? Які «нормалі»? Ви про що?

Отже, згадуємо.
Площина однозначно визначається трьома крапками. Нормаль - це вектор, перпендикулярний площині. Напрямок вектора визначається за «правилом свердлика» (воно ж «правило гвинта», «правило штопора», «правило правої руки» і т.д. - кому що ближче і зрозуміліше).

Ненормальні »нормалі

Іншими словами, якщо дивитися на трикутник і «обходити» його вершини проти годинникової стрілки, то вектор буде спрямований до нас, а видима поверхня трикутника називається лицьовій. Якщо обходити вершини трикутника за годинниковою стрілкою, то вектор буде спрямований від нас, видима сторона називається оборотної або виворотом.

Файли формату stl описують тверді тіла, поверхня яких є набором трикутників, у яких нормалі повинні бути спрямовані назовні - з тіла моделі

Ненормальні »нормалі

Дуже багато моделей, які приносять дизайнери, непридатні для друку на 3D принтерах через «легковажного» ставлення до нормалям. На жаль, це помилка властиво і початківцям дизайнерам, і дизайнерам, які вже багато років створюють 3D моделі, але не стикалися з 3D печаткою на принтерах, а тому у них не було гострої необхідності замислюватися про нормальний і перевернутих гранях.Далеко не всі пакети 3D моделювання мають зручні засоби відстеження правильності розташування нормалей і перевернуті межі досить важко розгледіти. Ось, наприклад, картинка з SketchUp. Перевернута грань трохи темніше, ніж лицьова (рис. Зліва).

Ненормальні »нормалі

Вам погано видно? Мені теж. Ситуацію можна поліпшити, змінивши колір відображення перевернутих граней в налаштуваннях SketchUp. Тепер краще? (Рис. Праворуч) Помилки, що виникають від перевернутих граней, проявляються при з'єднанні / відніманні об'єктів. На малюнку зліва наведено два об'єкти з різною орієнтацією граней (у сірого куба правильно - нормалі назовні, у жовтого неправильно - всередину). З'єднаємо два куба разом з невеликим перекриттям. Вийшов паралелепіпед (рисунок праворуч), який на екрані виглядає правильним.

Ненормальні »нормалі

Давайте спробуємо його надрукувати на принтері. Як бачимо, об'єкт «розвалився» на дві частини саме через перевернутих граней.

Ненормальні »нормалі

Передбачити всі випадки, коли можуть виникати перевернуті нормалі (перевернуті межі) неможливо. Але найбільш часто джерелами появи перевернутих граней є:
  • Повороти фігур і подальше видавлювання, а також черговість таких операцій
  • Використання різних методів створення об'єктів в одній моделі
  • Ручне «заповнення дірок», що утворюються на поверхні на різних етапах моделювання.
Розглянемо ці випадки докладніше.

Повороти фігур і видавлювання
Створимо модель «умовної» арки. Оскільки арка повинна вийти симетричною відносно вертикальної осі, то логічно намалювати одну половину, а другу одержати дзеркальним відображенням першої. Потім з'єднати обидві частини.

Ненормальні »нормалі

На рис. A намальована двовимірна фігура для лівої частини арки. Далі копіюємо фігуру, дзеркально відображаємо її і приєднуємо до першої з невеликим перекриттям (рис. B). Зверніть увагу: після дзеркального повороту у жовтій фігури нормалі повернуто в інший бік! (Рис. C). Якщо тепер видавити об'єднану фігуру на потрібну товщину, то ліва і права частини матимуть нормалі, спрямовані в різні боки - у лівій частині всередину тіла, а у правій назовні (рис. D).

Ненормальні »нормалі

Зовні модель буде виглядати абсолютно коректно (рис. E), а принтер надрукує її ось так (рис. F).

Ненормальні »нормалі

Ненормальні »нормалі

Інший метод - це створення двовимірних фігур тим чи іншим способом і подальше видавлювання по третій осі або по заданому шляху для отримання тривимірного об'єкту (рис. Праворуч). У цьому випадку напрямок нормалей залежить і від алгоритмів роботи пакета і від послідовності Ваших дій. Наприклад, в нашому пакеті при видавлюванні фігури по заданому шляху нормалі у тіла направлені всередину, а у створеній торцевої грані - назовні.
Якщо в моделі використовуються обидва методи проектування (а так найчастіше і буває), то потрібно дуже уважно стежити за напрямком нормалей у окремих об'єктів до їх об'єднання.

Ручне «заращіваніе» дірок поверхні
У різних ситуаціях на поверхні моделі можуть з'являтися дірки, які потім необхідно «заращівать» вручну. Таке заращіваніе також є частим джерелом помилок і потрібно стежити за тим, щоб напрямки нормалей новостворених граней збігалися з напрямком інших граней моделі. Як правило, якщо редагування здійснюється з лицьового боку поверхні, відповідно до «правилом свердлика» вузли закривається дірки потрібно обходити проти годинникової стрілки.

Існує багато програм, які дозволяють знаходити і виправляти перевернуті межі. Наприклад, netfabb, meshlab, meshmixer і інші. Деякі програми моделювання мають вбудовані засоби перевірки поверхні перед експортом в stl файл. Але для складних поверхонь алгоритми цих програм не завжди можуть знайти і виправити всі перевернуті нормалі. Тому краще стежити за правильним розташуванням нормалей з самого початку при створенні об'єктів. Адже всі знають, що заплутати мотузку можна за кілька секунд, а розплутувати її потім можна годинами.

І якщо Ваш принтер замість прямокутної рамки (рис. Зліва) збирається друкувати ось такі дурниці (рис. Праворуч),

Ненормальні »нормалі

не поспішайте кричати, що комп'ютер «глючить» або що принтер «збожеволів». Подивіться уважно - може у Вашої моделі «ненормальні» нормалі?

Бажаємо успіхів!
А.М.
Коста 3D

Я не працював у Rhino, але засумнівався, що там взагалі немає поняття нормалі для полігональної сітки. Вирішив пошукати і ось знайшов в help для Rhino4:

Flip (Перевернути)
Перевертає напрямок нормалей об'єкт.
кроки:
  • Виділіть об'єкти.
    У командному рядку буде повідомлено, у скількох об'єктів перевернуто.
Примітки
  • Закриті складові поверхні не можуть мати напрямки нормалей поверхні, звернені всередину.
  • Напрямки кривих і поверхонь впливає на результат багатьох команд створення поверхонь і булевих операцій. Якщо в результаті Булевой операції Ви отримуєте несподівані результати, як наприклад, об'єднання замість віднімання, спробуйте перевернути напрямок нормалей однієї або обох поверхонь.


Панель Інструментів Analyze (Аналіз)> Flip Direction (Перевернути Напрямок) (Клацання правою кнопкою миші)
Панель Інструментів Main2 (Основна 2)> Flip Direction (Перевернути Напрямок) (Клацання правою кнопкою миші)
Панель Інструментів Mesh (Полігональна Сітка)> Flip Mesh Normals (Перевернути Нормалі Полігональний Сітки) (Клацання правою кнопкою миші)
Панель Інструментів STL Tools (Інструменти для Стереолітографія)> Flip Mesh Normals (Перевернути Нормалі Полігональний Сітки) (Клацання правою кнопкою миші)


В Меню відсутня

Також є команда Dir показати / приховати нормалі

Крім того є купа коштів для виправлення нормалей

Складові поверхні або полігональні сітки можуть мати незгоди орієнтацію граней.
Використовуйте команду Dir (Напрямок) для відображення нормалей граней. У належним чином орієнтованого твердого тіла нормалі вказуватимуть назовні.
Ця полигональная сітка має незгоди нормалі.

Ненормальні »нормалі

Ненормальні »нормалі


Для зміни нормалей на деяких гранях складовою поверхні
  1. Використовуйте команду Explode (Розірвати) або команду ExtractSrf (Витягти Поверхня) для ізоляції проблемних граней.
  2. Використовуйте команду Dir (Напрямок) на індивідуальних гранях для орієнтування нормалей належним чином.
  3. Використовуйте команду Join (Об'єднати) для відновлення складовою поверхні.
Для зміни нормалей на неориентированной полігональної сітці
  • Використовуйте команду UnifyMeshNormals (Уніфікувати Нормалі Полігональний Сітки).
Виправлена ​​полигональная сітка з узгодженими нормалями, зверненими назовні.

Ненормальні »нормалі

Ненормальні »нормалі