Лучшие программы инженерного анализа, например, ANSYS, обладают огромной широтой функционала. Однако, как раз из-за наличия в инженерном программном обеспечении множества разнообразных опций и возможностей, решение узкоспециализированной задачи может оказаться не столь быстрым и удобным. В этом случае необходимо выполнять кастомизацию программы под требуемый класс задач.
Первым и самым простым уровнем кастомизации является создание скриптов и макросов для наиболее часто выполняемых операций. Некоторые программы, например, ANSYS MAPDL, позволяют записать лог-файл выполняемых действий, тем самым создавая черновик будущего макроса. Пользователь выполняет необходимые действия, затем редактирует лог-файл, добавляя в него циклы, условные операторы и исключая действия по отображению модели в графическом окне для ускорения выполнения макроса.
Следующим уровнем кастомизации является создание персональных меню в графическом интерфейсе программы. Иногда настройка меню может быть выполнена средствами самого пакета, а более сложные настройки приходится создавать путем программирования элементов графического интерфейса на языке, встроенном в программный пакет инженерного анализа. В ANSYS MAPDL применяются языки UIDL, Tcl/Tk, а в более современном ANSYS Workbench – XML и Python. Последние позволяют создавать специализированные расширения с использованием приложения ACT (Advanced Customization Toolkit). Данные расширения могут лечь в основу собственных приложений под ANSYS Workbench, по аналогии с приложениями для iPhone.
Самый сложный уровень кастомизации – внесение изменений в код программного пакета. Многие программные системы инженерного анализа предоставляют наборы процедур для пользовательской кастомизации, которые могут быть скомпилированы и прилинкованы к основному исполняемому коду. В ANSYS подобный набор процедур называется UPF (User Programmable Features). Примерами UPF являются процедуры для создания пользовательского материала, пользовательской нагрузки или пользовательского конечного элемента.