int cc = 0x24;

cc = acutToUpper (cc);

Преобразования Системы координат

AcedTrans () функция транслирует точку или смещение от одной системы координат в другой. Требуется параметр точки, запятая, которая может интерпретироваться или как трехмерная точка или трехмерный вектор смещения. Это управляется параметром, вызвал disp, который должен быть отличный от нуля, если с запятой обращаются как вектор смещения; иначе, с запятой обращаются как точка. Оттранслированная точка или вектор возвращены в параметре результата " передача параметра по ссылке ", который, подобно запятой, имеют тип ads_point.

Параметры, которые определяют эти две системы координат, от и до, являются обоими буферами результатов. От параметра определяет систему координат, в которой запятая выражена, и к параметру определяет систему координат результата. И от и до параметр может определить систему координат следующим способом:

§  целочисленный код (restype == RTSHORT) который определяет WCS, текущий UCS, или текущий DCS (или текущей области просмотра или пространства листа).

§  имя примитива (restype == RTENAME), как возвращено одним имени примитива или выбора устанавливают функции. Это определяет ECS названного примитива. Для плоских примитивов, ECS может отличиться от WCS. Если ECS не отличается, преобразование между ECS и WCS - операция тождества.

§  трехмерный вектор вытеснения (restype == RT3DPOINT), который является другим методом определения ECS примитива. Векторы Вытеснения всегда представляются в мировых координатах; вектор вытеснения (0,0,1) определяет WCS непосредственно.

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

Следующее - описания систем координат AutoCAD, которые могут быть определены от и до параметров.

WCS

Мировая система координат. Система координат “ссылки”. Все другие системы координат определены относительно WCS, который никогда не изменяется. Значения, измеренные относительно WCS устойчивы поперек изменений{*замен*} к другим системам координат.

UCS

Система координат Пользователя. “Рабочая” система координат. Все точки прошли к AutoCAD, командует, включая возвратился от подпрограмм AutoLISP и внешних функций, - точки в текущем UCS (если пользователь не предшествует им с * в Приглашении ко вводу команды). Если Вы хотите, чтобы ваше приложение послало координаты в WCS, ECS, или DCS к AutoCAD командует, Вы должны сначала преобразовать их к UCS, вызывая acedTrans ().

ECS

Система координат Примитива. Значения Точки, возвращенные acdbEntGet () выражены в этой системе координат относительно примитива непосредственно. Такие точки бесполезны, пока они не преобразованы{*конвертированы*} в WCS, текущий UCS, или текущий DCS, согласно предназначенному использованию примитива. Наоборот, точки должны быть оттранслированы в ECS прежде, чем они написаны к базе данных посредством acdbEntMod () или acdbEntMake ().

DCS

Система координат Дисплея. Система координат, в которую объекты преобразованы прежде, чем они отображены. Начало координат DCS - точка, сохраненная в переменной ЦЕЛЕВОЙ СИСТЕМЫ AutoCAD, и ее Z ось - направление рассмотрения. Другими словами, область просмотра - всегда представление{*вид*} плана его DCS. Эти координаты могут использоваться, чтобы определить, где кое-что появляется пользователю AutoCAD. Когда от и до целочисленных кодов - 2 и 3, в любом порядке, 2 указывает, что DCS для текущей области просмотра пространства модели, и 3 указывает DCS для пространства листа (PSDCS). Когда этот код 2 используется с целым числом, закодируют другой чем 3 (или другие средства определения системы координат), принято указать DCS пространства потока (пространство листа или пространство модели), и другой параметр принят, чтобы указать систему координат в текущем пространстве.

PSDCS

DCS Пространства листа. Эта система координат может быть преобразована только к или от DCS в настоящее время активной области просмотра пространства модели. Это - по существу 2-ое преобразование, где X и координаты Y всегда масштабируются и смещены, если disp параметр - 0. Координата Z масштабируется, но никогда не оттранслирована; это может использоваться, чтобы найти коэффициент масштаба между этими двумя системами координат. PSDCS (целое число закодируют 2) может быть преобразован только в текущую область просмотра пространства модели: если от параметра равняется 3, к параметру должен равняться 2, и наоборот.

Следующий пример транслирует точку с WCS в текущий UCS.

ads_point pt, result;

struct resbuf fromrb, torb;

pt[X] = 1.0;

pt[Y] = 2.0;

pt[Z] = 3.0;

fromrb. restype = RTSHORT;

fromrb. resval. rint = 0; // WCS

torb. restype = RTSHORT;

torb. resval. rint = 1; // UCS

// disp == 0 indicates that pt is a point:

acedTrans(pt, &fromrb, &torb, FALSE, result);

Если текущий UCS вращается на 90 градусов против часовой стрелки во всем мире Z ось, запрос к acedTrans() устанавливают результат к сути (2.0, -1.0,3.0).

Однако, если acedTrans() вызван, как показано в следующем примере, результат - (-2.0,1.0,3.0).

acedTrans(pt, &torb, &fromrb, FALSE, result);

Контроль Дисплея

ObjectARX имеет несколько функций для управления дисплеем AutoCAD, включая, и текстовые и графические экраны.

