ObjectARX, AutoCAD. Среда программирования библиотеки C++



         

Общий Доступ - часть 2


ОБРАТИТЕ ВНИМАНИЕ На acedCommand () и acedCmd () функции могут вызывать команду SAVE ИЛИ SAVEAS AutoCAD. Когда они делают так, AutoLISP выпускает kSaveMsg сообщение к всем другим ObjectARX-приложениям, в настоящее время загруженным, но не к приложению, которое вызвало SAVE. Сопоставимый код послан, когда эти функции вызывают NEW, OPEN, END, или QUIT от приложения.

Следующая типовая функция показывает несколько, вызывает к acedCommand ().

int docmd()

{

ads_point p1;

ads_real rad;

if (acedCommand(RTSTR, "circle", RTSTR, "0,0", RTSTR, "3,3", 0) != RTNORM)

return BAD;

if (acedCommand(RTSTR, "setvar", RTSTR, "thickness", RTSHORT, 1, 0) != RTNORM)

return BAD;

p1[X] = 1.0; p1[Y] = 1.0; p1[Z] = 3.0;

rad = 4.5;

if (acedCommand(RTSTR, "circle", RT3DPOINT, p1, RTREAL, rad, 0) != RTNORM)

return BAD;

return GOOD;

}

При условии, что AutoCAD - в Приглашении ко вводу команды, когда эта функция вызвана{*названа*}, AutoCAD исполняет следующие действия:

1 Рисует круг, который проходит до (3.0,3.0) и чей центр - в (0.0,0.0).

2 Изменяют текущую толщину к 1.0. Обратите внимание, что первый запрос к acedCommand () передает точки как строки, в то время как секунда передает короткое целое число. Любой метод возможен.

3 Рисует другой (вытесненный) круг, чей центр - в (1.0,1.0,3.0) и чей радиус - 4.5. Этот последний{*прошлый*} запрос к acedCommand () использует трехмерную точку и реальный (с двойной точностью с плавающей точкой) значение. Обратите внимание, что точки пропускает ссылка, потому что ads_point - тип массива.




Содержание  Назад  Вперед