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

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

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
данный оператор, то щелчок на командную кнопку OK ничего не даст и форма останется на экране.
Таким образом, полный код процедуры обработки события
OKButton_Click принимает следующий окончательный вид:
Private Sub OKButton_Click() If PryamPodosh Then FormaPodosh = 1 ElseIf KvadrPodosh Then FormaPodosh = 2 ElseIf LentPodosh Then FormaPodosh = 3 Else FormaPodosh = 4 End If With ShirinaBox If .Value = “” Or Not IsNumeric(.Value) Then MsgBox “Введено не числовое значение ширины
подошвы” .SetFocus Exit Sub End If Shirina = Val(ShirinaBox) End With With DlinaBox If .Value = “” Or Not IsNumeric(.Value) Then MsgBox “Введено не числовое значение длины подошвы” .SetFocus Exit Sub End If Dlina = Val(DlinaBox) End With With DavlenieBox If .Value = “” Or Not IsNumeric(.Value) Then MsgBox “Введено не числовое значение давления на
основание” .SetFocus Exit Sub End If Davlenie = Val(DavlenBox) End With With GlubinaBox If .Value = “” Or Not IsNumeric(.Value) Then MsgBox “Введено не числовое значение глубины” .SetFocus Exit Sub End If Glubina = Val(GlubinaBox) End With
31
Рис. 6. VBA-код пользовательской формы IshodDannieForm.
With ShagBox If .Value = “” Or Not IsNumeric(.Value) Then MsgBox “Введено не числовое значение шага” .SetFocus Exit Sub End If Shag = Val(ShagBox) End With Unload Me
End Sub
Для преждевременного завершения приложения используется
процедура CancelButton_Click, которая, как правило, выглядит следующим образом
Private Sub CancelButton_Click() Unload Me End
End Sub
На рис. 6 представлена часть VBA-кода пользовательской формы IshodDannieForm с тремя обработчиками событий: UserForm_Initialize, OKButton_Click и CancelButton_Click.
32
Рис. 8. Вид
формы
InputsForm.
Рис. 7. Рабочий лист Описание.
7. Приложение определения распределения вертикальных
нормальных напряжений.
В приложении определения распределения вертикальных нормальных напряжений по оси, проходящей через центр прямоугольной, квадратной, ленточной и круглой подошвы фундамента ввод данных производится с использованием пользовательских форм, а вывод результатов вычислений представляется в виде таблицы и графика на отдельном листе
Приложение состоит из пяти рабочих листов: Описание, Прямоугольный, Квадратный, Ленточный и Круглый. На листе Описание (рис. 7) расположена кнопка «Определить напряжения», при помощи которой запускается приложение. Остальные рабочие листы предназначены для вывода результатов расчета.
В приложение включены четыре пользовательских форм для выбора
типа подошвы фундамента и ввода исходных данных. После щелчка на кнопке «Определить напряжения» программа вызывает форму InputsForm (рис. 8).
33
Рис. 9. Форма
IshDannForm.
Форма содержит командные кнопки и четыре переключателя:
PryamPodosh, KvadrPodosh, LentPodosh и KruglPodosh, которые соответствуют прямоугольной, квадратной, ленточной и круглой форме подошвы фундамента. Процедура UserForm_Initialize устанавливает первый переключатель по умолчанию. Пользователь в процессе выпонения программы может выбрать любой переключатель. Процедура OKButton_Click сохраняет сведения о выбранном переключателе в глобальной переменной FormaPodosh, которая может принимать значения от 1 до 4. Процедура CancelButton_Click выгружает пользовательскую форму и завершает выполнение программы. VBA-код формы InputsForm с тремя обработчиками событий выглядит следующим образом
Private Sub CancelButton_Click() Unload Me End
End Sub
Private Sub OKButton_Click() If PryamPodosh Then FormaPodosh = 1 ElseIf KvadrPodosh Then FormaPodosh = 2 ElseIf LentPodosh Then FormaPodosh = 3 ElseIf KruglPodosh Then FormaPodosh = 4 End If Unload Me
End Sub
Private Sub UserForm_Initialize() PryamPodosh = True
End Sub
Пользовательская форма IshDannForm, показанная на рис. 9, предназначена для ввода величины дополнительного уплотняющего давления на основание, значения глубины и шага определения напряжений.
34
Форма содержит командные кнопки и три текстовых поля: DavlenBox, GlubinaBox и ShagBox. В текстовое поле GlubinaBox можно вводить как любое значение глубины, так и кратное ширины или диаметра подошвы, например, 4∙2.7=10.8. Значением величины шага может быть любое число, но не более 0,4 ширины или диаметра подошвы фундамента, например, 0,2∙2,7 = 0.54 м, 0,3∙2,7 = 0.81 м или 0,4∙2,7 = 1.08 м.
Если в текстовые поля форм приложений вводится значение с десятичными знаками, то между целыми и десятичными знаками ставится точка, а не запятая. В противном случае программа выполнить не верные вычисления или выдаст сообщение об ошибке.
Процедура UserForm_Initialize форматирует и очищает текстовое поле от ранее введенных значений. Процедура OKButton_Click сохраняет значение дополнительного уплотняющего давления в переменных Davlenie, Glubina и Shag с областью действия Public, а CancelButton_Click – выгружает форму и завершает выполнение программы. Код формы имеет следующий вид
Private Sub CancelButton_Click() Unload Me End
End Sub
Private Sub OKButton_Click() Glubina = Val(GlubinaBox) Davlenie = Val(DavlenBox) Shag = Val(ShagBox) Unload Me
End Sub
Private Sub UserForm_Initialize() GlubinaBox = Format(Glubina, "0.00") DavlenBox = Format(Davlen, "0.00") ShagBox = Format(Shag, "0.00") GlubinaBox = "" DavlenBox = "" ShagBox = ""
End Sub
Пользовательская форма RazmerFundForm1 (рис. 10) содержит командные кнопки и два текстовых поля - ShirinaBox и DlinaBox, предназначенные для ввода ширины и длины подошвы фундамента. Данная форма вызывается главной процедурой Main в том случае, если в форме InputsForm выбрана прямоугольная форма подошвы фундамента.
35
Рис. 11. Форма
RazmerFundForm2.
Рис. 10. Форма RazmerFundForm1.
Процедуры UserForm_Initialize и CancelButton_Click также
выполняют те же функции, что и в предыдущих формах. Процедура OKButton_Click сохраняет значения ширины и длины подошвы фундамента соответственно в переменных Shirina и Dlina с областью действия Public. Код формы RazmerFundForm1 принимает следующий вид
Private Sub CancelButton_Click() Unload Me End
End Sub
Private Sub OKButton_Click() Shirina = Val(ShirinaBox) Dlina = Val(DlinaBox) Unload Me
End Sub
Private Sub UserForm_Initialize() ShirinaBox = Format(Shirina, "0.00") DlinaBox = Format(Dlina, "0.00") ShirinaBox = "" DlinaBox = ""
End Sub
Пользовательская форма RazmerFundForm2 (рис. 11) содержит командные кнопки и текстовое поле ShirinaBox для ввода ширины или диаметра подошвы фундамента. Если в форме InputsForm выбрана квадратная или ленточная форма подошвы фундамента, то в текстовое поле вводится ширина подошвы, а если круглая – то диаметр подошвы. Данная форма вызывается главной процедурой Main, если выполняются расчеты для квадратной, ленточной или круглой подошвы фундамента.
36
Рис. 12. Шаблон листа Прямоугольный.
Процедуры UserForm_Initialize и CancelButton_Click также
выполняют те же функции, что и в предыдущих формах. Процедура OKButton_Click сохраняет значения ширины или диаметра подошвы фундамента в глобальной переменной Shirina. Код формы
RazmerFundForm2 в этом случае принимает следующий вид
Private Sub CancelButton_Click() Unload Me End
End Sub
Private Sub OKButton_Click() Shirina = Val(ShirinaBox) Unload Me
End Sub
Private Sub UserForm_Initialize() ShirinaBox = Format(Shirina, "0.00") ShirinaBox = ""
End Sub
При запуске приложения открывается только лист Описание, а остальные рабочие листы скрыты и отображаются на экране по мере возникновения в них необходимости.
Часть приложения разрабатывается в виде шаблонов с помощью интерфейса Excel без использования VBA-кода.
Шаблон листа «Прямоугольный» представлен на рис. 12.
37
bz2
В ходе разработки шаблона выполняются следующие действия:
1. В ячейку С3 вводится текст названия выполняемых расчетов:
Результаты определения напряжений для прямоугольной подошвы фундамента.
2. В ячейки B6:I6 вводятся соответственно «Уровни», «Шаг», «Ширина», «η», «Давление», «z», «ξ» и «σzp». Уровни – это порядковые номера рассматриваемых глубин, где определяются напряжения. Шаг – это шаг определения напряжений. Ширина – это ширина подошвы фундамента. η – это отношение длины к ширине подошвы фундамента. Давление – это дополнительное уплотняющее давление на основание. z – это расстояние от подошвы фундамента до рассматриваемой глубины, где определяется напряжение. ξ – это относительна глубина расположения рассматриваемого уровня, определяемая по формуле
, где b-
ширина подошвы фундамента. σzp – это вертикальное нормальное напряжение от внешней нагрузки на глубине z, определяемая по формуле
(5).
3. В ячейку G7 вводится формула B7*$C$7. При запуске приложения содержимое ячейки будет копироваться вниз. Абсолютная ссылка $C$7 остается неизменным, а относительная ссылка B7 каждый раз увеличивается на единицу. В результате в ячейки, расположенные ниже ячейки B7, автоматически вносятся расстояния от подошвы фундамента.
4. В ячейку H7 вводится формула 2*G7/$D$7. Содержимое ячейки также будет копироваться вниз, т.е. в остальные ячейки автоматически будут вноситься относительные глубины рассматриваемых уровней.
5. В ячейку I8 вводится формула (140), которая в строке формул принимает следующий вид
=2*$I$7/ПИ()*(ATAN($E$7/(H8*КОРЕНЬ(1+H8^2+$E$7^2)))+(H8*$E$7*( 1+ +$E$7^2+2*H8^2))/((H8^2+$E$7^2)*(1+H8^2)*КОРЕНЬ(1+H8^2+$E$7^2)) )
Содержимое ячейки также будет копироваться вниз, и в результате
автоматически будут определяться напряжения на разных глубинах.
6. С помощью мастера диаграмм строится шаблон графика, показанный на рис. 6.8. Самого графика пока нет, так как нет числовых значений z и σzp. После запуска приложения и ввода необходимых данных с помощью пользовательских форм в столбцах G7:G27 и I7:I27 появятся значения z и σzp, а затем мгновенно появится и сам график. Глубину определения напряжений выбирает пользователь.
7. После запуска приложения программа введет необходимые исходные данные для расчета напряжений в ячейки C7:F7.
38
Рис. 14. Пример определения напряжений для ленточной подошвы.
Рис. 13. Пример определения напряжений для прямоугольной подошвы.
В качестве примера на рис. 13 и 14 приведены результаты расчета
напряжений по глубине через каждые 1,08 и 0,64 м соответственно для прямоугольной и ленточной формы подошвы фундамента. Исходные данные также даны на этих рисунках.
39
Рис. 16. Шаблон листа Ленточный.
Рис. 15. Шаблон листа Квадратный.
Шаблоны остальных листов разрабатываются также как и шаблон
листа Прямоугольный. В ячейках F7 и G7 листов «Квадратный», «Ленточный» и «Круглый» вводятся соответственно формулы B7*$C$7 и
2*F7/$D$7. В ячейку H8 рабочих листов вводятся следующие формулы:
- для шаблона листа «Квадратный» (рис. 15)
=2*$H$7/ПИ()*(ATAN(1/(G8*КОРЕНЬ(2+G8^2)))+(G8*(2+2*G8^2))/((1+
+G8^2)*(1+G8^2)*КОРЕНЬ(2+G8^2)))
- для шаблона листа «Ленточный» (рис. 16)
=2*$H$7/ПИ()*(ATAN(1/G8)+G8/(1+G8^2))
- для шаблона листа «Круглый» (рис. 17)
=$H$7*(1-(1/(1+($D$7/(2+F8))^2))^(3/2))
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]