Мартынюк (6_ Облака точек)

Посмотреть архив целиком

13



Мартынюк В.А.


Пособие 6. Импорт и обработка облаков точек

(Digitized Shape Editor)


Оглавление

Введение 1

Команды ввода-вывода 2

Import 3

Export 4

Группа полезных вспомогательных команд 4

Information 4

Cloud Display 4

Distance Analysis 5

Группа команд, обеспечивающих построений линий поверх облака точек 5

Create Scans on Cloud 6

Curve From Scans 6

Project Curves 8

Planar Sections 9

Create Free Edges 10

Построение 3D Curve по предварительно построенным Scans 11

Группа команд общей обработки облака точек 11

Split a Mesh or a Cloud 12


Введение

  • Если вы обратили внимание, то первая часть нашего курса была посвящена построению геометрических моделей проектируемых объектов «на пустом месте». Мы создавали наши проекты, начиная проектирование буквально с пустого экрана.

Вторая часть нашего курса будет посвящена работе уже с некими прототипами будущих геометрических моделей. То есть мы оказываемся в ситуации, когда в природе уже существует некий образец будущего объекта, с модели которого мы и начнем дальнейшее проектирование или его доработку.

  • Этот существующий образец можно сфотографировать (методы фотограмметрии) или «ощупать» на измерительных машинах. В любом случае после некоторой обработки мы можем получить в памяти компьютера модель прототипа в виде набора (облака) точек, для каждой из которых известны все три ее координаты. Другой способ представления информации о прототипе - представление в виде полигональной модели (фасетной сетки). В этом случае все точки облака соединены между собой прямыми отрезками так, что образуют многочисленные плоские треугольники (фасеты). В совокупности эти фасеты представляют собой замкнутую или разомкнутую оболочку нашего объекта.

Представление оболочки объекта в виде набора полигонов (фасетов) удобнее, так как позволяет по трем известным вершинам отдельного фасета определить уравнение его плоскости и вектор нормали к ней. Эта информация о каждом фасете позволяет рассчитать закраску каждого его пикселя с учетом существующих источников освещения и, таким образом, представить оболочку объекта в виде закрашенной поверхности.

  • Существует несколько стандартных форматов файлов, в которых после некоторой обработки сохраняется информация об оболочке объекта в виде облака точек или набора фасет: Ascii Free, Atos, Cgo, Gom-3d, Hyscan, Iges, Kreon, STL.

Последний формат используется при формировании файлов для быстрого прототипирования методом стереолитографии. В наших лабораторных работах (в системе CATIA) мы используем именно формат STL.

  • Нужно представлять себе объем облака точек. Сфотографированный или «ощупанный» объект может содержать сотни тысяч точек. Поэтому готовьтесь к тому, что вам придется работать с объемными STL файлами.

  • Просматривать STL файл можно по-разному. В системе есть специальная команда Cloud Display, с помощью которой вы можете увидеть только точки, только ребра фасет, или уже всю закрашенную поверхность объекта.


  • В данном пособии рассматриваются команды режима Digitized Shape Editor. Команды этого режима в основном предназначены для ввода-вывода облаков точек и их первичной обработки, в которую входят различные перемещения, обрезания облаков точек, построения на них различных вспомогательных линий.

  • Нужно сразу сказать, что, получив исходное облако точек, в дальнейшем вы можете:

  • Превратить его в какую-либо аналитически описываемую поверхность или группу поверхностей. Например, поверхности Безье или NURBS поверхности. А потом обрабатывать эти поверхности теми способами, о которых мы говорили в первой части нашего курса.

  • Обработать облако различными инструментами (раздел Shape Sculptor), но все равно оставить его облаком.

Так вот, можно сказать, что весь раздел Digitized Shape Editor – это подготовительный этап превращения облака точек в аналитически описываемую поверхность.

Пиктограмма Workbench этого режима работы представлена на рис. 1.


Команды ввода-вывода

Панель этих команд представлена на рис. 2.



рис.1 рис.2 рис.3


Import

  • Диалоговое окно команды представлено на рис. 3.

  • В поле Select File вы указываете имя собственно импортируемого файла. В поле Format указываете формат импортируемого файла (в нашем случае всегда STL). В поле Statistics можно сразу много чего узнать про вводимое облако точек: общее количество точек, координаты крайних точек его расположения в пространстве и др. Информация в этом поле появляется после нажатия кнопки Apply.

  • В расширенном диалоговом окне, в поле Facets обратите внимание на переключатель Create Facets. Дело в том, что в STL файле присутствует вся необходимая информация для формирования фасет и их закраски. Но если вы выключите эту кнопочку, то в импортируемом файле информация о фасетах будет потеряна, и вы не сможете просмотреть импортируемый файл в виде закрашенной поверхности. Правда, в этом режиме есть специальная команда Mesh Creation, с помощью которой по заданному облаку точек можно повторно восстановить его фасетную сетку, но это уже будет дополнительная работа.

