Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РГЗ 1.doc
Скачиваний:
3
Добавлен:
20.09.2019
Размер:
174.59 Кб
Скачать

Министерство образования и науки РФ

Белгородский государственный технологический университет

им. В. Г. Шухова

Кафедра строительного материаловедения изделий и конструкций

Секция наносистем в строительном материаловедении

РГЗ № 1

по дисциплине:

«Композиционное моделирование наносистем»

на тему:

«Построение плотнейших упаковок»

Выполнила: ст. гр. ПСн-41

Суворова А.Р.

Принял: к.г.-м.н., проф.

Жерновский И.В.

Белгород 2012

ПОНЯТИЕ ПАКЕТА 3D MAX. СКРИПТОВЫЕ ЯЗЫКИ

3D Studio Max - лидер рынка программного обеспечения для трехмерного моделирования, анимации и визуализации.

Открытая архитектура 3D Studio MAX позволяет аниматорам воспользоваться преимуществами использования более чем ста подключаемых приложений, чтобы быстро и легко добавлять впечатляющие эффекты. Более того, с помощью 3D Studio MAX SDK они могут даже создавать свои собственные приложения-модули, чтобы придавать оригинальный вид своим творениям.

3D Studio Max - программа трёхмерной графики - может использоваться:

- в архитектурном проектировании;

- в подготовке рекламных и научно-популярных роликов для телевидения;

- в компьютерной мультипликации и художественной анимации (спецэффекты, фантастические чудовища и т.д.), например, спецэффекты к фильму "Мумия" сделаны в этой программе;

- в компьютерных играх;

- в компьютерной графике и Web-дизайне.

Возможности 3D Studio Max:

Моделирование:

- детализация геометрии с помощью Edit Poly Bridge;

- большая управляемость геометрией с новой опцией Slide and Pinch в Edit Poly Connect;

- выбор граней геометрии растяжением/сжатием выбранного (selection) вдоль Ring/Loops;

- упрощение подчистки (cleaning up) моделей удалением граней и вершин за один проход;

- новый Sweep модификатор.

Язык MAXScript:

- автоматизация производственного потока за счет очереди запросов к базе данных с помощью MAXScript SQL Connect and Queries;

- отладчик MAXScript debugger;

- контроллеры выражений имеют полную MXS поддержку;

- Rebuilt scripted контроллер поддерживает независимые имена.

Анимация персонажей:

- форматы оцифровки движения включают HTR импорт/экспорт для 3ds max костей и импорт TRC данных. Импорт стандартных форматов оцифровки движения напрямую в 3ds max.

- загрузка и сохранение анимации с помощью новых типов данных движения на базе XML;

- Motion Mixer применим к любой анимации, не только Biped;

- улучшенное окно Track View.

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

Пакет 3D Studio MAX достаточно сложен в освоении и имеет огромное число настроек, инструментов, меню и т.п. Даже простое перечисление его инструментов займет немало времени и вместе с тем не даст ни малейшего представления о нюансах работы. Поэтому знакомиться с возможностями пакета мы будем последовательно и на конкретных примерах, а на первом уроке просто попытаемся немного освоиться с интерфейсом программы, экспериментируя с простыми геометрическими объектами.

Создание и простейшее редактирование стандартных примитивов

Создавать и редактировать объекты можно в любой проекции, но некоторые возможности редактирования в разных проекциях отличаются. Принцип создания определяется самим объектом. Для одних объектов, например чайников (Teapot) или сфер (Sphere), достаточно щелкнуть мышью в левой верхней точке объекта, перетащить мышь и отпустить ее в правой нижней точке. Для других типов объектов процесс может оказаться более длительным, например при создании коробок (Box) или цилиндров (Cylinder) нужно будет указать еще и глубину объекта, а значит, последовательность будет выглядеть так: щелкнуть => перетащить, не отпуская кнопку мыши => отпустить кнопку мыши => перетащить => щелкнуть. Отметим, что изменить параметры объекта можно в любой момент, так как в программе запоминаются все этапы его создания и редактирования.

Создание стандартных примитивов

Вначале поэкспериментируем с обычными сферами. Для создания объектов откройте панель Create (Создать), щелкнув на соответствующей кнопке панели Command Panel, — по умолчанию данная панель открывается автоматически. На панели Create выберите категорию объектов Geometry (Геометрия), в списке типов объектов укажите тип Standard Primitives (Стандартные примитивы), а затем в группе Object Type (Типы объектов) выберите инструмент Sphere (Сфера).

Сразу обратите внимание, что на панели Create находятся несколько групп элементов: Object Type (Типы объектов), Name and Color (Имя и цвет), Creation Method (Метод создания) и др. Слева от названия групп можно увидеть либо знак «–», означающий, что группа развернута (тогда видны все ее параметры), либо знак «+», когда группа свернута и виден лишь ее заголовок. Для сворачивания/развертывания любой из групп достаточно щелкнуть курсором по заголовку группы.

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

Скриптовый язык— язык программирования, разработанный для записи «сценариев», последовательностей операций, которые пользователь может выполнять на компьютере. Простые скриптовые языки раньше часто называли языками пакетной. Сценарии обычно интерпретируются, а не компилируются.

В прикладной программе, сценарий (скрипт) — это программа, которая автоматизирует некоторую задачу, которую без сценария пользователь делал бы вручную, используя интерфейс программы.

Для написания пользовательских расширений могут использоваться как скрипты (в терминологии некоторых программ «макросы»), так и плагины (независимые модули, написанные на компилируемых языках; в некоторых программах они могут называться «утилитами», «экспортёрами», «драйверами»).

