Translate to: |
|||||||
Обратная связь | Новости САПР | Программы | Документация | Полезные советы | Обзорные статьи | ||
Заказ и разработка | Каталог САПР | САПР-конференция | Библиотека ГОСТов | Наши соавторы | Коммерческое ПО |
Метод "перетащить и опустить" при создании диалоговых окон, при сборе данных для ваших подпрограмм на VBA.
Одной из экономящих время особенностей VBA является его способность создавать формы и диалоговые окна, для сбора данных ваших программ. Используя AutoCAD, мы рассмотрим, как запрограммировать средства управления VBA для определяемых пользователем форм или диалоговых окон, сосредотачиваясь на определенном управлении в каждом из следующих нескольких ситуаций. Это наиболее простой подход. Так как по VBA доступно много литературы, мы пропустим основные подробности прямо перейдем к осуществлению проекта VBA с интерфейсом пользователя. Хотя эта статья предназначен быть отправной точкой для новичков в VBA, Вы должны тем не менее быть знакомы с компонентами интегрированной среды разработки VBA для того, чтобы разместить средства управления в форме и уметь изменять их свойства.
Откроем VBA IDE выбрав select Tools | Macro | Visual Basic Editor. В VB редакторе, выберите Insert | User Form чтобы вставить пустую форму. Переименуйте заголовок формы в окне Properties на Line1 Program
Создадим диалоговое окно для ввода данных для создания линии. Мы будем использовать средства управление TextBox, чтобы получить длину и угол линмм. Средства управленя TextBox позволяет Вам редактировать или вводить одиночную строку текста. На рис. 1 показан размер и размещене средств управления.
Рис 1. Средство управления TextBox позволяет Вам вводить
одиночную строку текста
как параметр к подпрограмме на VBA.
Кликните по средству управления Textbox в панели инструментов и переместите поверх формы чтобы разместить окно для ввода текста (длины линии). Измените имя средства управления на Distance. Кликните по средству управления Textbox еще раз, что бы разместить окно для ввода угла измените его имя на Angle.
Добавьте средство управления Label как для Distance так и для Angle Textbox.
Кликните на средстве управления CommandButton чтобы добавить кнопки OK и Cancel как показано. Измените имена средств управления командных кнопокна OK и Cancel и измените надписи на кнопках, чтобы отразить использование каждой из них.
Теперь, когда Вы создали диалоговое окно, Вы готовы написать код для программы Line1. TextBox получает информацию от пользователя программы. Текстовая метка отображает тип требуемой информации. Кнопки выполняют программу или отменяют и закрывают диалоговое окно.
Двойным кликом по командной кнопке Cancel откройте окно кода, как показано на рисунке 2.
Рис. 2. Окно кода VBA отображает все события для всех средств управления в форме.
Private Sub Cancel_Click() End End Sub
Два раза кликнем по UserForm1 в окне Project чтобы вернуться в форму. Два раза кликнем по командной кнопке OK и добавим следующий код к событию "OK_Click" в окне кода:
Private Sub OK_Click() 'Hide the dialog for user input Me.Hide 'Define the variables Dim StartPoint As Variant Dim EndPoint As Variant Dim myLine As AcadLine Dim dblAngle As Double 'convert Angle string from textBox into radians dblAngle = ThisDrawing.Utility.AngleToReal(Angle, acDegreeMinuteSeconds) 'Prompt user for line starting point StartPoint = ThisDrawing.Utility.GetPoint(, vbCr & "Line Start Point: ") 'Find the end point of the line based on Distance and Angle EndPoint = ThisDrawing.Utility.PolarPoint (StartPoint, dblAngle, Distance) 'Create the line object Set myLine = ThisDrawing.ModelSpace.AddLine (StartPoint, EndPoint) 'Update the drawing display myLine.Update 'Display the dialog again Me.Show End Sub
Программа LINE1 демонстрирует использование двух Textboxes для получения данных и две командные кнопки для управления диалоговым окном и выполнением программ.
Так как объем статьи ограничен, в нашей программе мы не рассматриваем проверку введенных значений. Это проверку мы добавим в финальную программу. Если введенные данные неверны, происходит возврат к TextBox с неправильным вводом. Прежде всего TextBox запрашивает длину линии. А затем угол наклона линии. Когда вы кликаете на OK, отображается приглашение ввсести стартовую точку линии. После того как вы введете стартовую точку, программа создает линию, используя указанные длину и угол. Диалоговое окно отображается еще раз для создания другой линии до тех пор, пока вы не кликните на Cancel.
После того как вы сохраните программу, кликните на иконке Run в панели инструментов. Пользовательский интерфейс отобразится в окне AutoCAD.
В текстовом окне Distance наберите значение 48. Переместитесь в текстовое окно Angle и наберите 45. Это будет представлять линию длиной 48" под углом 45°.
Кликните на кнопке OK button. Диалогоове окно будет временно скрыто, и отобразится подсказка:Line Start Point:
Выберите начальную точку для линии. Программа создаст линий, затем диалоговое окно отобразится вновь для ввода следующей линии.
Когда отображается диалоговое окно LINE1, начальный центр установлен в Distance: text box. Когда диалоговое окно отображается в первый раз, текстовые окна distance и angle пустые. Мы, в принципе можем добавить дополнительный код, чтобы показать значения по умолчанию. Простым кликом на OK мы можем просто их подтверждать. Первые введенные вами значения расстояния и угла будут оставаться как значения по умолчанию когда диалоговое окно отобразится впоследствии.
Кликните на кнопке Cancel, чтобы закрыть диалоговое окно и вернуться в VBA IDE.
Copyright © Сайт поддержки пользователей САПР