МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «САМАРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» С.П. МИНЕЕВ ОСНОВЫ ПРОГРАММИРОВАНИЯ В AUTOCAD. ТЕХНОЛОГИИ ACTIVEX AUTOMATION И VBA В СРЕДЕ ПРОЕКТИРОВАНИЯ AUTOCAD ДЛЯ РЕШЕНИЯ ЗАДАЧ ЭЛЕКТРОМЕХАНИКИ Учебное пособие Самара Самарский государственный технический университет 2015 3 УДК 004.432:621.3 Основы программирования в AutoCAD. Технологии Activex Aautoma- tion и VBA в среде проектирования AutoCAD для решения задач электро- механики: Учеб.пособ./ С.П.Минеев; Самар. гос. техн. ун-т. Самара, 2015. 83 с. Предназначено для изучения теоретической части и самостоятельной ра- боты студента и соответствует учебной программе курса «Алгоритмизация, программирования и компьютерная графика в задачах электромеханики». Со- держит примеры, задания на самостоятельную работу, вопросы для само- контроля. Задачи пособия – вовлечение каждого читателя в осознанную самостоя- тельную работу над текстом пособия, обеспечение непременного овладения ба- зовыми знаниями визуального программирования. Предназначено для студентов электротехнических специальностей учре- ждений высшего профессионального образования для глубокой и самостоя- тельной проработки и самоконтроля. ISBN 978-5-7964-0978-7 Ил. 18. Табл. 10. Библиогр.: 5 назв. Печатается по решению редакционно-издательского совета Самарского государственного технического университета Рецензент канд. техн. наук А.Н. Проценко ISBN 978-5-7964-0978-7 © С.П.Минеев, 2015 © Самарский государственный технический университет, 2015 4 ПРЕДИСЛОВИЕ Проектирование электрических машин требует глубоких профес- сиональных знаний не только в электромеханике, но и в других обла- стях. Одна из таких областей – системы автоматизированного проек- тирования электрических машин (СПАР ЭМ). Уже сейчас САПР ЭМ занимают основное место в конструкторских и технологических бю- ро электротехнических заводов. Каждый день на заводах электротехнической промышленности ведется работа по созданию новых и модернизации выпускаемых электрических машин. От интенсивности работ по созданию новой и модернизации старой продукции зависит экономическое положение заводов и НИИ, однако большинство инженеров-электромехаников ежедневно значительную часть времени тратят на стандартные расчеты и корректировку чертежей. Системы автоматизированного проектирова- ния электрических машин (САПР ЭМ) призваны освободить инженеров от рутинной работы, обеспечив большую творческую отдачу. Большинство задач проектирования электрических машин со- четает в себе необходимость выполнения как вычислений, так и про- цедур графического характера. Основные затраты времени конструк- тора идут не на выбор принципиального решения, четко вырисовыва- емого в его воображении, а на перенос мысленного образа на бумагу с соблюдением всех правил машиностроительного черчения. В процессе создания САПР ЭМ разработаны математические мо- дели чертежей активной части электрических машин. Исходными данными для выпуска чертежей активной части являются результаты электромагнитного расчета. 3 Программы фрагментов сборочных единиц и деталей создают с ис- пользованием интерактивной графической системы. Для про- граммирования фрагмента необходимо задать положение базовой си- стемы координат сборочной единицы или детали, а также описать эле- менты чертежа фрагмента. Чертеж фрагмента детали задается в базовой системе координат, т.е. относительно такой системы координат, которая определяет положение детали относительно других деталей при ее рабо- те в электрической машине. При составлении сборочного чертежа со- прягаются системы координат деталей друг с другом. За оси координат принимают осевые линии отверстий и валов, оси симметрии и т.п. Например, одна ось координат подшипникового щита проходит вдоль оси вращения машины, а другая – по поверхности замка и служит из- мерительной и сборочной базой подшипни-кового щита. Для описания чертежа фрагмента используют чертежные прими- тивы – прямые линии, точки, дуги. Кроме того, при программирова- нии фрагментов широко применяют команды аффинного преобразо- вания, позволяющие перемещать какой-либо фрагмент, поворачивать его на некоторый угол, изображать его в увеличенном или уменьшен- ном масштабе, строить новый элемент, симметричный данному. Учебное пособие предназначено для студентов, обучающихся по специальности «Электромеханика», однако может быть также полез- но для студентов других специальностей, а также для инженеров- электромехаников в практической работе. Автор с благодарностью примет все замечания и пожелания чи- тателей и просит направлять их по адресу: г. Самара, ул. Первомай- ская, д.18, ауд.134. ВВЕДЕНИЕ ActiveX Automation – это технология Microsoft, которая позволя- ет обеспечить доступ к объектам одного программного продукта для использования этих объектов из другого программного продукта. VBA – это язык программирования, базирующийся на стандартном 4 Visual BASIC, который Microsoft внедряет в приложения как своего производства, так и других компаний (AutoCAD программа, создан- ная Autodesk). Используя VBA, можно создавать программы, которые управляют теми частями приложения, которые предоставлены через ActiveX Automation. ActiveX Automation позволяет создавать приложения на любом языке, который поддерживает интерфейс ActiveX Automation. На рис. 1 показаны приложения и языки программирования, которые имеют доступ к AutoCAD через ActiveX Automation. Все приложения и язы- ки программирования кроме VBA имеют собственные отдельные среды проектирования, которые не интегрированы в AutoCAD. VBA встроен в среду AutoCAD, что позволяет отказаться от приобретения дополнительных программных средств. Р и с. 1. Приложения с поддержкой ActiveX Automation Среда проектирования AutoCAD позволяет создавать чертежную документацию с помощью различных инструментов. VBA позволяет автоматизировать создание данных чертежей, получая доступ к этим инструментам через ActiveX Automation. Средства автоматизации в AutoCAD существовали и ранее. До появления VBA в среде AutoCAD существовал и до сих пор суще- 5 ствует язык программирования AutoLISP, но программирование на AutoLISP не всегда просто. Команды достаточно сложны, встроенная отладка ограничена, и немногие программисты знакомы с AutoLISP. C помощью ActiveX Automation программирование в AutoCAD доступно для специалистов в Visual BASIC и VBA, а так как BASIC был разработан как язык для начинающих, а Visual BASIC продолжа- ет традицию легкого освоения, то, изучив несколько простых про- граммных концепций, можно легко создавать свои собственные при- ложения для AutoCAD. VBA хорошо интегрирован с Windows. VBA имеет полный до- ступ к файловой системе Windows, что позволяет создавать и удалять файлы и просматривать каталоги. Также доступен полный интерфейс Windows-программирования, так что программа может быть настоль- ко сложна, насколько это возможно. Так как учебное пособие посвящено программированию, то здесь встречаются примеры текстов программ, которые выглядят следую- щим образом: Sub Add() 'новый документ чертежа Dim Listcherteja As AcadDocument 'Создается новый документ Set Listcherteja = Documents.Add End Sub Кроме того, следует обратить внимание на текст, выделенный полужирным шрифтом. Таким способом отмечены понятия, на ко- торые нужно обратить особое внимание: определения, объекты, свой- ства, методы. ИНТЕРФЕЙС СРЕДЫ VBA 6 Изучение VBA начнем со среды программирования, в которой придется работать. Из Autocad среду программирования можно вы- звать несколькими способами: нажав на клавиатуре комбинацию клавиш [Alt+F11]; через меню – Сервис – Макросы – Редактор Visual Basic. После вызова редактора с помощью вышеперечисленных спосо- бов на экране появится окно среды программирования (р и с. 2). Р и с. 2. Среда программирования VBA Среда программирования при первом запуске состоит из следу- ющих частей: меню, панелей инструментов, окна проектов, окна свойств. С помощью меню и панелей инструментов осуществляется управление средой программирования. Окно проектов (Project – ACADProject) содержит в себе открытые в данный момент проекты. Каждый проект может содержать формы и модули с кодом. С по- мощью окна свойств можно изменять свойства объектов формы во время проектирования пользовательского интерфейса – среды обще- ния между пользователем и программой. 7 Модуль (Module) – это контейнер для кода программ, который может содержать любое количество процедур и функций. Модуль может содержать процедуры и функции. Пользовательская форма (UserForms) – это интерфейс, кото- рый выглядит как обычное окно других приложений и предназначен- ное для организации диалога между пользователем и программой. Этот диалог выглядит со стороны пользователя, как нажатие на кноп- ку с помощью мыши, выбор элемента из выпадающего списка, ввод данных в текстовое поле, включение-выключение флажков и исполь- зование других элементов управления. Программа общается с поль- зователем с помощью этих же элементов управления. Код – это текст программы, который пишет программист, разме- щая в модулях и в коде форм. Модули и формы отображаются в окне проектов. В новом проекте формы и модули отсутствуют. Новый модуль в проект можно вставить с помощью меню Insert – Module, а новую форму – Insert – UserForm. Если в проект вставить новый модуль, то среда программирования будет выглядеть, как на р и с. 3. 8 Р и с. 3. Среда программирования с новым модулем Если модуль активный, то в среде программирования появляется окно кода программ. В этом окне программистом пишется текст программы. Код программы должен находиться в контейнерах моду- ля – процедурах, либо функциях. Если в проект вставить новую форму, то среда программирова- ния примет вид, как на р и с. 4. Р и с. 4. Среда программирования с новой формой В среде программирования появляется контейнер – пользова- тельская форма (или просто форма). Выше говорилось о предназна- чении формы. Вместе с формой также появляется панель с элемен- тами управления. Сама по себе форма не способна взаимодейство- вать с пользователем. Взаимодействие происходит с помощью эле- ментов управления (табл.1). Данные элементы помещаются на форму с помощью перетаскивания из панели с элементами управления. 9 Форма является объектом. Элементы управления также являются объектами, но являются объектами формы, т.е. принадлежат форме (находятся на форме). Кроме того, существуют объекты AutoCAD. К ним, например, относятся такие графические примитивы, как точка, линия, дуга, окружность и др. Именно для работы с такими объектами и был встроен VBA в AutoCAD. Объект – элемент, который обладает свойствами, методами и событиями (функциями, которые отличают один объект от другого). Поскольку при программировании идет работа с объектами формы, объектами AutoCAD, то само программирование называется объект- но-ориентированным. Объекты, свойства, методы и события яв- ляются фундаментальными понятиями в объектно-ориентированном программировании. Разговор о перечисленных понятиях пойдет ниже. Таблица 1 Элементы управления формы Обозначение на панели Пример свойства Название элемента Префикс с элементами Name управления Form (Форма) frm frmSample Label (Надпись) lbl lblPick TextBox (Текстовое ок- txt txtEdit но) ComboBox cbo cboChoose (Поле со списком) ListBox lst lstSpisok (Список) Check Box (Флажок) chk chkTop Option Button opt optBlue (Кнопка выбора) ToggleButton tog togVkluch (Выключатель) Frame (Рамка, группа) fra fraStud CommandButton (Кноп- cmd cmdBeep ка) 10
Description: