Загрузка приложений ObjectARX

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

Имеется возможность загрузки приложения ObjectARX, используя один из следующих подходов:

Прим.: Начиная с продуктов на базе AutoCAD 2014, пользовательские приложения должны работать в безопасном режиме; в этом случае системной переменной SECURELOAD установлено значение 1 или 2. В безопасном режиме работа программы будет ограничена загрузкой и выполнением файлов, содержащих код из доверенных источников. Пути к доверенным источникам определяются системной переменной TRUSTEDPATHS.

Автоматическая загрузка приложений ObjectARX

Прим.: Для размещения некоторых приложений ObjectARX требуется большой объем системной памяти. Поэтому после завершения использования каждого подобного приложения его можно выгрузить из памяти с помощью параметра "Выгрузить" команды ARX или ЗАГПРИЛ.

Некоторые приложения ObjectARX используют файл acad.rx, в котором содержится список файлов приложения ObjectARX, автоматически загружаемых при запуске AutoCAD.

Для создания и редактирования этого файла можно использовать любой текстовый редактор или текстовый процессор, который сохраняет тексты в формате ASCII. При необходимости этот файл можно изменять, удаляя неиспользуемые или добавляя нужные имена ObjectARX-приложений. Кроме того, перечень приложений для автоматической загрузки можно выбрать с помощью параметра ЗАГПРИЛ. В последнем случае редактирование файлов не требуется.

Так как в программных продуктах на основе AutoCAD поиск файла acad.rx производится в порядке, заданном в стандартных библиотечных путях, в каждой папке с чертежами можно хранить свой файл acad.rx. Это позволяет загружать требуемый набор ObjectARX приложений для различных типов чертежей. Пусть, например, трехмерные чертежи хранятся в папке с именем AcadJobs/3d_dwgs. Если эта папка установлена текущей, в нее можно скопировать файл acad.rx и внести в него следующие изменения:

myapp1
otherapp

Если поместить новый файл acad.rx в папку AcadJobs/3d_dwgs, задать эту папку в качестве текущей и запустить программу, указанные приложения ObjectARX загружаются и становятся доступными из командной строки AutoCAD. Поскольку исходный файл acad.rx остается в папке программных файлов AutoCAD, файл по умолчанию acad.rx будет загружен при запуске программы из другой папки, в которой отсутствует файл acad.rx.

С помощью функции arxload приложения ObjectARX можно загружать из MNL-файлов. Это позволяет при загрузке файла меню также загружать все необходимые ObjectARX-приложения, которые должны вызываться из данного меню.

Загрузка приложения ObjectARX с помощью AutoLISP

Синтаксис функции arxload во многом идентичен синтаксису функции load, используемой для работы с AutoLISP-файлами. При успешной загрузке приложения ObjectARX функция arxload возвращает имя программы. Вызов функции arxload имеет следующий синтаксис:

(arxload filename [onfailure])

Функция arxload имеет два аргумента имя_файла и при_ошибке. Как и у функции load, аргумент имя_файла является обязательным и должен представлять собой полный путь и имя файла загружаемого приложения ObjectARX. Аргумент при_ошибке является необязательным и при загрузке приложений ObjectARX из командной строки, как правило, опускается. В следующем примере производится загрузка приложения ObjectARX myapp.arx.

(arxload "myapp")

Как и в случае с файлами AutoLISP, программа производит поиск указанного файла по библиотечному пути поиска. Для загрузки файла, находящегося вне папок, указанных в библиотечном пути, требуется задание полного пути к нему.

Прим.: Для разделения имен папок при вводе пути следует использовать одну прямую косую черту (/) или две обратных косых черты (\\). Это связано с тем, что в AutoLISP символ обратной косой черты (\\) имеет специальное назначение.

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

Для выгрузки приложения с помощью AutoLISP служит функция arxunload. На следующем примере можно посмотреть, как производится выгрузка приложения myapp.

(arxunload "myapp")

Использование функции arxunload приводит к выгрузке из памяти не только приложения ObjectARX, но и определенных в нем команд.