В проектных организациях для выполнения чертежных работ часто используется
пакет AutoCAD. Этот пакет позволяет создавать сложные чертежи из
простейших элементов, называемых примитивами. Наиболее часто
используемыми примитивами являются отрезки, точки, окружности,
полилинии, текст, штриховка. Всего в пакете AutoCAD версии 14
насчитывается более полусотни различных примитивов.
Пример чертежа участка плана трассы, выполненного при помощи AutoCAD
Действия над чертежом выполняются при помощи команд. Команды могут быть введены одним из следующих способов:
· выбором элемента меню;
· выбором пиктограммы на панели инструментов;
· вводом команды в командной строке.
Для обеспечения удобства создания чертежей AutoCAD позволяет настраивать параметры:
· Единицы чертежа (units) определяют, в каких единицах измерения создается чертеж (футы и дюймы, миллиметры, мили и т. д.).
· Масштаб (scale) определяет размер одной единицы чертежа при выводе на бумагу.
· Сетка (grid) представляет собой массив точек для визуализации единиц чертежа.
· Границы (limits) определяют область черчения.
· Привязка (snap) позволяет позиционировать точки непосредственно на сетке или на других примитивах чертежа.
AutoCAD имеет множество инструментов для ввода данных. Один из наболее часто используемых методов – указание координат. Все чертежи привязаны к невидимой сетке, называемой координатной системой, с горизонтальной осью X и вертикальной осью Y. Одна единица в координатной системе представляет одну единицу чертежа (дюйм, миллиметр, миля и т. д.). Во время рисования можно непосредственно печатать координаты для указания положения точек.
Относительными координатами называются приращения координат X и Y относительно последней введенной точки. Имеются также полярные координаты, определяемые расстоянием и углом поворота относительно последней введенной точки.
AutoCAD имеет фиксированную систему координат, называемую мировой (World Coordinate System WCS), и подвижную систему координат, называемую пользовательской (User Coordinate System UCS). При непосредственном вводе координат необходимо указывать, к какой системе они относятся.
Каждый примитив AutoCAD имеет набор параметров, определяющих вид и положение примитива на экране дисплея и на бумаге. Эти параметры называются свойствами (properties). Далее перечислены свойства, общие для всех примитивов:
· тип линии (linetype). Он определяет, какой стиль линий будет использоваться при прорисовке примитива. Имеется множество различных стилей линий, таках, как сплошная, пунктирная, штрихпунктирная;
· цвет (color). AutoCAD может поддерживать до 256 цветов;
· слой (layer). Слой в AutroCAD является эквивалентом прозрачных перекрывающихся пленок с нанесенными на них элементами рисунка. Использование слоев обеспечивает эффективный способ организации чертежа в виде логических групп. Каждый слой имеет уникальное имя и ассоциирован с цветом и типом линии, что позволяет создавать чертежи в едином стиле, принятом в проектной организации. Послойная структура чертежа обеспечивает контроль над видом рисунка. Слой или группа слоев могут быть выключены для того, чтобы скрыть не нужные в данный момент детали, а потом включены для окончательного вывода чертежа на бумагу.
В процессе создания рисунка возникает необходимость в увеличении части чертежа для детальной проработки либо, наоборот, потребность видеть весь рисунок. Это выполняется при помощи команд зуммирования.
После создания примитивов часто возникает необходимость их модификации. AutoCAD имеет ряд средств для редактирования рисунка. Наиболее часто используемыми операциями над элементами чертежа являются команды: перенести, копировать, удалить, повернуть, выровнять.
Далее приводятся наиболее часто используемые команды AutoCAD.
Создание отрезка:
· команда line;
· элемент меню Draw–Line;
· пиктограмма .
AutoCAD запрашивает начальную и конечную точки отрезка, рисует отрезок и продолжает запрашивать точки до тех пор, пока не будет нажата клавиша <Enter>.
Создание полилинии (полилиния представляет собой единый примитив, состоящий из прямых или круговых сегментов):
· команда pline;
· элемент меню Draw–Polyline;
· пиктограмма .
Создание окружности:
· команда circle;
· элемент меню Draw–Circle;
· пиктограмма .
AutoCAD запрашивает центр окружности, а затем ее диаметр. Имеется возможность создавать окружности по двум точкам и диаметру или по трем точкам.
Создание текста:
· команда dtext;
· элемент меню Draw–Text–Single line.
AutoCAD может создавать строки текста, используя множество шрифтов и наборов символов. Строки текста могут иметь различные высоту и ориентацию, могут быть сжаты, растянуты, наклонены или выровнены относительно других элементов чертежа.
Описываемые далее команды редактирования производят действия над выбранными объектами. Выбор объектов осуществляется путем щелчка левой кнопкой мыши на объекте или при помощи рамки. Причем, если рамка задается слева направо, то выбираются только те объекты, которые полностью попали внутрь рамки. Если рамка задается справа налево, то выбираются все объекты, хотя бы частично попавшие в рамку. Признаком окончания выбора объектов является нажатие клавиши <Enter> либо щелчок правой кнопкой мыши.
Удаление объектов:
· команда Erase;
· элемент меню Modify–Erase;
· пиктограмма .
Программа просит выбрать объекты, а затем удаляет их из чертежа.
Копирование объектов:
· команда copy;
· элемент меню Modify–Copy;
· пиктограмма .
Программа просит выбрать объекты, базовую и ссылочную точки. Затем выбранные объекты копируются таким образом, что базовая точка совмещается со ссылочной. В результате получается копия выбранных оригинальных объектов.
Перемещение объектов:
· команда move;
· элемент меню Modify–Move;
· пиктограмма .
Команда работает анологично предыдущей за исключением того, что оригинальные объекты удаляются из чертежа.
Вращение объектов:
· команда rotate;
· элемент меню Modify–Rotate;
· пиктограмма .
Программа просит выбрать объекты, базовую точку и угол поворота. В результате выполнения команды выбранные объекты поворачиваются относительно базовой точки на заданный угол.
Смещение объектов:
· команда offset;
· элемент меню Modify–Offset;
· пиктограмма .
Программа просит задать величину смещения, указать объект и сторону, в которую следует его сместить. В результате получается копия оригинального объекта, смещенная на заданную величину.
AutoCAD имеет широкий набор функций, которые можно вызывать из других программ. Это обстоятельство в значительной мере расширяет возможности пакета и способствует его широкому распространению.
Как правило, все современные программные продукты имеют средства межпрограммного взаимодействия, основанные на механизме связывания и внедрения объектов, – OLE (Objects Linking and Embedding). Одной из разновидностей OLE является интерфейс ActiveX, реализованный в AutoCAD. Для понимания излагаемого материала необходимо владеть языком программирования Бейсик, уметь создавать, отлаживать и выполнять макросы, а также понимать сущность задач, решаемых при помощи AutoCAD.
ActiveX – это программный интерфейс, который позволяет иметь доступ из одного приложения к объектам, расположенным в другом приложении. В частности, можно обращаться к методам и свойствам этих объектов, но не к их непосредственным данным. Это можно сделать, даже не зная, на каком языке программирования была написана программа, с объектами которой производится действие. Если ваш компьютер подключен к сети, OLE позволит иметь доступ к объектам приложений, находящихся на других, объединенных сетью, компьютерах точно так же, как если бы эти приложения работали на вашей собственной машине.
OLE снимает барьер между различными программными и аппаратными платформами. Значение, которое придается сегодня внедрению интерфейса OLE, трудно переоценить. Фирма Microsoft извещает о том, что на получение логотипа «MS Windows Compatible» будут сертифицированы только те приложения, которые имеют средства работы с OLE.
Приложения, использующие OLE, разделяются на две категории: клиенты и серверы. OLE-серверы содержат функции, которые могут быть вызваны OLE-клиентами. Другими словами, приложение, которое «держит» объект, называется сервером, а приложение, которое обращается к объектам сервера, называется клиентом. Классическим примером взаимодействия через ActiveX являются Microsoft Word и Excel. Оба эти приложения могут быть как серверами, так и клиентами в конкретном сеансе OLE-сессии.
AutoCAD также является полноценным OLE-сервером, обеспечивающим программный интерфейс к большинству специфических функций пакета для работы с примитивами. Понимание этого интерфейса позволяет контролировать работу всего комплекса посредством ActiveX, этого сложного, но чрезвычайно перспективного механизма.
Пример использования ActiveX. В данном примере показывается, каким образом производится доступ к объекту, расположенному в Microsoft Word, из Excel при помощи OLE. Пример иллюстрирует два ключевых момента:
· установление связи с объектом OLE;
· доступ к свойствам и методам внедренного объекта.
Для выполнения примера следует одновременно запустить Word и Excel, а затем набрать в Excel текст следующего макроса:
Sub HelloWord()
Dim Word As Object
Set Word = CreateObject("Word.Basic")
Word.Insert ("Привет")
End Sub
Далее следует запустить макрос. В текущей позиции курсора в документ Word будет вставлено слово «Привет».
В этом примере функция CreateObject устанавливает связь с Word. Объект Basic находится в приложении Word. Строка, передаваемая функции CreateObject, называется Program ID. В нашем случае Word.Basic – это Program ID для ActiveX-сервера Word, зарегистрированного в системе.
Другой момент, на который следует обратить внимание, – это вызов метода Insert. Insert – это не функция Excel, это не часть операционной системы, а часть Word, к которой вы обращаетесь непосредственно из Excel благодаря ActiveX.
В рассмотренном примере Word играет роль сервера, так как он «держит» объект Basic, а Excel — роль клиента, так как он вызывает метод Insert объекта Basic, расположенного внутри приложения Word.
Точно таким же образом можно осуществлять доступ к объектам и функциям AutoCAD.
В
рамках данной работы рассматривается небольшой макрос, подписывающий
вершины углов на чертеже плана трассы. Далее приведен исходный текст
программы.
1 Public Sub Mark() 2 Dim ACAD As Object, Doc As Object, MS As Object 3 Dim Util As Object 4 Dim S As String 5 Dim R, Beta, T, K, B, D As Double 6 Dim Pnt1, Pnt2 As Variant 7 Dim P1(0 To 2) As Double, P2(0 To 2) As Double 8 Dim P3(0 To 2) As Double 9 Set ACAD = GetObject(, "AutoCAD.Application") 10 Set Doc = ACAD.ActiveDocument 11 Set Util = Doc.Utility 12 S = Util.GetString(1, _ 13 "Введите величину угла поворота: ") 14 Beta = Val(S) 15 S = Util.GetString(1, "Введите радиус: ") 16 R = Val(S) 17 Pnt1 = Util.GetPoint(, "Укажите вершину ") 18 Pnt2 = Util.GetPoint(Pnt1, _ 19 "Укажите место надписи ") 20 Set MS = Doc.ModelSpace 21 P1(0) = Pnt1(0) 22 P1(1) = Pnt1(1) 23 P1(2) = Pnt1(2) 24 P2(0) = Pnt2(0) 25 P2(1) = Pnt2(1) 26 P2(2) = Pnt2(2) 27 P3(0) = P2(0) + 80 28 P3(1) = P2(1) 29 P3(2) = P2(2) 30 T = R * Tan(Beta * 3.14 / (180 * 2)) 31 K = 3.14 * R * Beta / 180 32 B = R * (1 / Cos(Beta * 3.14 / (180 * 2)) - 1) 33 D = 2 * T – K 34 MS.AddLine P1, P2 35 MS.AddLine P2, P3 36 P2(1) = P2(1) + 1 37 S = "У=" & CStr(Beta) & ",R=" & CStr(R) & _ 38 ",T=" & CStr(T) & _ 39 ",K=" & CStr(K) & ",Б=" & CStr(B) & _ 40 ",Д=" & CStr(D) 41 MS.AddText S, P2, 2.5 42 End Sub
Программа запрашивает величину угла поворота и радиуса кривой, затем рассчитывает тангенс, кривую, биссектрису, домер и, наконец, добавляет в открытый чертеж AutoCAD выноску и надпись. Результат работы программы показан на рисунке.
Результат работы программы
В строках 2 – 8 определяются переменные, используемые в программе. В строке 9 устанавливается связь с AutoCAD. Строки 10 – 11 и 20 устанавливают связь с объектами AutoCAD ActiveDocument, Utility и ModelSpace. В строках 12 – 16 вводятся значения угла поворота и радиуса кривой и при помощи функции Val() преобразуются из строкового вида в число с двойной точностью. В строках 17 – 19 вводятся позиции точек 1 и 2. Позиция точки 3 вычисляется в программе в строках 27 – 29. В строках 30 – 33 выполняется расчет элементов закругления по известным формулам. В оставшейся части программы создаются примитивы AutoCAD и добавляются к открытому чертежу. В строках 34 – 35 при помощи метода AddLine() создаются два отрезка 1 – 2 и 2 – 3. В строках 37 – 41 формируется надпись и при помощи метода AddText() помещается в чертеж.