Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Т / Л11 2D проектирование и черчение.pdf
Скачиваний:
83
Добавлен:
06.02.2016
Размер:
15.78 Mб
Скачать

Основы. Двухмерное проектирование

Пример макроса с экранной формой

Рассмотрим пример макроса, написанного на языке программирования Visual Basic. При выполнении макроса создаётся отрезок между двумя 2D узлами. Координаты этих узлов задаются в диалоге.

Первоначально, в проекте “CreateLine.grb” была создана форма “FormLine” и на ней размещены элементы управления, в которых будут задаваться координаты 2D узлов. В форму был добавлен элемент управления – кнопка, при нажатии на которую будет запускаться функция, создающая 2D узлы и отрезок между ними.

После размещения элементов управления на форме нужно создать обработку события нажатия на элемент управления – кнопку. Для этого нужно выбрать этот элемент в форме, перейти в окно “Свойства” и в этом окне установить режим

событий .

В правой колонке события “Click”

нажать , при этом будет создана процедура “button1_Click”. Такого же эффекта можно было добиться,

нажав на элементе управления

– кнопка.

В открывшемся окне кода формы нужно написать процедуру “button1_Click”.

814

Макросы

На рисунке ниже показано окно кода формы, с функцией “button1_Click”, в которой переменным “X1”, “Y1”, “X2” и “Y2” присваиваются значения из элементов управления – редакторов textBox1, textBox2, textBox3 и textBox4, и вызывается функция (макрос) “CreateLine”.

После этого создаем Модуль, в котором нужно написать две функции. Функция “ShowDialog” (стандартная функция среды разработки) будет отображать экранную форму после запуска макроса. Функция “CreateLine”, которая была определена, создаёт 2D узлы, координатами которых являются значения, заданные пользователем через диалог формы “FormLine”, и отрезок между этими узлами. Код этого модуля представлен ниже.

‘Объявление ссылок

Imports System

Imports TFlex Imports TFlex.Model

Imports TFlex.Model.Model2D

‘Объявление пространства имён

Namespace NewMacroNamespace

‘Объявление класса

Public Class NewMacroClass

‘Функция, которая будет отображать экранную форму “form” после запуска

Public Shared Sub ShowDialog() Dim form As LineForm

form = new LineForm() form.ShowDialog()

End Sub

‘Функция с параметрами (макрос), создающая линию изображения между двумя 2D узлами. ‘Координаты этих узлов приходят в функцию как параметры из диалога

Public Shared Sub CreateLine(ByVal NodeX1 As String, ByVal NodeY1 As String, ByVal NodeX2 As String, ByVal NodeY2 As String)

Dim document As Document

815

Основы. Двухмерное проектирование

document = TFlex.Application.ActiveDocument ‘Открытие блока изменения документа

document.BeginChanges("Создание линий изображения")

‘Создание объектов линии изображения и 2D свободных узлов

Dim line As ConstructionOutline Dim node1 As FreeNode

Dim node2 As FreeNode

Dim X_1, Y_1, X_2, Y_2 As Double

X_1 = System.Convert.ToDouble(NodeX1)

Y_1 = System.Convert.ToDouble(NodeY1)

X_2 = System.Convert.ToDouble(NodeX2)

Y_2 = System.Convert.ToDouble(NodeY2)

‘Создание 2D свободных узлов

node1 = new FreeNode(document,new Parameter(X_1),new Parameter(Y_1 )) node2 = new FreeNode(document,new Parameter(X_2),new Parameter(Y_2 ))

‘Создание линии изображение между двумя узлами

line = new ConstructionOutline(document,node1,node2) ‘Закрытие блока изменения документа

document.EndChanges() End Sub

End Class

End Namespace

После запуска макроса в T-FLEX CAD будет вызван диалог “FormLine”. При нажатии на элемент управления – кнопку “OK” в поле чертежа будет нарисован отрезок между двумя узлами.

816