Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
274
Добавлен:
29.05.2015
Размер:
3.15 Mб
Скачать

(princ "\nДля вызова встроенной команды ШТРИХ введите ВСТРШТРИХ.\n") (command "КШТРИХ")

(princ)

)

(defun C:ВСТРШТРИХ ( ) (command ".ШТРИХ") (princ)

)

(defun-q S::STARTUP ( ) (command "нетком" "штрих")

(princ "\nПереопределение ШТРИХ на КШТРИХ!\n")

)

Перед завершением инициализации чертежа с помощью функции defun задаются новые описания команд ШТРИХ и ВСТРШТРИХ. После завершения инициализации чертежа вызывается функция S::STARTUP, которая отключает стандартное описание команды ШТРИХ.

ПРИМЕЧАНИЕ Для того чтобы функция S::STARTUP не переопределяла функции с таким же именем из других файлов, ее следует определить с помощью функции defun-q, а не defun.

Так как функция с именем S::STARTUP может быть определена в различных файлах (acad.lsp, acaddoc.lsp, файлах MNL или любых других файлах AutoLISP), то определенную ранее функцию S::STARTUP можно переопределить. В следующем примере приводится способ определения данной функции, позволяющий избежать подобных ситуаций.

(defun-q MYSTARTUP ( )

... автоматически выполняемая функция ...

)

(setq S::STARTUP (append S::STARTUP MYSTARTUP))

В результате такого определения код предыдущей загруженной функции S::STARTUP добавляется к коду новой функции S::STARTUP. Этот способ определения можно использовать независимо от ранее существовавшей функции S::STARTUP.

ObjectARX

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

216 | Глава 7 Введение в интерфейсы программирования

Коротко об ObjectARX

ObjectARX® (AutoCAD Runtime Extension) представляет собой среду программирования, позволяющую разрабатывать компилированные приложения AutoCAD. Среда программирования ObjectARX включает ряд библиотек динамической компоновки (DLL), которые работают в едином адресном пространстве с AutoCAD и взаимодействуют непосредственно с внутренними структурами данных и кодами AutoCAD. Эти библиотеки используют преимущества открытой архитектуры AutoCAD, и расширяют классы объектов и возможности AutoCAD благодяра прямому доступу к структурам баз данных AutoCAD, графической системе и ядру геометрических построений. Кроме того, с помощью библиотек DLL можно создавать новые команды, которые будут использоваться аналогично встроенным командам

AutoCAD.

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

Описание интерфейса программирования ObjectARX приводится в документации Руководство для разработчика ObjectARX. Это руководство является частью набора ObjectARX Software Development Kit, который можно загрузить на сайте компании Autodesk, в разделе "Development Tools". Для получения дополнительной информации выберите "Дополнительные ресурсы" "Документация для разработчиков" в меню "Справка", а затем выберите ObjectARX.

Работа с приложениями ObjectARX

Для загрузки приложения ObjectARX служит параметр "Загрузить" команды ARX. После загрузки приложения все определенные в нем команды можно вызывать из командной строки AutoCAD.

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

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

(arxload имя_файла [при_ошибке])

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

ObjectARX | 217

при_ошибке является необязательным и обычно не используется при загрузке приложений ObjectARX из командной строки. В следующем примере производится загрузка приложения ObjectARX myapp.arx.

(arxload "myapp")

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

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

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

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

(arxunload "myapp")

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

См. также:

“Коротко об организации файлов” на стр.4

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

ObjectARX

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

AutoCAD.

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

218 | Глава 7 Введение в интерфейсы программирования

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

myapp1

другие_приложения

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

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

Многие команды AutoCAD, содержащиеся в arx-модулях, можно загружать автоматически. Дополнительную информацию о “Коротко об автоматической загрузке процедур AutoLISP ” на стр.211 и функции autoarxload см. в руководстве Справка по AutoLISP (в меню AutoCAD "Справка" выберите "Дополнительные ресурсы" "Документация для разработчика".

См. также:

“Коротко об автоматической загрузке процедур AutoLISP ” на стр.211

.NET

В среде Microsoft .NET Framework с помощью таких языков программирования, как VB .NET и C#, можно создавать приложения, взаимодействующие с AutoCAD.

Обзор .NET

.NET Framework - это независимая от языка среда программирования, разработанная корпорацией Microsoft. Кроме среды выполнения программы в Framework существуют библиотеки классов, которые упрощают разработку безопасных взаимодействующих с другими приложений Windows и приложений на основе Интернет-технологий.

AutoCAD поддерживает разработку приложений .NET с помощью управляемых интерфейсных классов ObjectARX. Полный список доступных управляемых интерфейсных классов см. в ObjectARX SDK в разделах “AutoCAD Managed Class

.NET | 219

Reference” (Справочное руководство по управляемым классам AutoCAD) и “ObjectARX Managed Wrapper Classes” (Управляемые интерфейсные классы ObjectARX) документации Руководство разработчика ObjectARX. Дополнительную информацию о .NET Framework см. в документации Microsoft.

Управляемые интерфейсные классы поставляются для большинства пакетов ObjectARX SDK, что позволяет создавать приложения на любом языке, поддерживаемом .NET Framework, включая VB .NET и C#. Управляемые классы выполняют функцию баз данных и позволяют создавать приложения, которые могут читать и сохранять файлы чертежей в формате DWG. Они также открывают доступ к элементам пользовательского интерфейса AutoCAD, включая командную строку и функциональные диалоговые окна, редактору AutoCAD, а также к компонентам печати и публикации.

Загрузка управляемых приложений в

AutoCAD

Чтобы загрузить управляемое приложение, в командной строке AutoCAD введите NETLOAD и перейдите к требуемому файлу DLL. Управляемые приложения выгружаются только при выходе из программы AutoCAD.

220 | Глава 7 Введение в интерфейсы программирования

Соседние файлы в папке Справочные материалы