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

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

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
Рис. 17. Шаблон листа Круглый.
Код главной процедуры Main приложения выглядит следующим
образом
Sub Main() InputsForm.Show IshDannForm.Show If FormaPodosh = 1 Then RazmerFundForm1.Show S = Dlina / Shirina With Worksheets("Таблица1") .Visible = True .Activate End With With Range("B7") Range(.Offset(1, 0), .Offset(1, 6).End(xlDown)).ClearContents Range(.Offset(2, 7), .Offset(2, 7).End(xlDown)).ClearContents End With Call Raschet1 ElseIf FormaPodosh = 2 Then RazmerFundForm2.Show With Worksheets("Таблица2") .Visible = True .Activate End With Call Ochistka Call Raschet2 ElseIf FormaPodosh = 3 Then RazmerFundForm2.Show With Worksheets("Таблица3") .Visible = True .Activate
41
End With Call Ochistka Call Raschet2 ElseIf FormaPodosh = 4 Then RazmerFundForm2.Show With Worksheets("Таблица4") .Visible = True .Activate End With Call Ochistka Call Raschet2 End If End Sub
В этой процедуре использована конструкция With для активизации
рабочих листов. Причем открывается тот лист, к которому обращается программа, а остальные листы остаются скрытыми.
В модуле включены три вспомогательные процедуры: Raschet1,
Raschet2 и Ochistka.
Sub Raschet1()
Range("I7") = Davlenie: Range("C7") = Shag: Range("B7") = 0
Range("D7") = Shirina: Range("E7") = S: Range("F7") = Range("I7") With Range("B7") .DataSeries Rowcol:=xlColumns, Step:=1, Stop:=Glubina / Shag .Offset(1, 1).Copy Range(.Offset(2, 1), .Offset(Glubina / Shag, 1)) Range(.Offset(0, 5), .Offset(0, 6)).Copy Range(.Offset(1, 5), .Offset(Glubina / Shag, 6)) Range(.Offset(1, 7), .Offset(1, 7)).Copy Range(.Offset(2, 7), .Offset(Glubina / Shag, 7)) End With
End Sub
Sub Raschet2()
Range("H7") = Davlenie: Range("C7") = Shag: Range("B7") = 0
Range("D7") = Shirina: Range("E7") = Range("H7") With Range("B7") .DataSeries Rowcol:=xlColumns, Step:=1, Stop:=Glubina / Shag .Offset(1, 1).Copy Range(.Offset(2, 1), .Offset(Glubina / Shag, 1)) Range(.Offset(0, 4), .Offset(0, 5)).Copy Range(.Offset(1, 4), .Offset(Glubina / Shag, 5)) Range(.Offset(1, 6), .Offset(1, 6)).Copy Range(.Offset(2, 6), .Offset(Glubina / Shag, 6)) End With
End Sub
Sub Ochistka() With Range("B7") Range(.Offset(1, 0), .Offset(1, 5).End(xlDown)).ClearContents Range(.Offset(2, 6), .Offset(2, 6).End(xlDown)).ClearContents
42
End With
End Sub
Процедура Raschet1 вызывается главной процедурой Main в случае,
когда определяются напряжения по глубине для прямоугольной формы подошвы фундамента. Сначала процедура при помощи Range вводит значения исходных данных в соответствующие ячейки шаблона листа «Прямоугольный», включая число 0 в ячейку В7. Затем столбец В, начиная с ячейки В8, заполняется номерами уровней с помощью метода DataSeries объекта Range. Заполнение ячеек завершается номером равным отношению Glubina/Shag. Если это отношение будет отличным от целого цисла, то расчет последней строчки на листе «Прямоугольный» программа не выполнит. Оставшаяся часть таблицы заполняется в результате копирования в ячейки соответствующих формул. Например, строка
Range(.Offset(0, 5), .Offset(0, 6)).Copy Range(.Offset(1, 5),
.Offset(Glubina / Shag, 6))
копирует формулы, содержащие в ячейках G7 и H7, в ниже расположенные ячейки до уровня, номер которого соответствует значению соотношения Glubina/Shag.
Если определяются напряжения по глубине для квадратной,
ленточной или круглой формы подошвы фундамента, то главная процедура Main вызывает процедуру Raschet2. Последующие вычисления производятся также как и в процедуре Raschet1.
Процедура Ochistka предназначена для очистки старой таблицы,
которая была получена при выполнении предыдущих расчетов.
43
Рекомендуемая литература
СНиП 2.02.01-83*. Основания зданий и сооружений. – М.: ФГУП
ЦПП, 2006. – 48 с.
Гарбер, Г.З. Основы программирования на Visual Basic и VBA в
Excel 2007. – М.: СОЛОН-ПРЕСС, 2008. – 192 с.
Далматов, Б.И. Механика грунтов, основания и фундаменты
(включая специальный курс инженерной геологии) : учебник / Б.И. Далматов. – СПб.: Лань, 2012. – 416 с.
Олбрайт, К. Моделирование с помощью Microsoft Excel и VBA: разработка систем поддержки принятия решений.: пер. с англ. – М.: Издательский дом «Вильямс», 2005. – 672 с.: ил. – Парал. тит. англ.
Основания, фундаменты и подземные сооружения / М.И. Горбунов­Посадов, В.А. Ильичев, В.И. Крутов и др.; под общ. ред. Е.А. Сорочана и Ю.Г. Трофименкова. – М.: Стройиздат, 1985. – 480 с., ил. – (Справочник проектировщика).
44
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]