Если же вы импортируете всю информацию STL файла, то в дальнейшем вы сможете выбрать любую форму его просмотра (только точки, или только фасеты без закраски, или закрашенную поверхность). Поэтому рекомендую всегда держать включенной указанную кнопку Create Facets.

Поле System предназначено для указания операционной системы, в которой был сформирован импортируемый файл. Обычно содержит включенной кнопку Same. Поле Free Edges позволяет сразу сформировать линию границы облака точек. Но эту границу впоследствии можно сформировать и другими средствами, поэтому данную кнопку включают не часто.



Export

  • Нужно четко представлять себе, что с помощью данной команды вы можете только сохранить уже сформированное облако точек. А собственно формирование облака точек – это отдельная задача.

  • Если на экране в области проектирования у вас находится, например, и поверхность Безье и каким-либо образом сформированное облако точек, то с помощью данной команды вы можете выборочно указать только облако точек и сохранить его в определенном формате. Перечень возможных форматов сохранения облака точек: CGO, ASCII, STL.

  • Команда проста в исполнении. У нее даже нет диалогового окна. Нужно просто вызвать команду и указать в браузере или в поле проектирования облако точек.

  • Имейте в виду, что в CATIA есть две возможности экспортировать некую поверхность в формате STL:

    • Указанным выше способом. В результате вы получите так называемый упакованный STL-файл. Это файл гораздо компактнее, но его нельзя просмотреть с помощью текстового редактора.

    • Вы можете сохранить любую поверхность с помощью обычной команды File/Save as…но в формате STL. Там есть такая возможность. В этом случае вы получите текстовый STL-файл. Он гораздо объемнее (на порядок), но его можно просмотреть с помощью текстового редактора. Например, с помощью WordPad



Группа полезных вспомогательных команд

Information

  • Полезная команда, с помощью которой в специальном диагностическом окне можно узнать нужную информацию об облаке точек. Пиктограмма команды находится в панели команд Cloud Analysis (рис. 4.).

  • Команда работает только с облаками точек или полигональными сетками. Ее бесполезно применять по отношению к обычным графическим примитивам.

  • Предварительно нужно пометить фасетную сетку или облако точек и вызвать команду. В диалоговом окне система предложит всю информацию по числу точек, фасет, границам и пр.

Cloud Display

  • Команда работает только с облаками точек или фасетными сетками.

  • Пиктограмма этой команды похожа на ранее встречавшуюся пиктограмму визуализации объекта с материалом (Shading with Material) – (рис 5). С помощью этой команды вы можете задать вид исследуемого облака точек на экране.

  • В результате выполнения команды в браузере никакого нового элемента не появляется.

  • Нужно вызвать команду и выделить соответствующую сетку или облако точек. Появляется диалоговое окно (рис.6).




рис.4 рис.5 рис.6 рис.7


В поле Mesh присутствуют такие кнопки.

  • Triangles – голубым цветом показывает построенные треугольники сети.

  • Vertex – зеленым цветом показываются точки вершин сетки (фактически, точки облака).

  • Free Edges – желтым цветом показываются нормальные ребра сетки.

  • Non-Manifold Edges – белым цветом показываются ребра Non-Manifold. Non-manifold edgesребра сетки (Mesh), которые используются более чем двумя треугольниками. Это некоторая неправильность построения фасетной сети, от которой еще придется избавляться.

Справа, в этом же поле есть кнопки:

  • Flat

  • Smooth

Кнопка Smooth предоставляет более гладкое изображение закрашенной поверхности.

  • В правом верхнем углу диалогового окна в поле Scan or Grid есть кнопки, которые определяют видимость Scans или Grid (об этих терминах мы еще поговорим ниже). Дело в том. что в виде облака точек в системе могут быть представлены и линии. Например, при определенных условиях проекция кривой на облако точек может оказать также набором точек. Для просмотра таких линий в виде точек и предусмотрены кнопки данного поля.


Distance Analysis

  • Эта команда с успехом применяется и для аналитически описываемых кривых и поверхностей, и для облаков точек. Ранее мы уже упоминали эту команду в разделе WureFrame&Surface.

  • Диалоговое окно команды представлено на рис. 7. Обратите внимание на то, что при использовании данной команды нужно отдельно указывать оба примитива, между которыми вы меряете расстояние. Для этого в диалоговом окне присутствуют кнопки First Set, Second Set.

  • Чаще всего этой командой приходится пользоваться для определения расстояния между кривой и поверхностью или для проверки: лежит ли кривая на поверхности, или нет.