Интерактивный Вывод

Основные функции вывода - acedPrompt(), который отображает сообщение на линии подсказки AutoCAD, и acutPrintf(), который отображает текст на текстовом экране. AcutPrintf() последовательность запроса функции эквивалентен функции стандартной библиотеки для C printf(). Это обеспечивается как отдельная функция, потому что на некоторых платформах стандартный C printf () заставляет сообщение вывода корежить экран графики AutoCAD. (Помните, что acdbFail() функция также отображает сообщения на текстовом экране.)

Размер строки, отображенной acedPrompt() не должен превысить длину линии подсказки графического экрана; типично это - не больше, чем 80 символов.

Размер строки, отображенной acutPrintf() не должен превысить 132 символа, потому что это - размер строкового буфера, используемого acutPrintf() функция (133 байта, с последним байтом, зарезервированным для символа пустого указателя).

AcedMenuCmd () функция обеспечивает контроль относительно дисплея графического экранного меню. AcedMenuCmd () функция активизирует один из подменю текущего меню. Требуется строковый параметр, str, который состоит из двух частей, отделенных знаком "=", в форме:

"section=submenu"

Где секция указывает секцию меню, и подменю указывает который подменю активизировать в пределах той секции.

Например, следующий функциональный запрос заставляет OSNAP подменю, определенный в текущем файле меню появляться на экране.

acedMenuCmd ("S=OSNAP");

Подобным способом, следующий функциональный запрос назначает подменю MY-BUTTONS на меню BUTTONS, и активизирует это.

acedMenuCmd ("B=MY-BUTTONS");

В Выпуске 12 и более ранних версий AutoCAD, Вы могли назначать любой вид меню для любой другой. Например, Вы могли назначать меню SCREEN для меню POP. С Выпуском 13 и более поздних версий AutoCAD, Вы можете назначать меню для других меню на платформе Windows только, если они имеют тот же самый тип. Меню POP может быть назначено только на другое меню POP, и меню SCREEN для другого меню SCREEN. Вы можете определить меню подробно, потому что Windows загружает частичные меню.

Запрос acedMenuCmd () и при принятии “P1=test. numeric” назначает меню 12 POP для меню 2 POP, при предположении, что следующие определения файла меню существуют.

*** MENUGROUP=test

*** POP12

**NUMERIC

[Numeric Menu]

[First item]

[Second item]

Следующие показы запроса, как активизировать раскрывающееся меню и затем отображают это.

AcedMenuCmd ("P1=NUMERIC");

Запрос к acedMenuCmd () назначает подменю NUMERIC на раскрывающееся меню 1 (в левом верхнем углу графического экрана).

См. Руководство Настройки AutoCAD для подробной информации относительно заказных меню.

Контроль Графических и Текстовых Экранов низкого уровня

На единственно - экранных инсталляциях AutoCAD, ObjectARX-приложение может вызывать acedGraphScr () чтобы отобразить графический экран или acedTextScr () чтобы отобразить текстовый экран. Эти функции эквивалентны AutoCAD GRAPHSCR и командам TEXTSCR или переключению Зеркально отражающейся Экранной функциональной клавиши. Функция acedTextPage () - подобно acedTextScr (), но это очищает текстовый экран перед отображением этого (поскольку команда STATUS AutoCAD делает).

AcedRedraw () функция подобна команде REDRAW AutoCAD, но это обеспечивает большее количество контроля над, что отображено: это может перерисовывать полный графический экран и также определять единственный{*отдельный*} объект, чтобы быть или повторно оттянутым или неоттянутым (blanked из). Если объект - сложный объект типа ломаной линии, или блок, acedRedraw () может тянуть{*рисовать*} (или нетянуть{*нерисовать*}) или полный объект или только его заголовок. AcedRedraw () функция может использоваться также, чтобы высвечивать или невысветить отобранные объекты.

Контроль относительно Графики Нижнего уровня и Ввода пользователя

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

AcedGrText () функциональный текст дисплеев в состоянии или областях меню, с или без высвечивания{*увеличения яркости*}. AcedGrDraw () функция тянет{*рисует*} вектор в текущей области просмотра, с контролем над цветом и высвечиванием{*увеличением яркости*}. AcedGrVecs () функция тянет{*рисует*} множественные векторы. AcedGrRead () функциональные возвращения ввод пользователя “сырья”, ли от клавиатуры или устройства управления позицией; если запрос к acedGrRead () позволяет трэкинг, функция возвращает цифровые координаты, которые могут использоваться для перемещения.

ПРЕДУПРЕЖДЕНИЕ! Поскольку эти функции зависят от кода в AutoCAD, их операция может изменяться от выпуска. Приложения, которые вызывают эти функции, не могут быть восходяще совместимы. Также, они зависят от текущей аппаратной конфигурации. В частности приложения, которые вызывают acedGrText () и acedGrRead (), вряд ли, будут работать тот же самый на всех конфигурациях, если разработчик не использует их как описано ранее, чтобы избежать аппаратно-зависимых особенностей.

Из за большого объема этот материал размещен на нескольких страницах:
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