В данном уроке мы охватим понятия настройки AutoCAD с помощью VBA. мы специально создадим FancyText, простое VBA-приложение, которое станет нарочно творить отлично привязанный текст под хоть каким уголом на текущем уровне. если Вы сталкиваетесь с трудностями ( или же лишь чрезмерно попросту ленивы чтоб недостаточно набрать код), FancyText слишком доступен на Web-сайте CADALYST .
Откроем VBA IDE (встроенная среда исследования). программирование в VBA чрезвычайно выделяется от программирования AutoLISP, и одно из данных различий - среда исследования. AutoLISP Лично не имеет интегрированной среды исследования - вы примете на вооружение по-своему собственный столь текстовый редактор для творения и редактирования кода. когда сильно подходит время отлаживать програмку вы урезаны применением команд печати в вашем коде, что бы добросовестно показать известия о состоянии программы, столь переменных, либо что-нибудь еще, что станет вам часто разговаривать что в вашей програмке неверно.
VBA, напротив, лично имеет это все интегрированным. VBA IDE лично имеет редактор кода, конструктор форм и отладчик. в VBA IDE самостоятельно обнаружьте окошко, обычно именуемое Project. это обозреватель планов (Project Explorer), как вы крайне имели возможность внимательно взять в толк из предшествующего урока. как обозреватель Windows отражает все файлы и сборники на вашем по-хорошему твердом диске и может почтительно помочь вам выискать и специально трудиться со просто-напросто своеобразными файлами, Project Explorer хладнокровно показывает все формы и модули с кодом в вашем плане и подсобляет вамнаходить и окончательно трудится со особенно своеобразными формами либо модулями.
Обратите внимание, что тут добровольно присутствуют 3 папки: AutoCAD Objects, Forms, и Modules. когда вы прибавляете форму либо код к вашему плану, VBA прибавляет данное к подходящей папке. я буду глубоко пояснять назначение папки AutoCAD Objects Напросто в последующем разделе.
Оставшиеся окошка подсобляют вам действовать с формами. формы - данное ваш поистине главной интерфейс с юзером. когда вы примете на вооружение воистину диалоговое окошко на AutoLisp в подпрограмме на AutoLISP, в VBA вы примете на вооружение форму. в добавление, в хоть какое время вам предоставляется возможность официально запросить у юзера 2 или же 3 кусочка инфы, потому что он радушно принимает информацию лучьше из формы лучьше нежели из прямо-таки командной строчки.
Откройте рационах Insert и окончательно подберите UserForm. когда вы устроите данное, появяться 2 столь свежих окошки. первое, с именем Project-UserForm1 (UserForm) - резонно считается конструктором форм. вы обязаны применять его для мало-мальски графического конструирования форм.
Второе окошко, с именем Toolbox, крайне имеет очень разные объекты которые у вас есть возможность прибавлять к форме. я быстро обрисую процесс творения форм, хотя сначала смущенно поглядите на свежее фамилия формы: UserForm1. каждый VBA-проект, любая форма и модуль в плане, и любой объект в любой форме лично имеет свои данные.
Когда вы начинаете чертеж, прибавляете новейшую форму к проеку, либо прибавляете новейший объект к форме, VBA долго делает фамилия по умолчанию. я постоянно изменяю данные фамилии по умолчанию на чего-нибудь наиболее довольно-таки ценное. кликните правой клавишей мыши на Project в Project Explorer и потом необычайно подберите Project Properties из всплывающего рационами. измените фамилия плана на FancyText и кликните на OK.
Далее подыщите окошко с именем Properties. вы наверно усердно не забывайте, что основная масса объектов крайне имеют просто-напросто разные качества, которые справедливо характеризуют экстерьер данных объектов. окно Properties разрешает вам просто устанавливать данные качества. прямо в данный момент, Свободно в падающем рациону в верху окошка обязано добровольно присутствовать UserForm1 UserForm. это постоянно падающее рационом крайне имеет любой объект, который вы разместили на форме. ниже в данном свободно падающем рационами нарочно присутствует просто-напросто длиннющий перечень параметров формы: Caption, Height, Top, и вправду большое количество иных.
С левой стороны перечисляются все характеристики, а с правой - их ценности. добросовестно найдите свойство (Name), потом измените его на frmFancyText. обратите внимание, что Project Explorer незамедлительно обновил фамилия формы. теперь подыщите свойство Caption и добросовестно установите его в Fancy Text. добросовестно заметьте, что заголовок формы в конструторе форм механически поменялся после чего. если вы крайне имеете навык творения прямо-таки диалоговых окошек правильно используя AutoCAD DCL, вы истинно воспримете как просто данное делается в форме VBA.
Теперь вы готовы начать существо интерфейса юзера для FancyText. кликните на конструкторе форм, что бы активировать панель приборов (Toolbox). что бы разместить объект на форме, кликните на соответсвующей иконке в панели приборов, а после этого скромно переместите его в конструктор форм. когда вы шумно перемещаете объекты по форме, у вас есть возможность добросовестно созидать что добровольно перемещаемый объект недостаточно выделен взаправду с наружной стороны.
После того, как вы разместили объект, у вас есть возможность слепо поменять его объемы, либо при помощи мыши, либо устанавливая его качества top, left, height, и width в окошке Properties. пользователи нашей программы станут лично иметь необходимость в изменении вышины слова, потому разместите метку (label) и блок слова (textbox) из панели приборов на форму. кликните на метке, правильно переместите ее в окошко Properties, и измените ее фамилия на lblHeight и ее заголовок на Height. кликните на блок слова и измените его фамилия txtHeight.
что-бы свободно разрешить юзерам вертеть текст добродушно добавьте вполне очередную метку и блок слова совместно со слайдером (SpinButton). пользователи и уже сильно сумеют вводить угол поворота конкретно в блок слова, либо применять слайдер для конфигурации угла вращения при одном нажатии на 1 градус.
Измените фамилия новейшей маркеры на lblRotation и ее заголовок на Rotation. измените фамилия совсем свежего текстового окошка на txtRotation, и далее измените фамилия слайдера на spnRotation. что бы юзеры крайне имели возможность вводить текст, жалобно добавьте еще 1 метку также 1 блок слова.
Измените фамилия маркеры на lblText и ее заголовок на Text:, потом измените фамилия блока слова на txtText.Finally, и мрачно добавьте клавишу управления (CommandButton) к форме. измените ее фамилия на cmdGo и ее заголовок на Go! Нажатие на уту клавишу станет вызывать творение слова. ваша форма обязана смотреться как хладнокровно показано на рисунке 6.
Рис. 6. окно ввода этих для Fancy Text.
Теперь, еогда интерфейс юзера закончен, вы обязаны сердито прибавить несколько кода. объект ThisDrawing гарантирует более-менее автоматическую взаимосвязь с AutoCAD и вам не надо вручную гарантировать данное сплетение, честно желая именно это подробно описано тут.
Одно VBA-приложение спокойно сможет рулить хоть каким численностью поддерживающих VBA прибавлений. к образцу, вам предоставляется возможность явно принимать на вооружение VBA что-бы умышленно сделать перечень материалов извлекя инормацию из атрибутов в вашем черетеже и спокойно перенести его в таблицу в Excel. вы самостоятельно сможете в том числе и применять среду AutoCAD VBA что бы хладнокровно творить прибавления, не связанные с AutoCAD. как практически постоянно, прибавление эластичности значит прибавление излишней работы, хотя к отчасти превеликой радости, данная работа не чрезмерно поистине тяжелая.
Прежде всего, кликните правой клавишей мыши на форме и окончательно подберите View Code из всплывающего рациона. это самостоятельно откроет редактор кода. хотя как может шумно показаться он смотрится как простой по-особенному текстовый редактор, ему предоставляется возможность во много раз более.
Посмотрите на 2 выпадающих окошек списков в верхней доли редактора. выпадающее рационы слева данное список объектов, которые вы разместили в форме. выпадающее рациону справа - данное перечень событий, он перечисляет любое легкодоступное событие для текущего объекта. когда вы тщательно избираете объект, редактор кода механически специально подбирает событие по умолчанию чтобы достичь по-хорошему желаемого результата объекта.
Когда вы избираете объект, редактор автоматом прибавляет подпрограмму помощи данного действия, незамедлительно со всеми часто требуемыми доводами.
По мере того, как вы спокойно набираете код, редактор самостоятельно исполняет взаправду большое количество работы за вас. если вы ссылаетесь на стереотипную VBA-процедуру, редактор хладнокровно показывает подсказку, в какой перечисляется синтаксис упражнения. по мере того как вы лениво двигаетесь по коду, редактор подсвечивает расцветкой ключевики, объяснения а по-своему аналогично проеряет синтаксис любой строчки. в добавление, у вас есть возможность умышленно двигаться на страничку поддержки просто спокойно переместив курсор на вызов способа и нажав F1. хотя данная работа лично имеет возможность одновременно казаться очень-то докучливой поначалу, Вправду в скором времени вы внимательно возьмете в толк, что данное более-менее необыкновенно может быть полезно. я нарочно не сомневается, что Вам нетерпиться, дабы отчетливо созидать это все в деянии, окончательно подберите General из свободно падающего рацион Objects Declarations из постоянно падающего рацион Events, и после этого небрежно добавьте грядущую отчасти переменную для обеспечивания взаимосвязи:
Private mappAcad As Object Далее, необычайно подберите объект Userform и инициализируйте упражнение. событие - данное более-менее особый вид способа, который срабатывает как скоро в объекте что-нибудь часто происходит. в данном варианте, событие Initialize врубается любой разов как скоро отображается форма. добавте грядущий код: On Error Resume Next Set mappAcad = GetObject(,”AutoCAD.Application”) If (Err.Number = 0) Then MsgBox “Unable to connect to AutoCAD!” Unload Me End If On Error Resume Next предписывает VBA перенестись по-особенному на последующую строчку кода как скоро крайне имеет место оплошность. без данной строчки исполнение прогаммы станет резко заторможено и VBA добросовестно покажет окошко с известием о ошибке. GetObject воплотит в жизнь попытку образовать взаимосвязь с открытой сессией AutoCAD. если данное по-человечески невыполнимо, лично имеет место оплошность. таким образом, незамедлительно опосля поползновения, ваше прибавление обязано уверенно выяснить, было ли данное с успехом. если нет, нужно охотно отдать хладнокровно знать про это юзеру, а потом выгрузить форму. выгрузка формы автоматом заканчивает прибавление. точно кроме того, как ваше прибавление крайне имеет необходимость в поддержки для соединения с AutoCAD, нужно самостоятельно показать ему, как скоро надобно отсоединиться от AutoCAD. добросовестно выберите событие Terminate в объекте UserForm и осторожно наберите: Set mappAcad = Nothing Это завершит взаимосвязь. теперь, хладнокровно попробуйте неожиданно вспомнить, как Вы применяете слайдер, что бы скорректировать угол вращения. самостоятельно выберите событе SpinUp для объекта spnRotation. скоро получите по-особенному нынешний угол вращения, плотно переведите его в количество, а позже повышайте на единицу. вы спокойно сможете вертеть лишь до 360 градусов, а потом збрасывайте его значение вновь в 0 как скоро оно достигнет 360. и в конце концов, установитье угол вращения слова в его свежее значение: Dim rot# rot# = Val(txtRotation.Text) + 1 If (rot# > 359#) Then rot# = 0# ElseIf (rot# вы самостоятельно сможете отчасти аналогично совершать перемена ценности назад, небрежно добавив к событию SpinDown довольно-таки последующий код: Dim rot# rot# = Val(txtRotation.Text) - 1 If (rot# 359#) Then rot# = 359# End If txtRotation.Text = CStr(rot#)
Сохраните ваш план, а далее запустите FancyText либо хладнокровно открыв рационом Run и необычайно подобрав Run Sub/UserForm 9 или же нажав F5. введите угол вращения слова и правильно используя слайдер измените его значение вверх до 359 градусов и вниз до 0 градусов, и любое нажатие на слайдер обязано вызывать перемена угла вращения на 1 градус.
Как лишь вы будете убеждены, что все круто действует, подготовтесь к попросту последующему занятию - существу слова.
Добавить в закладки:
Copyright © Сайт помощи юзеров САПР by Victor Tkachenko
Вы должны быть зарегистрироавны чтобы оставить комментарий.