Лабораторный практикум «Автоматизация работ в AutoCAD средствами Visual Basic for Applications» для студентов «Механизация сельского хозяйства» |
Добавил(а) Administrator |
25.01.11 13:57 |
Страница 14 из 17
Шрифт ячеек с именами блоков чертежа назначает жирным objExcelSheet.Range(Cells(1, 1), Cells(intI, 1)).Font.Bold = True
'Считает число вхождений каждого блока xRow = 1
'Для всех элементов пространства модели выполняет For Each objElement In objMspace With objElement Found = False
'Функция сравнения символьных строк: если объект - блок, то в цикле ищет его вхождение If StrComp(objElement.EntityName, "AcDbBlockReference", 1)=0 Then
'Цикл по количеству блоков в чертеже For intI = 1 To intTotalNumOfBlocks If Not Found Then
'Сравнивает имя элемента и имя блока If StrComp(.Name, strBlockName(intI), 1) = 0 Then
'Если имена совпадают, считывает атрибуты в массив objAttr objAttr = objElement.GetAttributes
'Выводит в ячейки листа текст всех атрибутов блока, создавая таблицу атрибутов For I = LBound(objAttr) To UBound(objAttr) objExcelSheet.Cells(xRow, 5 + I) = objAttr(I).TextString Next I 'Считает найденное вхождение блока intNumBlockName(intI) = intNumBlockName(intI) + 1 Found = True xRow = xRow + 1 End If End If Next End If End With Set objElement = Nothing Next objElement
'Печатает количество вхождений блока на Лист For intI = 1 To intTotalNumOfBlocks objExcelSheet.Cells(intI, 2) = intNumBlockName(intI)
Next
4-я часть – завершение работы программы 'Если AutoCAD активен, то запросить о выходе If acad.Visible = True Then Response = MsgBox("Завершить работу с AutoCAD?", 4, "AutoCAD Quit") If Response = vbYes Then ' Подтверждение закрытия AutoCAD acad.Quit ' Else 'Отказ от выхода из AutoCAD Exit Sub ' Выход из программы End If End If
'Если AutoCAD работал скрытно, выгружает его acad.Quit
Конец программы End Sub
Использование VBA-приложения. Для выполнения созданной программы следует: - открыть книгу Excel с созданной программой; - нажать на элемент управления - кнопку «Читать атрибуты»; VBA-приложение создаст в этой книге лист «Атрибуты», если его не было, или очистит от данных существующий лист с именем «Атрибуты», а затем выведет наименование каждого блока чертежа и количество "вхождений" блока в чертеж, а также список атрибутов блоков. Атрибуты каждого блока размещаются в строке. Программа проверяет, загружен ли AutoCAD, и если нет, то загружает его в скрытом режиме. В окне диалога "Открыть файл" следует указать DWG-файл, из которого следует извлечь атрибуты блоков. В конце работы программа выгружает AutoCAD. Если AutoCAD был уже загружен, то желательно, чтобы DWG-файл, из которого следует извлечь атрибуты блоков, был открыт. Если AutoCAD был загружен до начала работы VBA-приложения, то оно запросит, нужно ли выгружать AutoCAD, или нет. На рис.13 приведен чертеж-схема, содержащий 2 блока: «Узел» - 5 вхождений и «Емкость» - 2 вхождения, каждое из которых имеет свои атрибуты (выведены на поле чертежа рядом с изображением блока). На рис.14 приведен результат работы программы – перечень блоков чертежа с указанием количества вхождений и таблица атрибутов вхождений блоков в чертеж
Рис.13. Чертеж-схема
Рис.14. Таблица атрибутов блоков чертежа
Задания на разработку: 1. В приведенном VBA-приложении разработать процедуру, сортирующую таблицу атрибутов по наименованию узла.
Построение пространственной твердотельной модели.
Задача – разработать VBA-приложение, позволяющее по заданным глубине и ширине срезаемого пласта, углу установки и углу врезания спроектировать цилиндроидальный отвал плуга. Отвал плуга представляет собой сложное геометрическое тело, не имеющее (за исключением плоскости лезвия) плоских поверхностей. Цилиндроидальные плуги являются самыми простыми по геометрии, так как такой плуг практически можно вырезать из трубы большого диаметра. Задачей проектирования является создание твердотельной модели плуга, которая позволит определить, задавшись плотностью материала плуга, массовые, инерционные характеристики, а также позволит выполнить прочностные, вибрационные и гидродинамические расчеты. Твердотельные модели представляют собой математические описания пространственных фигур и их сочетаний, выполненных по правилам логического сложения/вычитания. Так, например, труба есть логическое вычитание двух соосных цилиндров одинаковой длины и разного диаметра. Сами пространственные фигуры создаются заданием плоской фигуры, которая затем вращается вокруг заданной оси (фигуры вращения) или экструдируется (выдавливается) вдоль направляющей. Например, цилиндрическая пружина есть круг, выдавленный по цилиндрической спирали (см. рис.15).
|
Последнее обновление 07.02.11 15:20 |