Скриптовый язык удобен в следующих случаях:

Если нужно обеспечить программируемость без риска дестабилизировать систему. Так как, в отличие от плагинов, скрипты интерпретируются, а не компилируются, неправильно написанный скрипт выведет диагностическое сообщение, а не приведёт к системному краху;

Если важен выразительный код. Во-первых, чем сложнее система, тем больше кода приходится писать «потому, что это нужно. Во-вторых, в скриптовом языке может быть совсем другая концепция программирования, чем в основной программе — например, игра может быть монолитным однопоточным приложением, в то время как управляющие персонажами скрипты выполняются параллельно. В-третьих, скриптовый язык имеет собственный проблемно-ориентированный набор команд, и одна строка скрипта может делать то же, что несколько десятков строк на традиционном языке. Как следствие, на скриптовом языке может писать программист очень низкой квалификации — например, геймдизайнер своими руками, не полагаясь на программистов, может корректировать правила игры;

Если требуется кроссплатформенность. Хорошим примером является JavaScript — его исполняют браузеры под самыми разными ОС.

У плагинов же есть три важных преимущества.

Готовые программы, оттранслированные в машинный код, выполняются значительно быстрее скриптов, которые интерпретируются из исходного кода динамически при каждом исполнении. Поэтому скриптовые языки не применяются для написания программ, требующих оптимальности и быстроты исполнения. Но из-за простоты они часто применяются для написания небольших, одноразовых («проблемных») программ.

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

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

Также в плане быстродействия скриптовые языки можно разделить на языки динамического разбора (sh, command.com) и предварительно компилируемые (Perl). Языки динамического разбора считывают инструкции из файла программы минимально требующимися блоками, и исполняют эти блоки, не читая дальнейший код. Предкомпилируемые языки транслируют всю программу в байт-код и затем исполняют его. Некоторые скриптовые языки имеют возможность компиляции программы «на лету» в машинный код (т. н. JIT-компиляция).

Постановка задачи

Смоделировать программным путем 2 вида плотнейших упаковок: гексагональную ПУ и кубическую ПУ.

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

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

Для описания плотноупакованной структуры в кристаллографии принята модель плотной упаковки твердых шаров. Шары рассматриваются как материальные частицы одного сорта, имеют сферическую симметрию, равны по размеру, несжимаемы, притягиваются друг к другу. Шары касаются друг друга, заполняя большую часть пространства. Ионы не поляризуются, т. е. их сферичность не нарушается. Стремление к минимуму потенциальной энергии означает, что каждая частица должна взаимодействовать с возможно большим числом других частиц, координационное число должно быть максимальным.

  1. Гранецентрированная элементарная кубическая ячейка

Рисунок 1. Гранецентрированная элементарная кубическая ячейка

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

Гранецентрированная кубическая решетка характеризуется ячейкой, изображенной на рис.3. Узлы расположены по углам куба и по центрам его граней. Всего в ячейке получается 4 узла (8 восьмушек и 6 половинок). Такую решетку имеют многие металлы (железо, кобальт, медь и многие другие), их атомы расположены в узлах рассмотренной решетки.

  1. Кубическая плотнейшая упаковка

Рисунок 2. Кубическая плотнейшая упаковка

Набор слоев шаров типа …ABАВА... представляет собой кубическую плотную упаковку (КПУ) атомов в структуре золота (рис.4). Благородные металлы Ag, Au, Pt, a также Cu, Al, Pb, -Fe характеризуются трёхслойной - кубической плотнейшей упаковкой атомов. Атомы в ней лежат в вершинах куба и центрах его граней: поэтому ее часто называют гранецентрированной кубической или ГЦК. ГЦК структуру имеют многие простые металлы.

  1. Гексагональная плотнейшая упаковка

Гексагональная плотнейшаяая упаковка или ГПУ, соответствующая чередованию слоев ..ABСABС... очень распространена. Она характерна для Be, Mg, Zn, Ti.

Рисунок 3. Гексагональная плотнейшая упаковка

Результаты работы

1) Кубическая плотнейшая упаковка

Текст программы:

for i=-5 to 5 do

(for k=-5 to 5 by 2 do

(for j=-5 to 5 by 2 do

(b=sphere ()

b.pos.x=i

b.pos.y=j*0.866

b.pos.z=k*0.817

b.radius=0.5 )

for j=-6 to 4 by 2 do

(b=sphere ()

b.pos.x=i+0.5

b.pos.y=j*0.866

b.pos.z=k*0.817

b.radius=0.5 )))

for i=-5 to 5 do

(for k=-4 to 6 by 2 do

(for j=-5 to 5 by 2 do

(b=sphere ()

b.pos.x=i+0.5

b.pos.y=j*0.866+0.289

b.pos.z=k*0.817

b.radius=0.5 )

for j=-6 to 4 by 2 do

(b=sphere ()

b.pos.x=i

b.pos.y=j*0.866+0.289

b.pos.z=k*0.817

b.radius=0.5 )))

Суть данной программы заключается в следующем: учитывая, что чередование слоев структуры данного типа происходит в виде «…А-В-А-В_А…», имеем 2 цикла соответственно для каждого из слоев. Шаг слоев задаем оператором «by 2». Рассматривая каждый слой в отдельности видим, что ряды будут чередоваться также с шагом 2, и разница координат по сравнению с предыдущим слоем будет составлять для х-0,5, для у-0,866. Для чередующихся слоев наблюдается также увеличение значения координаты z – на 0,817. Таким образом, программа представляет собой два цикла в цикле. Все координаты и индексы при них получены из простейших теорем геометрии.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]