Шаблоны Joomla 3 тут

У элемента сцены любого типа (объект, соединение, выноска и кривая) в инспекторе есть вкладка "Actions".
Там можно редактировать список действий, применимых к данному элементу.

Редактирование производится в режиме редактирования, активация действий - в режиме управления.
Механизм действий основан на том, что pencil является приложением интерпретатором, которое может формировать команды внутри себя, принимать их из файла, системного буфера, по сети, исполнять их самостоятельно или передавать их другим приложениям, выполненным по аналогичной технологии.

У действия есть имя (которое будет видно в контекстном меню в режиме управления) и собственно исполняемая команда, в том виде, в каком она передается интерпретатору.
Если для элемента определены какие-либо действия, то его описание в файле сцены будет содержать дополнительную секцию примерно такого вида:

ActionList lines:1
terminal=self::system:xterm

 

Т.е. указывается длина списка дейстивий и затем идут сами действия по одному в строчке в формате имя=значение.

Теоретически одно действие могло бы состоять и из нескольких команд интерпретатора, но на данный момент для простоты - нет.

Формат команды интерпретатора:

<имя исполнителя>:<служебное поле>:<имя команды>:<параметры команды>

Имя исполнителя, равное local или self означает, что команда будет исполнена этим же экземпляром приложения
Если в качестве имени исполнителя указана * - команда будет отправлена на распределение диспетчеру и выполнится там, где он посчитает нужным, исходя из текущей политики.
Также может быть указано конкретное имя исполнителя (в типовых случаях может совпадать с именем хоста, на котором запущен исполнитель)
Более детально имена исполнителей, способы связи между ними и поведение интерпретатора регулируется в файле dispatcher.conf, который подключается в pencil.conf

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

Чтобы увидеть, какие команды поддерживает текущая версия pencil нужно в меню "инструменты" - "Interpreter settings" установить галочку "Show interpreter window", и в появишемся окне изучить колонку "Commands".
Если в строке фильтра указать CAD_ , то будут отобраны команды, непосредственно относящиеся к pencil.


Команды для запуска внешних приложений - system, system_o, shell, QueueExtCommands

Команда System
на данный момент порождает новый процесс с флагами poNewConsole,poNewProcessGroup,poStdErrToOutPut с видимым окном, дожидается его окончания, возвращает числовой код завершения.
параметры новому процессу передаются как-то странно, т.е. желательно исправить
Пример под Linux
self::system:ping не работает
self::system:bash открывает новый терминал с шеллом
self::system:xterm открывает два окна: новый занятый терминал и собственно xterm
self::system:xterm -e mcedit /opt/vis/kvm-001/static_text.txt - открывает в новом окне файл в текстовом редакторе

 

System_o
порождает новый процесс с флагами poUsePipes,poNoConsole,poStdErrToOutPut с видимым окном, дожидается его завершения и считывает текстовый результат.
параметры новому процессу передаются
Пример под Linux
self::system_o:ping - работает, возвращает справку по ping
self::system_o:ping www.ru - работает, но вешается, т.к. никогда не возвращает управление
self::system_o:ping -с1 www.ru - работает

через эту же команду реализовано получение данных от внешней программы (протокол exec://)

 

Shell
Работает только в Linux. реализован с помощью system_o, запускает из под себя 'bash -c "'+PB+'"'

QueueExtCommands
получает текст из файла, с http-сервера или в виде вывода исполняемой программы и передает его интерпретатору команд приложения

self::QueueExtCommands:exec://bash -c /opt/vis/111.sh
self::QueueExtCommands:file:///opt/vis/111.sh