Группа команд, обеспечивающих построений линий поверх облака точек

Зачем нужны линии поверх облака точек? Если мы собираемся в дальнейшем восстановить по данному облаку точек аналитически описываемую поверхность типа NURBS, нам для такого восстановления придется построить поверх облака точек ряд плавных кривых.

В данном разделе система предоставляет возможность построить поверх облака точек ломаные линии Scan, а также пространственные кривые типа 3D Curve или просто Curve.

Все необходимые команды для построения кривых сосредоточены в панелях команд Curve Creation и Scan Creation (рис.8, 9).



рис.8 рис.9 рис.10


Create Scans on Cloud

  • Сначала нужно оговорить – что такое Scans? В терминах CATIA – это часть облака точек, выделенная таким образом, что создается впечатление, что это – ломаная линия, нарисованная поверх облака точек.

    • В команде нет диалогового окна. Формируется Scan (единственное число), эта последовательность точек следующим образом. Вызывается данная команда и далее вы курсором «тычете» в облако точек в разных его местах. Таким образом, вы указываете некоторую последовательность разобщенных точек на облаке. А далее система заполняет промежутки между указанными вами точками узкой дорожкой точек того же облака так, что создается впечатление, что вы построили целую цепочку, ломаную линию на поверхности облака.

  • Если облако точек выглядит как закрашенная поверхность, то построенные Scans выглядят так, как показано на рис. 10. Здесь они представляются голубыми полилиниями. Но при желании их можно увидеть и в виде последовательностей зеленых точек.

  • С построением Scans связан еще один способ построения пространственного сплайна 3D Curve.

Если вы хотите построить кривую 3D Curve непосредственно на указанном облаке точек, то предварительно на нем нужно построить Scan. Затем следует :

      • выбелить пиктограмму команды 3D Curve;

      • в браузере указать соответствующий элемент Scan on Cloud;

      • в контекстном меню выбрать строку Select All Points in The Geometrical Set

После этого система сама и сразу выделит все поворотные точки предварительно построенного Scan и сразу по ним построит 3D Curve.

Curve From Scans

  • Что потом можно сделать со Scans и как их использовать в дальнейшем? Их можно превратить в пространственные кривые типа Curve. Для этого и существует данная команда.



рис.11 рис.12


  • Диалоговое окно команды представлено на рис. 11.

      • Итак, это вспомогательная команда. Она строит сглаженные кривые по ранее построенным ломаным линиям на облаке точек - Scans. Данная команда встречается еще и в совокупности с другими командами. Например, когда вы будете строить сечения облака точек с помощью команды Planar Sections, система тут же будет предлагать вам превратить полученные Scans в кривые с помощью нашей команды.

      • Главное при выполнении данной команды – это задать нужные параметры сглаживания, с помощью которых ломаные Scans превратятся в Curves. Количество этих Curves, их точность наложения на Scans – все это определяется заданными параметрами сглаживания.

      • При выполнении данной команды приходится часто менять параметры сглаживания. Чтобы новые параметры были учтены, нужно каждый раз нажимать клавишу Apply.

      • К параметрам сглаживания относятся:

        • Creating Mode – способ построения кривой. Система предлагает всего два способа: Smoothing и Interpolation. В первом случае система позволяет вам в значительной степени влиять на форму будущей кривой. Последующие три параметра вообще становятся активными только в том случае, если вы выбрали именно способ Smoothing. В этом случае вы можете добиться, например, большей гладкости кривой в ущерб ее точности. Иногда такой прием построения оказывается вполне оправданным. Во втором случае система строит кривую совершенно без вашего участия.

        • Tolerance – максимальное отклонение будущей кривой от исходного Scan.

        • Max. Order - максимальный порядок полинома, который описывает сегмент кривой;

        • Max. Segments – максимально допустимое число сегментов по длине кривой;

        • Split Angle – угол, в соответствии с которым определяется число Curves по длине исходного Scan. Естественно, что исходный Scan по своей длине может иметь значительные изломы. Эти изломы можно измерить в виде скачка касательного вектора будущей кривой Curve. Так вот, если вы задали данный параметр Split Angle величиной в 60 градусов, а по длине исходного Scan встретился скачок касательного вектора в 70 градусов, то система в месте данного излома организует построение новой Curve. В месте такого излома система поместит транспарант со словом Point (рис.12).

