Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Оптимизация проектных решений оснований и фундаментов с помощью Microsoft Excel и Visual Basic for Applications. Методические указания для самостоятел

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
714 Кб
Скачать

End If

End Sub

Sub Raschet()

Range("P6") = Davlenie: Range("P8") = Shag: Range("A7") = 0 Range("P7") = Shirina: Range("P13") = Otnosh

Range("L7") = Range("P6"): Range("P14") = Otnosh1 Range("P15") = Otnosh2: Range("P16") = Otnosh3: Range("P17") =

Otnosh4

Range("H7") = Davlenie/4: Range("I7") = Davlenie/4

Range("J7") = Davlenie/4: Range("K7") = Davlenie/4 Range("P9") = Shirina1: Range("P10") = Shirina2: Range("P11") =

Shirina3

Range("P12") = Shirina4 With Range("A7")

.DataSeries Rowcol:=xlColumns, Step:=1, Stop:=Glubina/Shag

.Offset(1, 1).Copy Range(.Offset(2, 1), .Offset(Glubina/Shag, 1)) Range(.Offset(0, 1), .Offset(0, 6)).Copy Range(.Offset(1, 1),

.Offset(Glubina/Shag, 6))

Range(.Offset(1, 7), .Offset(1, 11)).Copy Range(.Offset(2, 7),

.Offset(Glubina/Shag, 11))

Range(.Offset(0, 12), .Offset(0, 12)).Copy Range(.Offset(1, 12),

.Offset(Glubina/Shag, 12)) End With

End Sub

Sub Ochistka() With Range("A7")

Range(.Offset(0, 0), .Offset(0, 0).End(xlDown)).ClearContents Range(.Offset(1, 1), .Offset(1, 6).End(xlDown)).ClearContents Range(.Offset(2, 7), .Offset(2, 11).End(xlDown)).ClearContents Range(.Offset(1, 12), .Offset(1, 12).End(xlDown)).ClearContents

End With End Sub

Для определения напряжений по глубине приложение выполняет следующие операции:

1. После запуска приложения главная процедура Main вызывает форму InputsForm. Пользователь, в зависимости от решаемой задачи, выбирает одну из предлагаемых схем взаимного расположения фундаментов.

21

2.После выбора схемы вызывается форма IshDannForm. В соответствующие текстовые поля пользователь вводит величину дополнительного уплотняющего давления, глубину и шаг определения напряжений.

3.Затем процедура Main вызывает форму RazmFundForm и пользователь вводит размеры подошвы основного и фиктивных фундаментов в соответствующие текстовые поля.

4.При помощи оператора Call вызывается вспомогательная процедура Ochistka для очистки соответствующих ячеек от их содержимого. Например, строка

Range(.Offset(2, 7), .Offset(2, 11).End(xlDown)).ClearContents

удаляет содержимое всех ячеек, расположенных ниже диапазона H9:L9.

5.При помощи конструкций If и With программа активизирует соответствующий лист приложения для выполнения необходимых вычислений.

6.После этого процедура Main вызывает процедуру Raschet, которая

ивыполняет основные операции по определению напряжений по оси, проходящей через центр подошвы основного фундамента с учетом влияния соседнего фундамента. Вначале процедура Raschet заполняет соответствующие ячейки исходными данными. Столбец А, начиная с ячейки А8, заполняется номерами уровней с помощью метода DataSeries объекта Range и завершается номером равным отношению Glubina/Shag. Затем в ячейки, расположенные ниже диапазонов B7:G7 и H8:L8 и ячеки M7, копируются соответствующие формулы. Например, строка

Range(.Offset(1, 7), .Offset(1, 11)).Copy Range(.Offset(2, 7),

.Offset(Glubina / Shag, 11))

копирует формулы, содержащие в ячейках H8:L8. Копирование выполняется до уровня, номер которого соответствует значению отношения Glubina/Shag.

В модуль включены кнопки для обеспечения пользователей средствами навигации между листами, процедуры которых записываются следующим образом

Sub ViewOpisanie()

Worksheets("Описание").Activate

End Sub

Sub ViewChema1Tab()

Worksheets("Схема1Таб").Activate

End Sub

22

Sub ViewChema1Gr()

With Worksheets("Схема1Гр")

.Visible = True

.Activate End With

End Sub

Sub ViewChema2Tab()

Worksheets("Схема2Таб").Activate

End Sub

Sub ViewChema2Gr()

With Worksheets("Схема2Гр")

.Visible = True

.Activate End With

End Sub

Sub ViewShablon1()

With Worksheets("Шаблон1")

.Visible = True

.Activate End With

End Sub

Sub ViewShablon2()

With Worksheets("Шаблон2")

.Visible = True

.Activate End With

End Sub

Пример для самостоятельного решения.

1.Требуется создать пользовательскую форму, которая с помощью двух сгруппированных переключателей и нескольких текстовых полей запрашивает метод определения осадки основания и необходимые для этого исходные данные.

2.Создайте файл, например Тригонометрия1.xls, и в столбце А2:А46 введите градусы угла от 1 до 45о.

Запишите в ячейки следующие формулы:

- в ячейку В2 формулу для преобразования градусов в радианы; - в ячейку С2 формулу для вычисления синуса угла;

- в ячейку D2 формулу для вычисления косинуса угла;

23

- в ячейку E2 формулу для вычисления тангенса угла.

Запишите процедуру VBA, которая преобразовывает градусы в радианы и вычисляет синусы, косинусы и тангенсы для углов от 1 до 45о.

3.В копию предыдущего файла под именем Тригонометрия2.xls добавьте процедуру для удаления.

4.В копию файла Тригонометрия1.xls под именем Тригонометрия3.xls вместо записи формул непосредственно в ячейки запишите процедуру VBA, которая с помощью свойства Formula вводит соответствующие формулы в ячейки, преобразовывает градусы в радианы

ивычисляет синусы, косинусы и тангенсы для углов от 1 до 45о.

5.Создайте файл МетОпрОсадки1.xls. Запишите процедуру VBA, которая с помощью:

- встроенной функции InputBox на экран выводит окно ввода, где у пользователя запрашивается метод определения осадки;

- конструкции If-Then-Else-End If выбирает необходимый метод;

- встроенной функции MsgBox на экран выводит окно сообщения, где указывается «Вы выбрали метод послойного суммирования» или «Вы выбрали метод ограниченной сжимаемой толщи».

6.Создайте файл МетОпрОсадки2.xls и форму MetodForm со стандартными командными кнопками и двумя сгруппированными переключателями для выбора метода определения осадки. Запишите процедуру VBA, которая с помощью:

- формы MetodForm пользователь выбирает метод определения осадки;

- конструкции If-Then-Else-End If определяет последовательность дальнейших операций в соответствии с выбранным методом;

- встроенной функции MsgBox на экран выводит окно сообщения, где указывается «Вы выбрали метод послойного суммирования» или «Вы выбрали метод ограниченной сжимаемой толщи».

7.Создайте файл ФормаПодФунд1.xls. Запишите процедуру VBA, которая с помощью:

- встроенных функций InputBox на экран выводит последовательно два окна ввода, где у пользователя запрашивается форма подошвы фундамента и вид нагружения фундамента: центральный или внецентренний;

- конструкции If-Then-ElseIf-Then-Else-End If определяет последовательность дальнейших операций в соответствии с выбранной формой подошвы фундамента;

- конструкции If-Then-Else-End If определяет последовательность дальнейших операций в соответствии с выбранным видом нагружения фундамента;

24

-встроенных функций MsgBox на экран выводит последовательно два окна сообщения, где указывается, например, «Вы выбрали прямоугольную форму подошвы фундамента» и «Фундамент центрально нагруженный».

8.Создайте файл ФормаПодФунд2.xls и форму FormaPodoshForm со стандартными командными кнопками и двумя элементами управления (Frame), где группируются четыре переключателя для выбора формы подошвы фундамента и два переключателя для выбора вида нагружения фундамента. Запишите процедуру VBA, которая с помощью:

-формы FormaPodoshForm пользователь выбирает форму подошвы фундамента и вид нагружения;

-конструкции If-Then-ElseIf-Then-Else-End If определяет последовательность дальнейших операций в соответствии с выбранной формой подошвы фундамента;

-конструкции If-Then-Else-End If определяет последовательность дальнейших операций в соответствии с выбранным видом нагружения фундамента;

-встроенных функций MsgBox на экран выводит последовательно два окна сообщения, где указывается, например, «Вы выбрали круглую форму подошвы фундамента» и «Фундамент внецентренно нагруженный».

9. Создайте файл РасчСопр1.xls. Запишите процедуру VBA, которая

спомощью:

-встроенных функций InputBox на экран выводит последовательно семь окон ввода, где у пользователя запрашивается все необходимые данные для определения расчетного сопротивления грунта для условного фундамента шириной 1,0 м на шести глубинах, начиная с глубины 1,0 м (шаг вычислений 0,25 м);

-цикла For-Next определяются значения расчетного сопротивления на соответствующих глубинах;

-встроенных функций MsgBox на экран выводит последовательно шесть окон сообщения, где указывается, например, «Расчетное сопротивление грунта на глубине 1,5 м равно 325 кПа».

10.Создайте файл РасчСопр2.xls и форму IshodDannForm со стандартными командными кнопками и двумя элементами управления (Frame), где группируются три текстовых поля для ввода коэффициентов условий работы и надежности и четыре текстовых поля для ввода удельного веса грунтов, залегающих выше и ниже подошвы фундамента, угла внутреннего трения и удельного сцепления грунта основания. Запишите процедуру VBA, которая с помощью:

25

-формы IshodDannForm пользователь вводит исходные данные для определения расчетного сопротивления грунта для условного фундамента шириной 1,0 м на шести глубинах, начиная с глубины 1,0 м (шаг вычислений 0,25 м);

-цикла For-Next определяются значения расчетного сопротивления на соответствующих глубинах;

-встроенных функций MsgBox на экран выводит последовательно шесть окон сообщения, где указывается, например, «Расчетное сопротивление грунта на глубине 2,0 м равно 373 кПа».

11.Скопируйте предыдущий файл и сохраните под именем РасчСопр3.xls. Добавьте форму KolichOpredForm, содержащую стандартные командные кнопки и два текстовых поля для ввода шага и количества определений расчетного сопротивления грунта основания.

12.Скопируйте три предыдущих файла и сохраните их под именами РасчСопр4.xls, РасчСопр5.xls, РасчСопр6.xls. Перепишите процедуры VBA с использованием цикла Do-Loop.

26

3. Итоговый контроль знаний слушателей.

Итоговый контроль знаний у слушателей производится по результатам аттестационного тестирования.

Вопросы для подготовки к аттестационному тестированию:

1.Объекты, свойства и методы Excel.

2.Редактор Visual Basic Editor и его особенности.

3.Базовые структуры языка Visual Basic for Applications.

4.Последовательность создания программы на языке Visual Basic for Applications.

5.Типы переменных и их объявление.

6.Окна ввода данных и окна сообщений.

7.Строковые данные и функции управления ими.

8.Определение объектов, свойств и методов.

9.Оператор With для упрощенного управления объектами, их свойствами и методами.

10.Свойства и методы диапазонов.

11.Условные операторы и циклы.

12.Управление рабочими листами Excel с помощью VBA.

13.Массивы и правила работы с ними.

14.Область действия переменных и процедур.

15.Модульная структура приложения.

16.Последовательность разработки пользовательских форм.

17.Создание шаблона и кода обработки событий для пользовательской формы.

18.Вывод пользовательских форм на экран.

19.Отладка программ и обработка ошибок.

20.Последовательность разработки приложений.

27

Рекомендуемая литература.

СНиП 2.02.01-83*. Основания зданий и сооружений. – М.: ФГУП ЦПП, 2006. – 48 с.

Гарбер, Г.З. Основы программирования на Visual Basic и VBA в Excel 2007. – М.: СОЛОН-ПРЕСС, 2008. – 192 с.

Далматов, Б.И. Механика грунтов, основания и фундаменты (включая специальный курс инженерной геологии): учебник / Б.И. Далматов. – СПб.: Лань, 2012. – 416 с.

Кятов, Н.Х. Оптимизация проектных решений оснований и фундаментов с помощью Microsoft Excel и Visual Basic for Applications

(примеры расчета): Методические указания к практическим занятиям для слушателей повышения квалификации специалистов строительства и жилищно-коммунального комплекса по направлению «Строительство зданий и сооружений». – Черкесск: СевКавГГТА, 2013. – 40 с.

Олбрайт, К. Моделирование с помощью Microsoft Excel и VBA: разработка систем поддержки принятия решений.: пер. с англ. – М.: Издательский дом «Вильямс», 2005. – 672 с.: ил. – Парал. тит. англ.

Основания, фундаменты и подземные сооружения / М.И. ГорбуновПосадов, В.А. Ильичев, В.И. Крутов и др.; под общ. ред. Е.А. Сорочана и Ю.Г. Трофименкова. – М.: Стройиздат, 1985. – 480 с., ил. – (Справочник проектировщика).

28

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]