Координаты точек на радиусной кривой

Программа бывает необходима при построении сегмента с радиусом

большой величины – который построить непосредственной разметкой

сложно или невозможно из за мешающих препятствий.

Результаты расчета записываются в файл '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 по оси Х-Х = "

ss=str(Lx) # Преобразуем число в строку

Xord=u+ss

u=Xord+"\n"

f.write(uu)

f.write(u)

x=(R*R)-(Lx*Lx)

z=math.sqrt(x)

y=R-z # Прогиб при хорде = Lx*2

ht=b-y # Расчитали величину подьема

u=" На растоянии от центра = "

ss=str(Lx) # Преобразуем число в строку

u=u+ss

print (u)

print (uu)

u=" Величина подьема ( перпендикуляра ) Hm = "

ss=str(ht) # Преобразуем число в строку

u=u+ss

print (u)

f.write(u)

f.write(uu)

print (uu)

u=" ================================================= "

print (u)

f.write(u)

print (uu)

input( ) # Ожидание нажима Ентер

# Далее Конец Cдвига – четыре пробела в начале каждой строки

print (uu)

input( ) # Ожидание нажима Ентер

print (uu)

# ....... ....... ....... ...... ...... ....... ....... ......

f.write(uu)

f.write(uuu)

f.close() # закрыли файл

# ....... ....... ....... ...... ...... ....... ....... ....... ........ ........ ........

u=" ...... ...... ...... Конец программы ...... ...... ...... "

print (u)

print (uu)

input( ) # Ожидание нажима Ентер – Позволяет рассмотреть результаты расчета

# ..... ..... ..... Конец листинга программы ..... ..

Загрузка...