Данный пример иллюстрирует применение оптимизации для 3D модели. Файл примера находится в библиотеке Примеры 17\Сервисные инструменты\Оптимизация\Бутылка.grb.
Пример представляет собой решение задачи об объёме бутылки. В привёденном примере создана переменная Volume, равная ёмкости бутылки, т.е. объёму налитой в неё жидкости. Переменная H определяет высоту бутылки, а HW – высоту жидкости в ней. Задача оптимизации состоит в том, чтобы при любом изменении высоты бутылки и высоты наливаемой в неё жидкости ёмкость бутылки была неизменной (0.5 л = 500000 мм3). Для достижения этой цели необходимо найти значение переменной D, отвечающей за максимальный диаметр бутылки (диаметр её средней части). В команде Оптимизация было создано задание на оптимизацию Volume.
Целевая функция: приравнять переменную Volume к 500000 с допуском 0.5. В качестве изменяемой переменной задана переменная D с интервалом от 70 до 90. На переменные модели не накладываются дополнительные условия, поэтому ограничений нет. Для наглядности процесса оптимизации включены флаги Показывать текущее решение и Пересчитывать 3D модель. В качестве алгоритма оптимизации выбран Метод дихотомии с максимальным числом итераций 100. Параметр Запускать установлен на значение Пользователь, т.е. оптимизация будет выполняться только по запросу пользователя. Создав задание на оптимизацию, изменим модель. Например, уменьшим высоту бутылки и, соответственно, уровень жидкости в ней, изменив значения переменных H и HW. Ёмкость бутылки при этом уменьшилась.
Для подбора необходимого диаметра бутылки достаточно вызвать команду Оптимизация, выбрать в появившемся окне задание Volume и нажать графическую кнопку Выполнить. В процессе подбора решения на экране будет отображаться вид модели при текущих значениях изменяемой переменной.
Приняв найденное решение нажатием кнопки OK, получим бутылку диаметром 86 мм и ёмкостью 0.5 л.