Слайд 2Окно менеджера проектов - если нет в списке проектов ни одного проекта
с локацией Global( 1 или 2) надо через кнопку New создать такой проект и встать ( выделить) его после чего нажать Macros
Слайд 3Набираем имя процедуры создаваемой- box и жмем Create
Слайд 4В открывшемся окне выбираем Global( 1 или 2)- ОК
Слайд 5Появляется окно с началом программы и концом, между этими двумя операторами набираете
текст. Операторы с апострофом в начале строки являются комментариями .
Для сохранения проекта воспользуйтесь командой File- save Global
Для запуска процедуры-
Результат работы отображается в графическом окне Автокада
Слайд 6Рассмотрим синтаксис VBA на примере фрагмента кода, рисующего параллелепипед.
' Вставка параллелепипеда
Public Sub Box ()
'объявляем переменные для использования в AddBox
Dim dCenter (0 To 2) As Double
'массив чисел с плавающей точкой (x,y,z)
Dim dLength As Double
' длина
Dim dWidth As Double
' ширина
Dim dHeight As Double
' высота
Dim MyBox As Acad3DSolid
' возвращаемое значение
' задание значений переменных:
dCenter (0) = 0#
' # указывает на двойную точность значений
dCenter (1) = 0#
' с плавающей точкой
Слайд 7dCenter (2) = 0#
' задание размеров параллелепипеда:
dLength = 10#
dWidth = 20#
dHeight = 30#
' создание чертежа параллелепипеда в пространстве модели
Set MyBox = ThisDrawing.ModelSpace.AddBox(dCenter, dLength, dWidth, dHeight)
' изменение точки обзора для лучшего осмотра
ThisDrawing.SendCommand ("_VPOINT 1,1,1 _Shademode Gouraud ")
End Sub
Слайд 8Если вы уже сохранили свою программу, и открываете автокад, то прежде чем
запустить процедуру, ее следует загрузить. Загрузку процедуры можно произвести двумя способами:
набрать в командной строке VbaLoad;
выделить команду Tools - Macro - Load Project.
При загрузке программа просит подтвердить намерение подключить макросы.
Запуск загруженной процедуры можно произвести двумя способами:
набрать в командной строке VbaRun;
выделить команду Tools - Macro - Macros.
В открывшемся диалоговом окне Macros выберите модуль, который хотите запустить, и щелкните по кнопке RUN.
Слайд 9Задание
Создание, сохранение и запуск процедур
Создайте новый чертеж. По команде Tools - Macro
- Visual Basic Editor откройте редактор процедур.
Вставьте модуль по команде Insert - Module. Дайте ему имя TORUS. Вставьте процедуру по команде Insert - Procedure. Установите тип Sub, имя DrawTorus, область видимости - Public.
Введите следующий код:
' Вставка тора на чертеж
Public Sub DrawTorus ()
'объявляем переменные для использования в AddTorus
Dim dCenter (0 To 2) As Double
'массив чисел с плавающей точкой (x,y,z)
Слайд 10Dim dRadius1 As Double
' радиус тора
Dim dRadius2 As Double
' радиус
трубки тора
Dim MyTorus As Acad3DSolid
' возвращаемое значение
' задание значений переменных
:dCenter (0) = 0#
' # указывает на двойную точность значений
dCenter (1) = 0# ' с плавающей точкой
dCenter (2) = 0# ' задание размеров тора:
dRadius1 = 10#
dRadius2 = 2#
' создание чертежа тора в пространстве модели
Set MyTorus = ThisDrawing.ModelSpace.AddTorus(dCenter, dRadius1, dRadius2)
' изменение точки обзора для лучшего осмотра
ThisDrawing.SendCommand ("_VPOINT 1,1,1 _Shademode Gouraud ")
End Sub
Слайд 11Запуск процедуры
Поскольку эта процедура активна, ее не нужно загружать.
Щелкните по кнопке SAVE стандартной
панели инструментов и сохраните проект под именем TORUS.dvb в каталоге AutoCAD\Support.
Вернитесь в пространство модели. Выберите командуTools - Macro - Macros.
В открывшемся диалоговом окне Macros выберите процедуру DrawTorus и щелкните по кнопкеRUN.
Слайд 12Пример
Sub AddCircle ()
Dim vPt As Variant
Dim dRadius As Double
Dim myCircle As AcadCircle
vPt
= ThisDrawing.Utility.GetPoint (, vbCrLf & "Введите точку центра: ")
dRadius = ThisDrawing.Utility.GetReal ("Введите радиус: ")
Set myCircle = ThisDrawing.ModelSpace.AddCircle (vPt, dRadius)
End Sub
Слайд 13Задание 2
Создать процедуру, получающую информацию от пользователя
Создайте новый чертеж. Выберите команду Tools -
Macro - VBA Manager. Щелкните по кнопке NEW, а затем по кнопкеVisual Basic Editor.
Выберите команду Insert - Module, а затем Insert - Procedure. Наберите в модуле следующий текст:
Public Sub HappyFace()
Dim prompt As String, prompt2 As String: Dim cen As Variant
Dim rad As Double
Dim cir As AcadCircle: Dim arc As AcadArc
Dim pi As Double
Dim dStart As Double
'начальный угол
Dim dEnd As Double 'конечный угол
pi = 3.1415
prompt = vbCrLf & "Задайте центральную точку: "
Слайд 14prompt2 = vbCrLf & "Задайте радиус: “
'получение центральной точки и радиуса от
пользователя
cen = ThisDrawing.Utility.GetPoint(, prompt)
rad = ThisDrawing.Utility.GetDistance(cen, prompt2)
Set cir = ThisDrawing.ModelSpace.AddCircle(cen, rad)
'рисуем улыбку
dStart = 225 * pi / 180
'pi/180 - перевод в радианы
dEnd = 315 * pi / 180
Set arc = ThisDrawing.ModelSpace.AddArc(cen, rad / 2, dStart, dEnd)
'рисуем глаза
cen(0) = cen(0) - rad / 4:cen(1) = cen(1) + rad / 4
Set cir = ThisDrawing.ModelSpace.AddCircle(cen, rad / 8)
cen(0) = cen(0) + rad / 2
Set cir = ThisDrawing.ModelSpace.AddCircle(cen, rad / 8)
End Sub