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



         

Калибровка Таблетки


Пользователи AutoCAD с таблеткой отцифровывания могут калибровать таблетку,  используя команду TABLET. С acedTablet () функция, приложения может управлять калибровками,  устанавливая их непосредственно и сохраняя назначения калибровки для будущего использования. Функция берет два параметра, список и результат, каждый из которых - список буфера результата. Первый буфер результатов в первом списке - целочисленный код, который должен быть 0, чтобы отыскать текущую калибровку (в результате), или 1, чтобы установить калибровку согласно остающимся буферам в списке. Калибровки выражены как четыре трехмерных точки (в дополнение к коду). Первые три из них - направляющие — row1, row2, и row3 —  три строки матрицы преобразования таблетки. Четвертая точка - вектор, направление, которое является нормальным на план поверхности таблетки (выраженное в WCS).

ОБРАТИТЕ ВНИМАНИЕ На TABMODE средство управления переменной системы, установлен ли режим Tablet в На (1) или От (0). Вы можете управлять это,  используя acedSetVar().

Следующая последовательность кода отыскивает текущую калибровку таблетки, и сохраняет это в calibr2. В этом примере, пользователь использовал команду TABLET, чтобы калибровать матрицу, и режим Tablet включен.

struct resbuf *calibr1, *calibr2;

struct resbuf varbuf, rb;

// Retrieve the current calibration.

calibr1 = acutBuildList(RTSHORT, 0, RTNONE);

if (acedTablet(calibr1, &calibr2) != RTNORM) {

acdbFail("Calibration not obtainable\n");

return BAD;

}

Код, возвращенный в параметре результата, calibr2 в примере, автоматически установлен в 1. Чтобы сбрасывать калибровку к значениям, отысканным предшествующим примером, Вы могли использовать следующий код:

if (acedTablet(calibr2, &calibr1) != RTNORM) {

acdbFail("Couldn’t reset calibration\n");

return BAD;

}

rb.restype = RTSHORT;

rb.resval.rint = 1;

acedSetVar("TABMODE", &rb);

acedGetVar("TABMODE" &varbuf);

if (varbuf.resval.rint == 0) {




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