# Далее идет расчет по формуле..
yx=(((y2-y1)*(xx-x1))/(x2-x1))+y1
# Далее выводится на экран результат расчета
u=" ........................................................................ "
print (u)
print (u)
print (uu)
print (uu)
u=" X1 = ", x1," Y1 = ",y1," "
print (u)
print (uu)
u=" X2 = ", x2," Y2 = ",y2," "
print (u)
print (uu)
u=" Xx = ", xx," Yx = ",yx," "
print (u)
print (uu)
u=" ..... ..... ..... ..... ..... ...... ...... "
print (u)
print (u)
print (uu)
print (uu)
input( ) # Ожидание нажима Ентер
# Далее делаем еще один расчет на тех же исходных данных и выводим результаты.
Pii=math.pi # Вытащили число " Пи " и поместили в переменную Pii …
cc=((x2-x1)*(x2-x1))+((y2-y1)*(y2-y1))
c=math.sqrt(cc) # Квадратный корень из " cc "
cs=str(c) # Преобразуем число в строку
u=" Длина линии x1;y1 – x2;y2 = "+cs
print (uu)
print (u)
a=(y2-y1)/(x2-x1)
aur=math.atan(a) # Угол aur в радианах через арс тангенс
au=aur*180/Pii # Угол au в градусах ( переводим ).
aus=str(au) # Преобразуем число в строку
u=" Угол линии x1;y1 – x2;y2 с осью Х = "+aus+" градус "
print (uu) # Выводим пустую строку
print (u) # Выводим результат – угол в градусах
print (uu)
print (uu)
input( ) # Ожидание нажима Ентер что бы можно было прочитать результаты.
# ..... ..... ..... Конец листинга программы ..... ....
Расчет параметров численным интегрированием
Данная программа разработана для расчета момента инерции сложного сечения. Для расчета сечение было разбито по горизонтали на одинаковые по высоте участки ( шаги ). Длинны участков были замеряны и внесены в таблицу. Затем запускаем программу и последовательно вводим из таблицы значения длинн участков. Программа расчитывает момент инерции участка и площадь участка – затем суммирует эти величины. При вводе нуля на запрос длинны – программа показывает результат работы. Программу легко переделать на расчеты интеграции по другим законам.
# -*– coding: cp1251 -*-
# Алгоритм расчета момента инерции и площади интегрированием
import math # Подключили математич модуль
u=" Алгоритм временного расчета Jx интегрированием,"
uu=" "
uuu=" ...... ...... ....... ....... ...... ....... ....... "
print (uu)
print (uu)
print (u)
print (uuu)
print (uu)
u=" Ввести Шаг вдоль оси Y-Y "
print(u)
t=0.00
t=input( ) # Вводим число
t=float(t) # Принудительно в вещественное число
print (uu)
J=0.0000
J=float(J)
Jx=0.0000
Jx=float(Jx)
S=0.0000
S=float(S)
Ss=0.0000
Ss=float(Ss)
d=0.00000001
d=float(d)
L=0.0
L=float(L)
n=1
n=float(n)
while d>0:
# Далее строки начинаются с четырех пробелов.
L=L+t # Суммируем смещение по оси
ss=str(n) # Преобразуем число в строку
Lt=str(L) # Преобразуем число в строку
u=" Ввести высоту по оси Y-Y Ввод № "
u=u+ss+" Смещение по оси = "+Lt
print(u)
d=0.00
d=input( ) # Вводим число
d=float(d) # Принудительно в вещественное число
print (uu)
J=t*d*d*d/12 # Находим момент инерции элемента
Jx=Jx+J # Суммируем J
S=t*d # Нашли площадь элемента
Ss=Ss+S # Суммируем S
n=n+1 # Счетчик числа вводов
# Далее строки начинаются без пробелов.
Pii=math.pi # Вытащили число " Пи "
# Rk=math.sqrt(a) # Квадратный корень из " а "
# sur=math.asin(x) # Угол А в радианах
# su=sur*180/Pii # Угол А в градусах
print (uu)
uuuu=" ,,,, ,,,, ,,,, ,,,,, ,,,,, ,,,, ,,,,, ,,,,, ,,,,, "
print (uuuu)
print (uu)
u=" Площадь сечения = "
ss=str(Ss) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
u=" Момент инерции по оси Х-Х = "
ss=str(Jx) # Преобразуем число в строку
u=u+ss
print (u)
print (uu)
print (uu)
u=" ...... ...... ...... Конец рассчета ...... ...... ...... "
print (u)
print (uu)
print (uu)
input( ) # Ожидание нажима Ентер
print (uu)
# .............
# Конец программы.
Координаты точек на радиусной кривой
Программа бывает необходима при построении сегмента с радиусом
большой величины – который построить непосредственной разметкой
сложно или невозможно из за мешающих препятствий.
Результаты расчета записываются в файл 'Rezult.txt'.
Листинг программы.
# -*– coding: cp1251 -*-
import math # Подключили математический модуль
import sys # Подключили основные библиотеки
# ....... ....... ....... ...... ...... ....... ....... ......
Pii=math.pi # Вытащили число " Пи "
f = open('Rezult.txt', 'w') # Открыли файл для записи
# Записываем числа в текстовом виде
uu=" "
u=uu+"\n" # Добавим код перевода строки
f.write(u)
u1=" Расчет координат точек на радиусной кривой "
u=u1+"\n"
f.write(u)
uu=" "+"\n"
f.write(uu)
uuu=" ,,,,,,,,,, ,,,,,,,, ,,,,,,,, ,,,,,,,, ,,,,,,,, ,,,,,,,, "+"\n"
f.write(uuu)
f.write(uu)
print (uu)
u=" Построение большого радиуса методом подьема "
print (u)
print (uu)
u=" Размер по горизонтали отсчитывается от центра хорды "
print (u)
u=" от точки Х2 на хорде проводим перпендикуляр Нм расчитанной величины. "
print (u)
u=" При вводе размера по горизонту = нулю – выход из программы "
print (u)
print (uu)
input( ) # Ожидание нажима Ентер
print (uu)
a=0.00000000
y=0.00000000
ug=0.00000000
ugg=0.00000000
R=0.00000000
hm=0.00000000
ht= 0.0000000
u=" Введите радиус "
print (u)
print (uu)
R=input( ) # Вводим число
R=float(R) # Принудительно в вещественное число
u=" Радиус заданной кривой = "
ss=str(R) # Преобразуем число в строку
Rad=u+ss
u=Rad+"\n"
f.write(u)
u=" Введите Хорду L "
print (u)
print (uu)
a=input( ) # Вводим число
a=float(a) # Принудительно в вещественное число
u=" Хорда максимальная заданная L = "
ss=str(a) # Преобразуем число в строку
Xord=u+ss
u=Xord+"\n"
f.write(u)
# Находим значения максимального прогиба при X2 = 0....
x=((R*R)-(a*a/4))
b=R-(math.sqrt(x)) # Квадратный корень из " x "
# b – максимальный прогиб…
u=" Подъем максимальный в центре хорды = "
ss=str(b) # Преобразуем число в строку
Progi=u+ss
u=Progi+"\n"
f.write(u)
x=(a/2)/R
y=math.asin(x)
v=math.cos(y)
aur=2*y
au=aur*180/Pii # Угол А в градусах
Lx= 0.0000001 # <Начальное значение>
while Lx>0:
# Далее Cдвиг – четыре пробела в начале каждой строки
print (uu)
u=" Введите растояние от центра хорды до перпендикуляра X2 "
print (u)
print (uu)
Lx=input( ) # Вводим число
Lx=float(Lx)
u=" От центра хорды до точки X2 по оси Х-Х = "