5, если Вы создали, сервисное название, удаляет это.

Вы можете использовать AcrxServiceDictionary - >, удаляют () функцию, чтобы удалить любого

Обслуживание{*служба*}, которое ваше приложение имеет буферизованный. См. распечатку для

AcrxServiceDictionary в ObjectARX Ссылке{*справочниках*}.

Приложение Примера

Следующие функции орудий приложения примера, которые называются

Когда приложение загружено и разгруженный. Его функция инициализации добавляется

Две новых команды к AutoCAD: СОЗДАЙТЕ и ВЫПОЛНИТЬ ИТЕРАЦИИ. Это также инициализирует Новый класс AsdkMyClass и прибавляет это к ObjectARX иерархии с

AcrxBuildClassHierarchy () функция (. AsdkMyClass описан в “ Пример Заказного Объектного Класса ” на странице 338.)

// Функция инициализации, называемая от acrxEntryPoint ()

// Функция в течение kInitAppMsg случая{*регистра*} используется, чтобы прибавить команды

// К команде располагают в стеке и прибавлять классы к ACRX классу

// Иерархия.

//

void

initApp()

{

acedRegCmds->addCommand("ASDK_DICTIONARY_COMMANDS",

"ASDK_CREATE", "CREATE", ACRX_CMD_MODAL,

createDictionary);

acedRegCmds->addCommand("ASDK_DICTIONARY_COMMANDS",

"ASDK_ITERATE", "ITERATE", ACRX_CMD_MODAL, iterateDictionary);

AsdkMyClass::rxInit();

acrxBuildClassHierarchy();

}

// Функция очистки, называемая от acrxEntryPoint ()

// Функция в течение kUnloadAppMsg случая{*регистра*} удаляет это приложение

// Команда сходит с команды, располагают в стеке, и удаляет это приложение

НЕ нашли? Не то? Что вы ищете?

// Заказные классы от ACRX иерархии классов во время выполнения.

//

void

unloadApp()

{

acedRegCmds->removeGroup("ASDK_DICTIONARY_COMMANDS");

// Удалить AsdkMyClass класс с ACRX времени выполнения

// Иерархия классов. Если это сделано, в то время как база данных

// Все еще активный, это должно вызвать все объекты{*цели*} класса

// AsdkMyClass, чтобы быть превращен в proxies.

//

DeleteAcRxClass (AsdkMyClass:: desc ());

}

Регистрация Новых Команд

Этот раздел описывает добавляющиеся новые команды, использующие команду AcEdсМеханизм регистрации. Для информации относительно добавления нового использования команд Функции acedDefun() и acedRegFunc (), см. главу 20, “ ObjectARX Глобальные Сервисные Функции. ” Для информации относительно добавления нового использования команд ALisp функция defun, см. Руководство Настройки AutoCAD.

Стек Команды

Команды AutoCAD сохранены в группах в стеке команды, который

Определенный AcEdCommandStack классом. Один образец стека команды

Создан в сеанс AutoCAD. Этот стек состоит из заказных команд

То, что Вы определили. AcedRegCmds () макрокоманда дает Вам, обращаются к

Стек команды.

Когда Вы прибавляете команду, Вы также назначаете это название{*имя*} группы. Хорошая политика{*полис*}

Должен использовать ваш буферизованный префикс разработчика для названия{*имени*} группы, чтобы избежать названия{*имени*}

Столкновения с другими командами. Команда называет в пределах данной группы

Должен быть уникален, и названия{*имена*} группы должны быть уникальны. Однако, множественные приложения

Может прибавлять команду того же самого названия{*имени*}, потому что группа называет Делает команды однозначными.

ОБРАТИТЕ ВНИМАНИЕ, что автоплата поддерживает схему регистрации разработчика предотвратить Namespace находится в противоречии между различными приложениями. Каждый буферизованный разработчик Выбирает одни или более буферизованные символы разработчика (RDS), чтобы использовать исключительно. Буферизованный Символы разработчика - одно из требований “ Сформированные с ObjectARX ” программа эмблемы. Для получения дополнительной информации, идите интерактивно к http://www.veritest.com/autodesk/main(f).htm.

Вы обычно прибавляете команды по одному с AcEdCommandStack:: addCommand () функция, и Вы удаляете команды Группа с AcEdCommandStack:: removeGroup () функция. Вы можете также Используйте AcEdCommandStack:: removeCmd () функция, чтобы удалить команды По одному. Как часть его очистки перед выходом, ваше приложение нуждается к Удалите любые команды это буферизованный.

Сигнатура для addCommand () функция

Acad::ErrorStatus

addCommand(

const char* cmdGroupName,

const char* cmdGlobalName,

const char* cmdLocalName,

Adesk::Int32 commandFlags,

AcRxFunctionPtr functionAddr,

AcEdUIContext *UIContext=NULL,

int fcode=-1,

HINSTANCE hResourceHandle=NULL);

CmdGroupName

Представление ASCII группы, чтобы прибавить команду к.

Если группа не существует, это создано прежде, чем команда добавлена.

CmdGlobalName

Представление ASCII команды называет, чтобы добавиться. Это название{*имя*} представляет глобальное или неоттранслированное название{*имя*} (см. “ Глобальная переменная против Местных Названий{*имен*} Команды ” на странице 42).

CmdLocalName