Таким образом, если вы хотите в итоге иметь меньшее количество кривых Curve по длине исходных Scan, задавайте побольше угол Split Angle.

  • Если во время построения система высвечивает будущую кривую красного цвета, это значит, что вы задали слишком жесткие условия и система не смогла из выполнить.



Project Curves

  • Итак, вы построили по поверхности облака точек некий Scans, затем превратили его в аналитически описываемую кривую Curve. Возникает вопрос – плотно ли лежит построенная кривая Curve на поверхности облака? Нет, не плотно. Это легко проверить с помощью команды Distance Analysis. А как плотнее прижать кривую Curve к облаку точек? С помощью данной команды Project Curves.

  • Эта команда проецирует кривую на облако точек или на фасетную сетку. Если вы помните, для проецирования кривых на аналитически описываемые поверхности в разделах Wireframe and Surface Design и Generative Shape Design существуют другие команды.

  • Диалоговое окно команды представлено на рис. 13.

  • В этом окне нет полей для обозначения того: что проецируем и на что проецируем. Нужно просто вызвать команду, потом указать кривую, а затем – облако точек.

  • Если вы включите переключатель Curve creation, то рядом сразу возникнет и диалоговое окно команды Curve From Scans (рис.11). Дело в том, что как мы указывали ранее, команда Curve From Scans в данном случае выступает как вспомогательная. С ее помощью ломаные линии будут превращены ( по заданным вами параметрам) в последовательность кривых типа Curve. Если вы не включите упомянутый переключатель, то результатом проецирования кривой на облако точек опять окажутся ломаные линии, лежащие на поверхности облака точек - Scans. В браузере этот Scans будет обозначен как Curve Projection.

Если мы ставим задачу все-таки уйти от облака точек и превратить его в аналитически описываемую поверхность, нам нужно стараться и в результате проецирования кривой на облако точек также получить аналитически описываемую кривую. То есть Curve. Поэтому следует всегда включать кнопку Curve creation.

  • Далее следует оговорить направление проецирования, возможное отклонение (Sag) и Working Distance. Последний параметр следует пояснить. Представьте себе, что при проецировании сплошной кривой на облако точек (а его нужно представлять себе как некое сито отстоящих друг от друга точек-вершин) непосредственно под кривой не нашлось подходящей точки. В этом случае придется найти ближайшую точку из всего облака, которая подошла бы лучше всех. В этом поле оговаривается размер области поиска подходящей точки. Но если вы ничего не зададите в этом поле, система все равно выполнит нашу команду.

В результате правильного выполнения команды в браузере появляется новая Curve. Нельзя сказать, что эта кривая абсолютно точно лежит на облаке точек. Потому что само облако точек – не есть гладкая поверхность, относительно которой можно что-то измерять. Но можно с

уверенностью сказать, что после проецирования новая кривая будет плотнее приближена к облаку точек.



рис.13 рис.14

Planar Sections

  • Очень полезная и востребованная команда. Дело в том, что задача восстановления поверхности по облаку точек – задача часто очень размерная. Она требует некоторой автоматизации. Например, при построении сечений облака точек специальными плоскостями. На базе этих сечений в дальнейшем можно будет восстановить и саму поверхность.

Но построение самих сечений – дело достаточно громоздкое. В результате возникает множество кривых. Их нужно отбирать, исправлять и пр. Вот для построения таких сечений и существует данная команда.

  • Диалоговое окно команды представлено на рис. 14. Сразу после вызова самой команды нужно указать и обрабатываемое облако точек. После этого в области проектирования рядом с нашим облаком точек появится изображение некоей черной плоскости (рис.15).

Эта большая черная плоскость определяет ориентацию секущих плоскостей. Эту ориентацию можно менять с помощью кнопок внизу диалогового окна. Там присутствуют кнопки, ориентирующие плоскости сечения параллельно стандартным плоскостям. Можно предварительно построить и свою, оригинальную плоскость сечения. Можно предварительно построить некую пространственную линию и плоскости сечения будут располагаться перпендикулярно ей на заданном расстоянии (рис.16).

Можно включить кнопку с изображением компаса и тогда изображение компаса «перескочит» на черную плоскость. Далее можно произвольно перемещать компас. При этом соответственно будет перемещаться и черная плоскость. Таким образом, вы можете самым произвольным образом менять ориентацию секущих плоскостей.

  • В поле Number можно указать число секущих плоскостей. В поле Step – расстояние между секущими плоскостями. С помощью клавиши Swap можно поменять сторону, в которой располагаются секущие плоскости относительно черной плоскости.




