Учебник по моделированию мобильного телефона
Сразу же хочу оговориться, что пример не мой, а нашего китайского друга Cafer J. http://www.geocities.com/~caferj/. Поскольку человек китаец, то и учебник на китайском. Можете представить насколько достоверно я передаю его слова (точность формулировок) если учесть, что китайский я вообще не знаю, то есть совсем! Ну да ничего, картинок , прорвемся! Итак, вперед!
Для наш друг китаец советует включить Snap, Ortho, режим Planar и Osnap по концу(End). |
Подготавливаем поле для работы дальше. Вызываем меню Options, кликнув на и ставим галочки где показано, вводим циферки, как показано. Лично у меня другие, но, как говорится, кто как привык! |
Загружаем стандартный Templates. Файл 4 Viewports.3dm. |
Горячие клавиши:
Space - повторение последней команды (тоже Правый клик мышки) |
Ну, все, приготовления закончены, приступаем к моделлингу! Кликаем на Curve: Interpolate points - Кривая линия. Строим две линии: левую и верхнюю (не надо строить закругленные, просто прамые). Кликаем на Mirror - отражение, и относительно осей отражаем построенные линии, жмем на F10 и корректируем контрольные точки, если снап включен, прблем с симметрией не будет. Отключаем контрольные точки - F11. Далее будем скруглять углы, кликаем на Fillet , затем поочередно кликаем на кривые, учавтвующие в операции. Величина ридиуса скругления вводится в командной строке, подберите ее опытным путем! Далее выделяем все кривые - и об'единяем их - . Теперь у нас одна монолитная кривая! |
1. 2.
3. 4.
Строим еще одну кривую - , как показано на рисунке. |
Меняем вид справа на левый. :) |
Копирем дважды построенную линию - , главное, чтобы скопированные кривые заходили за недавно построенный контур. Выделяем три кривые и строим по ним лофтовую поверхность.Surface -> Loft. Кликаем на иконку Loft и подтверждаем. OK! |
Должно получиться что-то вроде: |
1.
2.
Жмем F10 и меняем положение одной из средних точек: |
Откорректировали, выключаем контрольные точки - F11. |
Передвигаем - поверхность на два шага сетки вверх.
Снова выделяем три кривые и строим поверхность - Loft, только теперь средние контрольные точки нужно передвинуть вниз, примерно так, как показано на рисунке: |
В конечном итоге должно получиться что-то типа: |
О'кей теперь приступим к боковинам. Кликаем на Extrude Straight ( вытянуть прямо ). Выделяем нижний контур и в команной сторке вводим "c" - Cap Planar Holes (Закрыть плоские дыры), Enter. |
Далее вводим 7.5 - величина вытягивания,Enter. |
Если бы Вы не ввели "с" - по умолчанию, то построились бы только боковые грани. |
Теперь выделяем верхнюю из недавно построенных поверхностей и проверяем направление нормалей - dir, Enter. Rhino покажет их белыми стрелками. Нам нужно перевернуть нормали (flip), вводим в командной строке - f ,Enter, нормали должны перевернуться. У нижней плоскости направление менять не нужно. |
Ок, теперь попробуем создать корпус. Для этой операции у нас все уже есть. Нужно просто найти разницу между вытянутым контуром и двумя поверхностями. Для этого наиболее подходит булевский оператор - (Boolean difference). Кликаем на иконку, выделяем вытянутый об'ект, Enter, выделяе верхнюю и нижнюю поверхности, Enter! Типа круто и все такое! :) |
Ок, теперь нужно разбить об'ект на поверхности. Жмем (Explode) - "взорвать" и указываем на об'ект. Далее, удаляем образованную поверхность, соединяющую верхнюю и нижнюю поверхности. |
Чтобы избежать дальнейших запуток, вводим новый слой "Surface" - поверхности, кликнув на -Edit Layers. На рисунке показано диалоговое меню редактирования слоев Rhino 1.1, которое немного отличается от предыдущих версий, не нужно комплексовать, там все просто! В принципе идея не нова: создать несколько слоев, и в каждый помещать определенные группы об"ектов: Curve (кривые),Surface(поверхности). Можно даже расскрасить их в разные цвета, так непоняток будет еще меньше! |
Далее, выделяем группу об'ектов (поверхности) , кликаем на (Object Properties) - свойства об'ектов и помещаем их в соответствуюший слой, выбрав его в меню Layer. |
Того же эффекта можно добиться, кликнув на, и выбрать изменить слой -(Change Layer). Ок, кликаем на Blend Surface. |
Выделяем ребра поверзностей, и смотрим, как расположены вектора обхода. Если они находятся не друг под другом или направлены в разные стороны, можно ввести в консоли "а" - автоматическое выравнивание, если и это не помогает, нужно вручную пододвинуть вектор, и , если необходимо перевернуть направление вектора "f" (flip). |
Теперь автор советует изменить "Абсолютный допуск", чем он меньше, тем точнее будут совмещаться ребра, но тем больших обсчетов и времени требуется от машины. В меню Tool->Options, в закладке Unit находим Absolute Tolеrance и изменяем значение с 0.01 на 0.1. |
Можно полюбоваться на работу (Shade) Cool!
Об'единяем полученную и верх/низ поверхности, кликнув на . Собственно, ничего не изменилось, просто мы образовали одну множественную поверхность (Polysurf), которую Rhino при экспорте передаст как один меш. Ок, "безглючность" полученного об"екта можно проверить, применив Analyze->Edge Tools->Show Naked Edges (Анализ->Инструмент для ребер-> Показать открытые ребра). Если после применения данного инструментария, на об'екте не будет выделенных ребер, то все Ок, с об'ектом проблем не будет! Показываем слой с кривыми (Curve), находим исходную кривую, по которой строились верх и низ трубки, перемещаем ее к центру и немного растягиваем, применив 1D Scale. Необходимо, чтобы она немного выступала с обоих концов. |
Выделяем кривую и применяем Extrude Straigh (вытянуть прямо). Вытягиваем на расстояние, превышающее габариты корпуса трубки. Если перед вытягиванием в командной строке ввести b(both), то кривая будет вытягиваться сразу в обе стороны. |
Ок! Теперь нужно создать копии корпуса и поверхности . Проще это сделать выделив об"екты и нажать (Ctrl+c) - copy (Ctrl+v) - paste . Теперь скройте скопированные об'екты, Примените (Boolean Difference) Между корпусом и поверхностью, далее скройте полученный об"ект. Откройте скопированные об"екты, примените Dir (направление нормалей) к поверхности, переверните их ("F"-flip) и примените булевский оператор разности . У Вас должны получиться два Об'екта, представляющие верх и низ трубки. |
Увеличте вид, найдите нижнюю часть корпуса и скройте ее . Пимечание: Наш друг китаец рекомендует несколько видоизменить Toolbar, поместив на него несколько нужных иконок. На самом деле это дело вкуса, у каждого свой интерфейс, кто как привык, сделайте его таким, какой нравится именно Вам, и никого не слушайте, даже меня :) Далее привожу его слова: выбирите Tools->Toolbar->Layout->Edit, найдите Select, нажмите Show, у вас появится расскытое меню Select, с нажатой кнопкой Ctrl перетащите на другое место (куда больше нравится) несколько иконок Select (Select: Point, Curves, Polylines, Surfaces, Polysurfaces, SelectInverse). Далее, когда Вы шелкните , например, на SelectCurves, выделятся все кривые, шелкните Hide, они скроются! Забавно... :) |
1.
2. 3.
Ок! Теперь поместите кривые в соответствующий слой и выключите его, они исчезнут (не буквально). Строим Curve (кривую), определяющую панель индикации телефона, что-то вроде того, как показано ниже: (не стройте много точек!) |
Кликаем на Extrude Straight ( вытянуть прямо ). Выделяем контур и в команной сторке вводим "c" - Cap Planar Holes (Закрыть плоские дыры), Enter. Вытягиваем так, чтобы перекрыть верх трубки. |
Ок! Теперь выделяем оба об'екта и копируем (Ctrl+c - Ctrl+v). Скрываем одну пару, кликаем на (Boolean difference - разность) выделяем трубку, Right Click, Выделяем вытянутый об'ект, Right Click. Расскрываем вторую пару (копии) и кликаем на (Boolean intersection - пересечение), потом на трубке, Right Click, на вытянутом об'екте, Right Click! Должны получиться два об"екта, составляющие трубку. |
Ввыбираем Solid->Fillet Edge (сгладитьребра), выделяем два нижних ребра (см. ниже)
В коммандной строке вводим 0.3 Enter!
Любуемся :)
Теперь построим контур дисплея. Кликаем на (rectangle - прямоугольник), в командной строке вводим r (rounded - скругленный) Enter, Строим прямоугольник, а когда Rhino спросит величину скругления, вводим 0.3. |
Вырезаем дисплей, подобно предыдущим пунктам.
Расскрашивеам дисплей, кликнув на (Object Properties) и задаем цветовые координаты:
Расскрашиваем обод дисплея, координаты цвета следующие:
Типа наслаждаемся цветом!
Теперь пришло время Вам воспользоваться Вашей фантазией! Стройте кнопки, какие Вам нравятся! Автор предлагает вот такой вариант. Чтобы построить кривые кнопки, проще построить круг, затем кликнуть на и перестроить его, изменив лишь второй параметр с 2 на 3. Далее включайте режим редактирования контрольных точек и творите. Рекомендуется для клонирования использовать . |
Постройте две кривые вокруг нижних кнопок. Как их строил автор, я не знаю, попробуйте построить прямоугольник с параметром r и , когда Rhino попросит указать величину скругления, мышкой скорректируйте так, чтобы боковые стороны превратились в дуги. Далее включите режим редактирования контрольных точек и поднимите средние точки. Если Вы хотите большей детальности, обязательно перестройте кривую (измените второй параметр на 3) и можете добавить несколько точек на верхней и нижней сторонах. Ни в коем случае не стройте вторую кривую инструментом Offset, Вы получите очень большое количество точек. Проше скопировать построенное и скорректировать контрольные точки. |
Когда все линии будут построены и перемещены на место, выделите все линии кроме нижнего ряда и обводки, кликните на (Extrude Straigh), в коммандной строке введите c (cap holes) и вытяните на достаточное расстояние! |
Теперь поочередно вырезайте вытянутые контуры из верхней части корпуса телефона
Теперь несколько запутанная операция, следите правильность по рисункам! 1. Кликаем на , выделяем большую по размеру линию обводки нижних кнопок, в коммандной строке вводим c, и вытягиваем. 2. Описанным выше способом вырезаем об'ект в нижней части трубки 3. Вытягиваем меньший из контуров 4. Находим общее (Boolean intersection) между полученным об'ектом (в п.2) и вытянутым в п.3 Должно получиться что-то наподобие рис5. |
1.2.
3.4.
5.
Выделяем верхнюю поверхность в только что полученном об'екте: Solid->Extract Surface (Об'ект - выделить поверхность). |
Включаем режим контрольных точек - F10. Видно, что точки значительно превышают размер поверКорректируем это, применив Surface->Edit Tools->Shrink Trimmed Surface, после этой операции точки займут свое примерное положение и можно двигаться дальше! |
1.
2.
Выделим две точки посередине поверхности (см. рис) и опустим их немного вниз.
Соединим раздробленный об'ект, кликнув на и указав отделенную поверхность и то, от чего отделяли, Enter. Я надеюсь, булевские операции Вы уже освоили и с легкостью вырежете три отверстия в об'единенном только что об'екте! |
Теперь нужно подготовить поверхности для дальнейших построений. Сделайте следующее: Кликните на Solid->Extract Surface , и кликните на две поверхности (верхние, на рис выделены) и нанмите Enter. Сразуже сделайте их копию и скройте . Присоедените поверхности обратно с помощью . |
ТOk! Теперь кликаем на (Fillet edge - скруглить ребра), выделите ребра вокруг кнопок (на рис. выделены), в командной строке введите 0.1, Enter! Должны получиться приятные скругления! :) Можно даже полюбоваться (рис.3). |
1.
2.
3.
Так, теперь можно заняться спрятанными поверхностями, которые мы недавно сделали. Кликните на Unhide, и спрячьте все кроме этих поверхностей. Сейчас мы будем их немного дорабатывать. Во-первых нужно убрать дырки, которые мы наделали (не знаю, почему нельзя было скопировать поверхности, когда в них еще небыло дырок!???). Ну да ладно, будем считать это демонстрацией возможностей Rhino! Кликните на Surface->Edit Tools->Untrim, (Де-тримм, т.е. трим наоборот :) и поочередно кликайте на ребра, окружности удаляйте! |
1.
2.
Так, теперь все скройте кроме поверхностей и окружностей . Теперь поочередно нужно для каждой из окружностей построить уменьшенную копию. Автор советует использовать для уменьшения инструмент Scale 1-D или Scale 2-D с параметром c (Copy), при включенном ОSnap по центру об"екта (cen) и Ortho. В принципе это справедливо для некруглых кривых (верхние кнопки), а для окружностей можно использовать и Scale-3D, только будьте обязательно уверены, что OSnap сработал, иначе кривую унесет вникуда :) Сделайте примерно так, как показано на рис. |
Вытягиваем контуры , при этом параметр c вводить не нужно, закрытые об'екты нам не нужны.
Находим линии пересечения , Intersection вытянутых контуров с поверхностями. |
Все, удаляем вытянутые об'екты. Кликните на (Select all curves), затем на (Select Invert), и . Дальше будем работать только с кривыми. Выделите внутренние кривые и переместите (Move) их на 0.2 вверх, инвертируйте выделение (нам нужны внешние контуры) и скопируйте их на 0.5 вниз. Далее будем строить собственно кнопки. Для этого выделяем три кривых, образующих одну кнопку и кликаем на (Surface->Loft) |
ТВ выпавшем меню Loft Options меняем Style на Straight sections (прямые секции). Для тех, кому дальнейшие действия по закруглению кнопок кажутся очень сложными и громоздкими, можно посоветовать не менять графу и пропустить кучу последующих пунктов |
.
Так, теперь необходимо построить точки, которые будут задавать величину углубления кнопок. Точка должна располагаться примерно в ценре кнопки и быть немного ниже верхней кривой. Лучше всего использовать для скрытия всех линий, кроме одной, для которой Вы строите точку. В виде Top постройте точку, а в виде Right подкорректируйте ее положение по высоте. Да, работа трудоемкая, но ее нужно сделать! |
Чтож, когда все точки будут на месте, модно приступать к закрытию кнопок! Используем для этого инструмент Patch (сетка). Для начала скройте все линии построения. Кликаете на иконке Patch, далее на верхнем ребре кнопки и на точке, Right Click! В меню Patch option измените количество Spans UV на 3 и включите (preserve edges - сохранить положение ребер). Enter! Проделать такие же операции для каждой кнопки. |
Об'единяем соответствующие поверхности и любуемся! Правда естьодно но: превью показано уже с закругленными кнопками, а у Вас они будут ребристые!
Так! Хотелось бы закруглить кнопочки! Самый простой способ это применить (Fillet edges), но он будет работать плохо, Вы можете проверить сами, но сохранитесь перед этим, результат Вас не порадует! Для того, чтобы сделать корректное скругление применяется способ, описанный ниже. Он трудоемок, но зато работает ВСЕГДА и хорошо! Рассмотрим его на примере одной кнопки, главное уловить суть! |
1.Строим (Solid->Pipe), где кривая, вокруг которой строится труба - верхнее ребро кнопки.Величина радиуса трубы определяет скругление, вибирите ее в пределах 0.1 2.Строим еще одну трубу, но теперь вокруг среднего ребра. 3.Теперь найдем линии пересечения поверхностей с трубами. Кликаем на Curve->From Objects->Intersection, и на обекты. Трубы скрыть! 4.Разделяем кнопку на поверхности (Explode), и отрезаем поверхности по линиям пересечения . 5.Удаляем ненужное. Н-да! Опрерация красивая, только не всегда все гладко! Обычно со сложными об'ектами (или просто Rhinoсправился не корректно) приходится повозиться. Дело в том, что в процессе Splita ребра могут раздробиться на части, что делает невозможным дальнейшее применение Surface->Blend. Если у Вас все нормально, то следующий пункт можно пропустить! 6.Для начала можно попробовать Analyze->Edge Tools->Merge Edge (повторять операцию до тех пор, пока ребро будет выделяться). Если же ребро выделяется, а бленд Вам предлагается только на участке ребра, значит дело серьезнее и нужно применить Analyze->Edge Tools->Rebuild Edgse. Это работает всегда, правда Вы теряете в точности :( 7.Кликаем на (Surface->Blend), кликаем на одном ребра, потом на втором, Right Click, Rhino спросит правильность направления обхода и построит сглаженную поверхность. 8.Об"едините кнопку в одно целое . Так! Повторите операции дл всех кнопок! :) |
Полезное лирическое отступление
тех, кто знает, просьба пропустить!
Должно получиться что-то подобное: 1. G0: Просто две кривые имеют одну общую точку.
|
Теперь займемся местом для микрофона.Сделайте копию корпуса. Строим круг, перестраиваем (Rebuild Curve) до 10 контрольных точек и Degree на 3, корректируем положение точек. Строим еще один контур, немного больше только что построенного (copy and Scale-2D). Вытягиваем контуры с параметром "с" и вырезаем больший контур из корпуса, а с меньшим находим пересечение . |
1.
2.
3.
4.
Кликаем на и присваиваем цветовые координаты:
Строим еще одну кривую:.
Проецируем ее на верхнюю часть корпуса телефона: Curve->From Objects->Project. Для этого кликаем на иконку, кликаем на линии, Right Click, кликаем на телефоне, Right Click! Ок! У нас даже две кривые, нижнюю можно смело удалить! |
Выделим одну верхнюю поверхность. Solid->Extract Surface |
Отрежьте с помощью (по спроецированной линии) поверхность сверху и удалите ее. Постройте точку, определяющую величину прогиба будующей поверхности. Постройте еще одну кривую, меньшую по размеру, чем проецируемая, она будет определять размер динмика. |
1.2.
Инструментом Surface->Patch, постройте сетку, по отрезанному контуру и точке. Поставьте галочку напротив Preserve Edges. |
Спроецируйте втрорую (меньшую) кривую на построенный патч , отрежьте командой по спроецированному контуру и закройте дырку командой Surface->Patch, но уже без точки, просто плоскую сетку. Теперь хочется скруглить переход между поверхностями. Напрашивается простой путь: и скруглить по ребру с закруглением 0.2. Может это и устроит, но только не нас! Нам нужна красивая поверхность! Следовательно, работаем по уже известной схеме: Строим Solid->Pipe c радиусом 0.2, находим линии пересечения и отрезаем лишнее . |
1.
2.
Беда! Ребро раздробилось на две части. Применим Analyze->Edge Tools->Merge Edge и все будет нормально! |
Строим поверхность Surface->Blend между двумя ребрами. |
Строим 3 кривых для прорезей под динамик. |
Проецируем их на патч , и отрезаем середину , удаляем. |
Вытягиваем прорезаные контуры на величину 0.1 вниз. Об"единяем об'екты в один . |