Представление ASCII команды называет, чтобы добавиться. Это название{*имя*} представляет местное или оттранслированное название{*имя*}.

CommandFlags

Флажки, связанные с командой. Возможные значения - ACRX_CMD_TRANSPARENT, ACRX_CMD_MODAL, ACRX_CMD_USEPICKSET, и ACRX_CMD_REDRAW (см. “ Прозрачный против Модальных Команд ” на странице 42).

FunctionAddr

Адрес функции, которая будет выполнена, когда эта команда вызвана в соответствии с AutoCAD.

UiContext

Входной указатель на AcEdUIContext класс повторного вызова.

Fcode

Введите целочисленный код, назначенный на команду.

ПРИМЕЧАНИЕ, которое строго рекомендует, чтобы все имена команд имели Ваш зарегистрированный префикс разработчика с четырьмя символами, чтобы избежать возможных конфликтов с командами в других приложениях. Например, MOVE команда разработчика с префиксом ASDK должна быть ASDKMOVE.

Использование вашего зарегистрированного префикса разработчика также рекомендуется для имен группы.

Сигнатура для removeCmd()

virtual Acad::ErrorStatus

AcEdCommandStack::removeCmd

(const char* cmdGroupName,

const char* cmdGlobalName) = 0;

Сигнатура для removeGroup()

virtual Acad::ErrorStatus

AcEdCommandStack::removeGroup

(const char* groupName);

Порядок поиска

Когда команда вызвана, стек команды обыскан названием{*именем*} группы, затем названием{*именем*} команды в пределах группы. Вообще, первая группа зарегистрировалась, будет первый обысканный, но Вы не можете всегда предсказывать, каков этот заказ{*порядок*} будет. Используйте AcEdCommandStack:: popGroupToTop () функция, чтобы определить, что специфическая группа должна быть обыскана сначала. На уровне пользователей, опция Group команды ARX позволяет пользователю определять которую группу искать сначала.

Глобальная переменная против Местных Названий Команды

Когда Вы прибавляете команду к AutoCAD, Вы должны определить, и глобальное название{*имя*}, которое может использоваться на любом языке и ограниченном названии{*имени*}, которое является оттранслированной версией названия{*имени*} команды, которое нужно использовать в версии иностранного языка AutoCAD. Если Вы не должны транслировать название{*имя*} команды в местный язык, то же самое название{*имя*} может использоваться, и для глобальной переменной и местных названий{*имен*}.

Прозрачный против Модальных Команд

Команда может быть или прозрачна или модальная. Прозрачная команда может быть вызвана, когда пользователь запрашивается относительно ввода. Модальная команда может быть вызвана только, когда AutoCAD переносит приглашение ко вводу команды и никакие другие команды, или программы в настоящее время активны. CommandFlags параметр к AcEdCommandStack:: addCommand () функция определяет ли

Новая команда - модальный (ACRX_CMD_MODAL) или прозрачный (ACRX_CMD_TRANSPARENT). CommandFlags параметр также определяет другие опции для команды. См. AcEdCommandStack в ObjectARX справочниках. Прозрачные команды могут быть вложены, только один уровень (то есть основная команда вызван, который вызывает одну прозрачную команду).

Если Вы создаете множественные команды, которые работают на общем{*обычном*} наборе глобальных объектов рассматривают, должны ли Вы делать их модальными так, чтобы они не Вмешайтесь друг с другом. Если такие столкновения - не проблема, делая новые команды прозрачные результаты в большей гибкости использования.

Загрузка ObjectARX Приложения

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

    Обеспечивают приложение особенностями, которые позволяют этому быть запросом, загруженным в соответствии с AutoCAD. Эти особенности включают специфические для приложения входы в Windows NT (или Windows ® 95) системный реестр. См. “ Загрузка Запроса ” на странице 45. Определяют приложение в начальном файле модуля, acad. rx. Этот файл содержит текст ASCII с именами всех программ AutoCAD, должен загрузиться, когда это начато. Каждая строка в файле содержит название программы (с путем, если файл не в каталоге на пути поиска файлов библиотеки AutoCAD). Acad. rx файл должен также быть в каталоге на пути поиска файлов AutoCAD. Делают прикладной запрос загрузки от другого приложения ObjectARX, используя AcRxDynamicLinker:: loadModule (). Используют диалоговое окно APPLOAD, определенное в премии AutoCAD, программируют loadapp. arx. Используют arxload () функция от АвтоЛисп. Используют acedArxLoad () функция от ObjectARX. Вводят команду ARX в командную строку AutoCAD и используют опцию Load.

Путь поиска файлов

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

Путь библиотеки AutoCAD включает следующие каталоги в показанном порядке:

текущий каталог. каталог, который содержит файл текущего рисунка. каталоги, указанные путем поддержки (см. Руководство Настройки AutoCAD). каталог, который содержит программные файлы AutoCAD.

Распечатка Загруженных ObjectARX Приложений

Чтобы видеть названия всех программ ObjectARX, в настоящее время загруженных, используйте опцию команды ARX. Для получения дополнительной информации, см. “ ARX Команду ” на странице 53. Диалоговое окно APPLOAD (определенный в премии AutoCAD программирует loadapp. arx) также перечисляет названия{*имена*} программ ObjectARX, в настоящее время загруженных.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132