рис.15 рис.16


  • Если внизу диалогового окна вы включите кнопку Curve Creation, то в качестве сечений система сразу будет строить кривые типа Curve. Одновременно с диалоговым окном (рис. 14) появится и диалоговое окно (рис.11). Здесь можно вспомнить все, что я уже говорил относительно этой кнопки и этого диалогового окна в предыдущих командах Curve From Scans и Project Curves.

Если вы не включите эту кнопку, то сечениями окажутся те же точки облака, но организованные в Scans. В браузере эти последовательности точек будут представлены элементом Planar Sections.

  • Конечно, нам выгодно сразу получить сечения в виде группы кривых типа Curve . Причем количество этих кривых не должно быть о большим. Для этого нужно правильно выбирать значение Split Angle (см. выше). Самым оптимальным вариантом является случай, когда одно сечение определяется только одной кривой Curve.

Create Free Edges

    • Итак, мы только что разобрали способ полуавтоматического построения сечений заданного облака точек в виде кривых типа Curves.

Иногда необходимо построить не сечения, а границы облака точек опять-таки в виде кривых типа Curves. Для этого и существует данная команда.



рис.17 рис.18


    • Достаточно вызвать эту команду и указать облако точек. Далее в диалоговом окне (рис.17) сразу следует определить – действительно ли вы хотите получить в итоге кривые типа Curves. Если это так, то следует включить кнопку Curve creation. В ответ система предложит уже известное диалоговое окно рис.11 и в результате вы получите границу облака точек (рис.18) в виде одной или нескольких Curves. Это зависит от тех параметров, которые вы зададите в окне рис.11.

    • Если же вы не включите кнопку Curve creation, то в результате система выделит вам только граничные точки облака, организованные в Scans. Причем в облаке точек возможны отверстия. Поэтому границ облака (внутренних и внешних) может оказаться несколько. В этом случае, если вы:

      • включите кнопку Distinct, все границы в браузере будут представлены отдельными элементами Free Edges.

      • включите кнопку Grouped, все границы в браузере будут представлены одним элементом Free Edges.


Построение 3D Curve по предварительно построенным Scans

  • Мы уже упоминали о различных способах построения и корректировки 3D Curve в Пособии 5. Здесь мы только покажем еще один способ ее построения с помощью предварительно построенных Scans.

  • Итак, мы имеем некоторое облако точек и уже выделенные на нем Scans (рис. 19). Далее следует:

    • вызвать команду 3D Curve,

    • указать в браузере элемент Scan on Cloud,

    • в контекстном меню (рис. 20) выбрать команду Select All Points in the Scan

В ответ система по ранее выделенным точкам облака Scan построит нам кривую 3D Curve (рис.21).

  • Правда, нужно отметить, что построенная кривая 3D Curve не будет плотно лежать на облаке точек. Если вы захотите этого, вам придется дополнительно выполнить ее проецирование на это облако.






рис.19 рис.20 рис.21



Группа команд общей обработки облака точек

В системе присутствуют несколько таких инструментов. Но самым первым и необходимым инструментом является команда выделения части облака точек. Действительно, не всегда вы используете целиком тот прототип, который предварительно сфотографировали. Чаще всего вам потребуется только его часть. Для этого в системе существуют команды Actevate Areas и Split a Mesh or a Cloud.


Split a Mesh or a Cloud

  • Предварительно вы должны вызвать команду и указать облако точек. Диалоговое окно команды представлено на рис. 22.



рис.22 рис.23


В этом диалоговом окне много различных кнопок и возможностей. Остановлюсь только на самых необходимых.

  • В поле Mode вы можете выбрать три различных способа указания части облака точек:

  • Pick - указание курсором отдельных точек, треугольных фасет, групп точек в виде Scans и др.

  • Trapуказание целой группы точек с помощью нарисованного поверх облака прямоугольника или полигона.

  • Brush - указание целой группы точек с помощью нарисованного некоей круглой кисточкой поверх облака закрашенного пятна.

    • Если вы выберете способ Pick, то становится активным поле Level, в котором вы можете уточнить – что же вы будете указывать курсором: точки, фасеты, Scans и пр.

    • Если вы выберете способ Trap, то становятся активными поля Trap Type и Selected Part. В первом можно уточнить – что же вы будете рисовать поверх облака: прямоугольник, полигон или сплайн. Во втором поле вы оговариваете – какую часть облака вы выделяете: ту, которая внутри очерченной области, или ту, которая вне ее.

    • В результате выполнения команды в браузере появляются два элемента SplitMesh, которые обозначают две части исходного облака, на который вы его разделили.







Случайные файлы

Файл
20317-1.rtf
104949.rtf
164325.rtf
182514.rtf
53623.doc