home   |   А-Я   |   A-Z   |   меню


Листинг 6.18. Обнуление переменных

GearsForm.Free; // освобождаем объект формы

Application.Handle := 0; // обнуляем дескриптор главного окна

doc3.SetActive; // делаем активным окно текущей сборки

doc3 := nil; // обнуляем указатель на документ

kompas := nil; // и на КОМПАС

В листинге 6.17 одним из методов интерфейса ksRequestInfo3D объекту этого интерфейса передается адрес функции обратного вызова SELECTCALLBACKPROC. Эту функцию система вызывает из библиотеки каждый раз, когда пользователь указывает какой-либо объект в окне документа или фиксирует точку. В общем случае внутри этой функции происходит фильтрация указанных пользователем объектов и реализация определенных действий по результатам фильтрации. Например, при вставке болта из библиотеки стандартных изделий вы сначала указываете цилиндрическую поверхность, куда вставится болт (то есть отверстие под болт), а потом плоскую грань, на которую установится шапочка болта. Причем система точно знает, что именно вы указали (сначала цилиндрическую грань, затем плоскую) и какие сопряжения в зависимости от заданного трехмерного элемента накладывать на библиотечный элемент. Это и есть пример действия функции обратного вызова.

В нашей программе мы не будем реализовывать фильтр выбранных объектов, то есть при вставке модели колеса в документ нужно будет просто указать точку в трехмерном пространстве сборки. По этой причине функция обратного вызова будет чрезвычайно проста (листинг 6.19).


Листинг 6.17. Вставка модели колеса в сборку фантомом | КОМПАС-3D V10 на 100 % | Листинг 6.19. Функция обратного вызова