Примитивы чертежей AutoCAD
|
|||||
Пример создания класса для работы с примитивами AutoCAD
Сейчас мы попробуем создать класс объекта, который позволит нам задавать параметры и получать значения свойств отрезка. Создайте VBA проект, добавте в него модуль класса. Задайте этому модулю класса имя "imaLine". Добавим в класс два свойства Начальную точку (StartPoint) и Конечную точку (EndPoint). Для этого опишем две переменные в разделе General Declarations модуля класса и добавим соответствующие функции:
Ну а теперь давйте
придумаем, зачем намэто все было нужно и как это можно использовать.
Теперь, если Вы запустите процедуру NotARealLine и укажете две точки, то будет создан объект objLine как экземпляр класса imaLine, его свойствам будут присвоены указанные Вами точки, Х координаты которых будут напечатаны в окне Immediate. "Ну и что с того?" - спросите Вы. И правильно спросите. Пока ничего. Надо еще доработать наш класс. Добавим в него свойство Lenght, определяющее длину линии. Это будет свойство "Только для чтения", поэтому процедура Property Let не нужна. Чтобы создать свойство Lenght добавте в модуль класса следующий код:
Подправим наш код в модуле ThisDrawing и опять запустим процедуру NotARealLine
Теперь наш класс не только занимает место на диске в виде программного кода, но и выполняет полезную работу. Вычисляет длину между указанными точками. А представьте, ведь в этот класс можно добавить, например, метод DrawLine (Отрисовать линию). Давайте попробуем. Добавьте в модуль класса следующий код:
Снова подправим наш код в модуле ThisDrawing и опять запустим процедуру NotARealLine
Теперь мы не только получаем информацию о длине нашей линии, но и отрисовываем ее
А можно пойти и дальше, создать свойства MidPoint (Средняя точка), LineType (Тип линии, задающий собственно Тип линии, ее толщину и цвет). И это далеко не все, что можно придумать. Можно создать класс Кольцевой сектор, со всевозможными свойствами типа Радиуса, Площадь, Периметр. И, естественно, с методом DrawSector... Как Вам простор для деятельности?
|
|||||
Выбор объектовПроцедура сохранения всех объектов с заданного слоя в отдельном чертеже.
Работа с SelectionSet (Набор объектов)
- Добавление объектов
в набор путем указания мышью
Проверка, есть ли в заданной точке текстовый объект
Перед запуском процедуры создайте в текущем чертеже текстовый объект в точке X = -1.75, Y = 1.063, Z = 0. Функция вернет содержимое текстового объекта.
Получение набора объектов, пересекающихся с выбранной линией
|