Commands runner. Советы по оптимизации работы
7 мин. чтения
Горячие клавиши Commands runner #
Для ускорения работы с Commands runner советуем использовать горячие клавиши.
Сочетание | Действие |
---|---|
Ctrl + F9 | Открыть исполнитель команд (Commands runner) |
F9 | Выполнить все команды |
F8 | Выполнить первую команду в списке |
Shift + F8 | Пропустить команду и выполнить следующую |
Ctrl + W | Перенос строк (Word wrap) |
Ctrl + Shift + F9 | Открыть исполнитель команд (Commands runner), вставить из буфера обмена Windows скопированные команды и выполнить их напрямую |
Ctrl + Shift + N | Создать новый проект, открыть исполнитель команд (Commands runner), вставить из буфера обмена Windows скопированные команды и выполнить их напрямую |
Ctrl + O | Открыть список команд (txt, p2dxlog, p3dlog файлы) |
Ctrl + S | Сохранить список команд |
Alt + F4 | Закрыть Commands runner |
Перенос строк #
Примеры длинных команд
В PLAXIS есть длинные команды с большим количеством информации. Например, команда setproperties
. Она отвечает за общие свойства проекта, которые пользователь задаёт в окне Project properties: название проекта, тип элементов и единицы измерения. Пример:
_setproperties "Title" "Задача 1" "Company" "NIP-Informatica" "Comments" "Ленточный фундамент" "UnitForce" "kN" "UnitLength" "m" "UnitTime" "day" "UnitTemperature" "K" "UnitEnergy" "kJ" "UnitPower" "kW" "WaterWeight" 10 "ReferenceTemperature" 293.15 "LiquidSpecificHeatCapacity" 4181.3 "LiquidThermalConductivity" 0.0006 "LiquidLatentHeat" 334000 "LiquidThermalExpansion" 0.00021 "LiquidTemperature" 293.15 "IceSpecificHeatCapacity" 2108 "IceThermalConductivity" 0.00222 "IceThermalExpansion" 5E-5 "VapourSpecificHeatCapacity" 1930 "VapourThermalConductivity" 2.5E-5 "VapourSpecificGasConstant" 461.5 "UseTemperatureDepWaterPropsTable" False "ModelType" "Plane strain" "ElementType" "15-Noded"
В Commands runner она будет выглядеть так:
Пример ещё более длинной команды — soilmat
. Команда отвечает за создание нового набора данных по грунту:
_soilmat "Comments" "" "Metadata" "" "MaterialName" "Насыпной грунт" "Colour" 15262369 "MaterialNumber" 0 "SoilModel" 2 "UserDefinedIndex" 0 "DrainageType" 0 "DilatancyCutOff" False "UndrainedBehaviour" 0 "InterfaceStrength" 0 "InterfaceStiffness" 0 "ConsiderGapClosure" True "K0PrimaryIsK0Secondary" True "K0Determination" 1 "SolidThermalExpansion" 1 "UnfrozenWaterContent" 0 "TableUnfrozenWaterContent" "[]" "CrossPermeability" 0 "DefaultValuesAdvanced" True "DataSetFlow" 0 "ModelFlow" 0 "UDModelFlow" 0 "SoilTypeFlow" 0 "LowerUpper" 0 "UsdaSoilType" 0 "StaringUpperSoilType" 0 "StaringLowerSoilType" 0 "M50" 0 "UseDefaultsFlow" 0 "TablePsiPermSat" "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]" "SplinePsiPerm" "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]" "SplinePsiSat" "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]" "TensionCutOff" True "einit" 0.5 "emin" 0 "emax" 998.999999999999 "Dinter" 0 "SkemptonB" 0.978260869565217 "KwRefN" 749999.999999999 "VolumetricSpecificStorage" 1.33333333333333E-5 "SolidThermalExpansionTotal" 0 "DrainageConductivity" 0 "Eref" 20000 "Eoed" 26923.0769230769 "Vs" 64.7480323431353 "Vp" 121.132476747885 "Einc" 0 7692.30769230769 0.3 30 1 0 0 0 0 18 20 0 0 1 0 0 0 0 0 0 0.333333333333333 0 0.999 0 0 0 0 1.0000000000000000E+015 0.495 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0.5 0.5 1 0 0 -1.06 -2.37 0 0 10000 1 0.0620347394540943 3.83 1.3774 1.25 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 10 13 77 0 0 0 0 0 0 0
В Commands runner:
Как включить перенос строк #
Чтобы работать с такими командами, приходится прокручивать горизонтальный бегунок. Это не очень удобно. В этом случае советуем активировать перенос строк (Word wrap) в меню Options или нажать Ctrl
+W
:
Теперь команды setproperties
и soilmat
выглядят по-другому:
Это позволит быстрее найти нужный компонент команды и внести изменения.
Перенос строк в Command line #
Такая же опция есть в поле Command line на вкладке Session. Для этого щёлкаем правой кнопкой мыши в любом месте рабочей области вкладки Session и выбираем Word wrap:
На вкладке Model history эта опция не работает
После этого команды переносятся построчно:
В окне Commands runner опция Word wrap сохраняется включённой при перезапуске программы. В Command line придётся включать опцию при каждом запуске программы.
Pop out #
Если щёлкнуть правой кнопкой мыши в области вкладок Session n Model history, то в контекстном меню можно найти опцию Pop out (англ. «выскочить»):
Если выбрать эту опцию, командная строка «выскочит» и продублируется в отдельном окне:
Все операции в одном окне дублируются в другом окне. Так мы сможем «отвязаться» от командной строки внизу экрана и более эффективно работать с командами.
Опция Examine commands #
Зачем нужна опция
Есть несколько команд, которые Commands runner не всегда может повторить:
save
— сохранить проект. Если в команде указан путь к папке (директория), то повторить такую же команду на другом компьютере не получится. Вероятность полного совпадения пути не очень высока. Нам нужно поменять путь на свой вариант или повторить чужой путь.import
— импортировать геометрию. Для повтора команды нужен путь к исходному файлу импорта (как и сам файл). Если вы перешлёте коллеге или в техподдержку список с командойimport
, то у них не получится повторить команды в Commands runner.
Если вы повторяете список команд своего проекта, и у вас тот же путь сохранения и путь к импортированному файлу, то проблем в Commands runner не будет.
Также есть команды, которые в некоторых случаях нет смысла повторять в Commands runner:
mesh
— сгенерировать сетку. В проекте пользователь обычно много раз создаёт сетку, подбирая оптимальный вариант. Если повторять список команд проекта, то Commands runner будет создавать все промежуточные сетки. На практике нам нужен только последний результат по созданной сетке.calculate
— запустить расчёт. Аналогичная ситуация. В проекте может быть много подходов к расчётам, но нам нужен только последний или результаты не нужны вообщеview
— перейти в Output. Если мы будем прогонять проект в Commands runner, то каждая команда view будет открывать Output. Сколько раз в истории проекта открывали Output, столько же раз он откроется при выполнении списка команд.
Перечисленные команды желательно исправить (import
) или удалить (save
, mesh
, calculate
, view
) до нажатия кнопки Run everything (F9
). Их можно «вычистить» вручную с помощью поисковика в Word или в Блокноте. Но когда речь идёт о списке из тысяч команд, это будет очень сложная задача.
Для экономии времени разработчики предлагают использовать опцию Examine commands (Проверить команды). Она позволяет отфильтровать, почистить список в несколько кликов, убрав лишние команды.
Где найти опцию
Опцию Examine commands можно найти в меню Expert. Во всех версиях PLAXIS она идёт первой по счёту:
PLAXIS 2D
PLAXIS 3D
Другой способ — перейти на вкладку Model history → щёлкнуть правой кнопкой мыши в любом месте области со списком команд и выбрать Examine…:
Как работает опция
Examine commands показывает структурированный список всех команд, выполненных к текущему моменту.
Наша задача — очистить этот список от лишних команд вручную или с помощью встроенных фильтров, а потом сохранить результат для использования в Commands runner.
При выборе опции Examine commands откроется отдельное окно:
Оно состоит из двух частей: слева — список команд, справа — настройки фильтрации. Рассмотрим левую часть:
- Первая колонка Есть квадратик — команда будет добавлена в список. Пусто — команда будет пропущена.
- Mode Режим, в котором выполнена команда: Soil → Struct(ures) → Mesh → Water (Flow conditions) → Stage(d construction).
- Qualification Суть команды: add — добавление элементов или свойств calculate — запуск расчёта delete — удаление объекта mesh — генерация сетки modify — изменение свойств output — переход в Output save — сохранение switch — переключение между режимами
- Command Выполненная команда.
- Number Номер по порядку.
Основная работа — включение и выключение квадратиков в первой колонке. По квадратикам можно щёлкать левой клавишей мышки, можно щёлкнуть по строке и нажать Space
(пробел) или использовать клавиши C
(от check «отметить») и U
(uncheck «отменить выбор») для включения и выключения выбранных строк, соответственно. Работают стандартные сочетания клавиш:
Ctrl
+A
для выбора всех строк,- зажатый
Ctrl
для выбора нескольких строк, - зажатый
Shift
и↑
или↓
позволяет выбрать несколько строк подряд
Некоторые горячие клавиши приведены в меню Edit
Например, можно зажать Shift
, выбрать через ↑
несколько строк и затем нажать Space
для включения или выключения команд из списка.
Выделено несколько команд по созданию геосетки (geogrid
)
Нажимаем Space
— все выбранные команды деактивируются
Намного удобнее работать с фильтрами в правой части окна:
- Reduce to geometry only — оставить команды, которые относятся к геометрии (режимы Soil и Structures). Вариант отлично подходит для тех случаев, когда вы хотите повторить в Commands runner только геометрию проекта без генерации сетки и поэтапного расчёта.
В поле Advanced cleaning (Продвинутая чистка) есть несколько фильтров. Мы ставим флаговые кнопки у тех фильтров, которые хотим применить к списку:
- Useless mode switches — бесполезные переключения режимов. Программа уберёт переходы из режима в режим, которые не влияют на выполнение других команд.
- Saves — сохранения. Examine commands автоматически исключит все команды
save
. - Innocent operations — букв. «невинные операции». Это вспомогательные команды, которые не влияют на проект:
echo
,checkgeometry
,commands
и др. Рекомендуем активировать эту опцию. - Meshing — все генерации сетки
mesh
. - Keep last — сохранить последнюю команду
mesh
, то есть последний вариант сгенерированной сетки. На практике промежуточные генерации сетки не нужны, поэтому этот вариант подходит идеально. - Calculations — все команды расчёта
calculate
. Как вариант, можно исключить все команды, а потом активировать только последнюю командуcalculate
. - Calls to Output — все обращения к Output
view
.
Выбрав нужные пункты, нажимаем Apply, и программа автоматически выключит квадратики у соответствующих команд. В левом нижнем углу видно, насколько уменьшился список команд:
После нажатия кнопки Apply мы исключили 7 команда из всего списка. В больших проектах с тысячами команд подобная «фильтрация» списка может исключить сотни ненужных команд
Останется выбрать в меню File опцию Save checked… (Ctrl
+S
), сохранить отфильтрованный лог-файл и запустить его в Commands runner.
Команда import
остаётся единственной командой, с которой нужно работать вручную. Если нужно повторить проект с импортированной геометрией на другом компьютере, нам понадобится исходный файл для импорта.
Упрощение готовых проектов
В заметке о примерах использования Commands runner мы говорили о случае, когда у клиента не открывался проект из-за критической ошибки. Здесь нам помогает лог-файл data.success.p3dlog, который хранится в папке проекта.
Examine commands позволяет подгружать лог-файлы других проектов:
Поэтому перед «прогоном» лог-файла через Commands runner мы советуем почистить файл от лишних команд, иначе придётся ждать все промежуточные генерации сетки, расчёты и обращения к Output.
Кроме того, очистка команд через Examine commands поможет нам сократить общий список команд, немного уменьшив размер проекта и ускорив работу программы.
В новых версиях появляются новые команды. Иногда немного меняется синтаксис старых команд. Это может вызвать затруднения при попытке повторить список команд в разных версиях PLAXIS. Версии 2D 2019 и CE V20, 3D 2018 и CE V20 не отличаются в командах, за исключением новых опций в CE V20 (в старых версиях, очевидно, нет команд для опций новых версий).
Горячие клавиши Examine commands #
Для ускорения работы с Examine commands советуем использовать горячие клавиши.
Сочетание | Действие |
---|---|
C | Включить в список выделенные команды |
U | Выключить из списка выделенные команды |
Space | Включить/выключить выбранные команды |
Ctrl + A | Выбрать все команды в списке |
Ctrl + O | Открыть список команд (форматы p2dxlog, p3dlog, txt) |
Ctrl + S | Сохранить список отфильтрованных команд |
Esc | Закрыть Examine commands |
Ускорение выполнения команд #
Commands runner показывает выполнение всех команд. Это похоже на ускоренную перемотку: в рабочей области PLAXIS быстро меняется схема, программа переходит в другие режимы, создаёт фазы и пр. — в общем делает всё, что прописано в списке команд.
Если список команд короткий, то процесс занимает мало времени. Но у вас может быть большой список из тысяч команд в PLAXIS 3D. По мере добавления новых элементов в проект визуализация процесса будет всё больше и больше загружать оперативную память компьютера. Следовательно, выполнение списка будет затягиваться.
В большинстве случаев пользователю не нужна «анимация» процесса — его интересует конечный результат. Чтобы сэкономить время, мы можем выключить визуализацию выполнения команд.
Update visualizatuion during execution #
Основной способ — выключить опцию Update visualization during execution (Обновлять визуализацию во время выполнения). Это можно сделать в меню Options: