Пользователи 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) {