Python 3. Расчет веса детали

Сергей Фёдорович Гаврилов, 2020

Эта книга для начинающих программистов, желающих начать программировать на языке Python 3. Набор программ создан для цеховых конструкторов-механиков как ежедневный рабочий инструмент. Книга будет полезна для студентов-механиков. Предлагаемые в книге расчеты экономят рабочее время и уменьшает ошибки в расчетах. Данная книга – сборник листингов рабочих программ. Все программы в разное время разработаны самим автором при возникновении необходимости данных расчетов. Все программы проверены и постоянно используются в работе конструктора-механика. Листинги программ снабжены пояснениями.

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Python 3. Расчет веса детали предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

Листинги программ:

Для расчета веса детали — деталь мысленно разобъем на ряд типовых элементов: на цилиндры, конуса, трубы и т.д. У элементов запишем все размеры с чертежа и длинны элементов. Затем запускаем программу Ves_G.py

Программа выведет меню из 17 пунктов. Меню примитивное — на мышь меню не реагирует. Для выполнения какого либо пункта меню — вводим число — номер пункта меню и Enter.. Программа закольцована, при исполнении следующего пункта меню — результат расчета веса суммируется с ранее найденным результатом — в итоге мы постоянно имеем суммарный вес уже просчитанных элементов. Проограмма — Ves_G.py…головная — в зависимости от выбранного пункта меню — программа автоматически подключает к работе одну из 17 подпрограмм. Главное: Головная программа и детальные программы ( подпрограммы ) должны располагаться в папке Ves..

Примечание: Python 3.4 имеет особенность — когда головная программа вызывает подпрограммы, то как обычно, подпрограмма забирает исходные данные, расчитывает результат и отдает его головной программы. Но вот мы повторно вызваем подпрограмму для расчета по изменившимся исходным данным — Python 3.4 игнорирует, то что данные изменились и выдает нам предыдущий результат. Чтобы не попасть на такую ошибку, приходится вести учет применения подпрограмм — при первом применении считаем как обычно,

import Krug # Подключили модуль расчета круглого сечения

при втором и последующем применении подпрограмму вызываем функцией:

from imp import reload

reload (Krug) # Вызываем на повторный расчет подпрограмму (Krug)…

Только так получаем верные результаты.. ( В других языках программирования я такого не встречал!! )..

Программа Ves_G.py

# — * — coding: cp1251 — *-

# Программа расчета веса и других параметров

# объемных геометрических элементов..

# Результаты расчета элемента смотри в файле Rezul.txt

# ===============================================

import sys # Подключили основные библиотеки

import shutil # Подключили модуль копирования файлов

import math # Подключили математич модуль

import time # Подключили модуль времени

import datetime # Подключили модуль даты

Pii=math.pi # Вытащили число"Пи"

#…..…..…..…..….……………….…………………….

# time.strftime("%d.%m.%Y") # Работа с датой и временем

# a = datetime.datetime.today().strftime("%Y%m%d")

# print(a) # '20170405'

today = datetime.datetime.today()

# print( today.strftime("%m/%d/%Y") ) # '04/05/2017'

# print( today.strftime("%Y-%m-%d-%H.%M.%S") ) # 2017-04-05-00.18.00

Ddd=( today.strftime("%Y-%m-%d-//-%H.%M.%S") )

# Gsf = 461030/2725231222..

print("")

Dds=""+Ddd+"Расчет веса элементов детали"

print(Dds)

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

#…..…..…..…..….……………….…………………….

fv = open('Vn.txt', 'r') # Открыли файл для чтения

# Читаем записанные число часов в текстовом виде

ct=fv.read()

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

#…..…..…..…..….……………….…………………….

uu=""

# print (uu)

# print (uu)

u="Забрали из файла число часов ( строкой ) ="+ct

# print (u)

xt=float(ct) # Принудительно в вещественное число

xtc=int(xt) # Целое число часов из файла

# print (uu)

#…..…..…..…..….……………….…………………….

x=time.time() # Нашли число секунд из системы компьютера

x=float(x) # Принудительно в вещественное число

xtk=int(x) # Преобразуем секунды к целому числу

xtmk=int(x/60) # Преобразуем минуты к целому числу

xtck=int(x/3600) # Преобразуем часы к целому числу

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

xtdk=int(xtck/24) # Преобразуем дни к целому числу

utdk=str(xtdk) # Преобразуем число дней в строку

uk="Забрали из системы компьютера число часов ="+utck

# print (uk)

# print (uu)

y=int(xtck-xtc) # Разность часов из компа и из файла

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

u="Разность в часах с временем из файла ="+uy

# print (u)

# print (uu)

t1="."

t2="Ф"

t3="в"

t4="о"

t5="р"

t6="П"

t7="С"

t8="г"

t9="а"

t10="."

t11="Г"

t12="м"

t13="и"

t14="л"

t15="т"

t16="с"

t17="2"

t18="0"

t19="т"

t20="1"

t21=""

ufp=t6+t5+t4+t8+t5+t9+t12+t12+t13+t16+t15

ufa=t11+t9+t3+t5+t13+t14+t4+t3+t1+t21+t7+t1+t2+t1

ufg=t17+t18+t20+t17+t21+t8+t1

if y>10:

# Далее все строки пишем с отступом в четыре пробела от начала строки…

#…..…..…..…..….……………….…………………….

fv = open('Vn.txt', 'w') # Открыли файл для записи

# Записываем число часов в текстовом виде

fv.write(utck)

u="Записали число часов в Файл"

print (u)

print (uu)

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

x=xtk/14

y=int(xtk/14)

if y==x:

# Далее все строки пишем с отступом в восемь пробелов от начала строки…

print (uu)

print (""+ufp)

print (uu)

print (""+ufa)

print (uu)

print (""+ufg)

print (uu)

print ("====================")

print (uu)

print (uu)

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

# Далее все строки пишем с отступом в четыре пробела от начала строки…

print (uu)

#…..…..…..…..….……………….……………………. # Далее все строки пишем без отступа…

u="Работа с временем"

# print (u)

# print (uu)

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

#…..…..…..…..….……………….…………………….

#…..…..…..…..….……………….…………………….

f = open('Rezult.txt', 'w') # Открыли файл для записи ( старое удалим )

# Записываем числа в текстовом виде

u=uu+"\n"# Добавим код перевода строки

f.write(u)

u=Dds+"\n"# Добавим код перевода строки

f.write(u)

u=utdk+"\n"# Добавим код перевода строки

f.write(u) # Запишем — сколько дней прошло от даты Х

u=uu+"\n"# Добавим код перевода строки

f.write(u)

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

u=u+"\n"# Добавим код перевода строки

f.write(u) # записали в файл

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

#…..…..…..…..

#…..…..…..…..

print (uu)

print (uu)

print (uu)

u="РАСЧЕТ ВЕСА ДЕТАЛИ"+"\n"

print (u)

print (uu)

u="Программа расчитывает вес элементарного фрагмента детали"+"\n"

print (u)

u="выводит вес фрагмента на экран, затем суммирует с весом"+"\n"

print (u)

u="уже расчитанных фрагментов. Если фрагмент представляет"+"\n"

print (u)

u="собой полость ( пустоту ), то его длина вводится со знаком"+"\n"

print (u)

u="минус — вес пустого фрагмента будет вычитаться из суммарного"+"\n"

print (u)

u="веса детали."+"\n"

print (u)

u="Одновременно с расчетом веса фрагмента — программа"+"\n"

print (u)

u="расчитывает геометрические характеристики сечения фрагмента"+"\n"

print (u)

u="необходимые для расчетов на прочность и других расчетов"+"\n"

print (u)

u="На экран эти результаты не выводятся, а записываются"+"\n"

print (u)

u="в файл Rezult.txt — который можно посмотреть после"+"\n"

print (u)

u="окончания расчета веса детали."+"\n"

print (u)

print (uu)

u="Гаврилов С.Ф. ноябрь 2012 г."+"\n"

print (u)

print (uu)

u="================"+"\n"

print (u)

print (uu)

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

# — — — —

global Kodis # Обьявили глобальную переменную

global Ves # Обьявили глобальную переменную

global VesS # Обьявили глобальную переменную

global VesT # Обьявили глобальную переменную

VesS=0.000000

VesT=0.000000

# Gsf = 461030/2725231222..

# Pii=math.pi # Вытащили число"Пи"

Kodis=1

Kodp1=0

Kodp2=0

Kodp3=0

Kodp4=0

Kodp5=0

Kodp6=0

Kodp7=0

Kodp8=0

Kodp9=0

Kodp10=0

Kodp11=0

Kodp12=0

Kodp13=0

Kodp14=0

Kodp15=0

Kodp16=0

Kodp17=0

Kodp18=0

Kodp19=0

Kodp20=0

Kodim=0

Kodimp=1

uu=""

import math # Подключили математич модуль

# — — — — — — — — — —

while Kodis>0:

# Далее все строки пишем с отступом в четыре пробела от начала строки…

uu="==================================="

print (uu)

uu=""

print (uu)

print (uu)

u="Расчет веса сечений с суммированием,"

print (u)

print (uu)

print (uu)

u="1 — Цилиндр"

print (u)

u="2 — Труба D и d"

print (u)

u="3 — Труба D и S"

print (u)

u="4 — Шестигранник"

print (u)

u="5 — Пластина"

print (u)

u="6 — Треугольник прямоугольный"

print (u)

u="7 — Треугольник по стронам"

print (u)

u="8 — Трапеция"

print (u)

u="9 — Косынка"

print (u)

u="10 — Усеченный конус"

print (u)

u="11 — Усеченная пирамида"

print (u)

u="12 — Горбушка"

print (u)

u="13 — Кольцо ( в сечении трапеция )"

print (u)

u="14 — Канавка под клиновой ремень"

print (u)

u="15 — Добавить обьем в куб. мм."

print (u)

u="16 — Пересчет на другой материал"

print (u)

u="17 — Обнулить вес"

print (u)

print (uu)

u="0 — Выход из программы ( ноль )"

print (u)

print (uu)

print (uu)

u="Размеры вводим в в мм. Плотность стали 7,85;"

print (u)

print (uu)

Kodis=input( )

Kodis=float(Kodis) # Принудительно в вещественное число

#…..…..…..…..…..…..…..….…..….….…..

#…..…..…..…..…..…..…..….…..….….…..

if Kodis ==1: # Выбор расчета вида сечения ( круг )

# Далее все строки пишем с отступом в восемь пробелов от начала строки…

if Kodp1 ==0:

# Далее все строки пишем с отступом в двенадцать пробел от начала строки…

import Krug # Подключили модуль расчета круглого сечения

VesT=Krug.px # Извлекаем из модуля значение переменной

u="Вес цилиндрического элемента ="

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

u=u+t # сложим строки

print (uu)

print (u)

VesS=VesS+VesT # Суммарный вес

u="Суммарный вес ="

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

u=u+t # сложим строки

print (uu)

print (u)

Kodp1=1 # Первое применение произошло

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

print (uu)

print (u)

print (uu)

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

# Далее все строки пишем с отступом в восемь пробел от начала строки…

else:

# Далее все строки пишем с отступом в двенадцать пробел от начала строки…

from imp import reload

reload (Krug)

VesT=Krug.px # Извлекаем из модуля значение переменной

u="Вес цилиндрического элемента ="

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

u=u+t # сложим строки

print (uu)

print (u)

VesS=VesS+VesT # Суммарный вес

u="Суммарный вес ="

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

u=u+t # сложим строки

print (uu)

print (u)

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

print (uu)

print (u)

print (uu)

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

#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

# Gsf = 461030/2725231222..

# Далее все строки пишем с отступом в четыре пробела от начала строки…

if Kodis ==2: # Выбор расчета вида сечения ( Труба D,d )

# Далее все строки пишем с отступом в восемь пробел от начала строки…

if Kodp2 ==0:

# Далее все строки пишем с отступом в двенадцать пробел от начала строки…

import Truba # Подключили модуль расчета Труба D,d

VesT=Truba.px # Извлекаем из модуля значение переменной

u="Вес трубного элемента ="

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

u=u+t # сложим строки

print (uu)

print (u)

VesS=VesS+VesT # Суммарный вес

u="Суммарный вес ="

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

u=u+t # сложим строки

print (uu)

print (u)

Kodp2=1 # Первое применение произошло

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

print (uu)

print (u)

print (uu)

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

# Далее все строки пишем с отступом в восемь пробел от начала строки…

else:

# Далее все строки пишем с отступом в двенадцать пробел от начала строки…

from imp import reload

reload (Truba)

VesT=Truba.px # Извлекаем из модуля значение переменной

u="Вес трубного элемента ="

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

u=u+t # сложим строки

print (uu)

print (u)

VesS=VesS+VesT # Суммарный вес

u="Суммарный вес ="

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

u=u+t # сложим строки

print (uu)

print (u)

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

print (uu)

print (u)

print (uu)

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

#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

# Далее все строки пишем с отступом в четыре пробела от начала строки…

if Kodis ==3: # Выбор расчета вида сечения ( Труба D,S )

# Далее все строки пишем с отступом в восемь пробел от начала строки…

if Kodp3 ==0:

# Далее все строки пишем с отступом вдвенадцать пробел от начала строки…

import TrubaS # Подключили модуль расчета Труба D,S

VesT=TrubaS.px # Извлекаем из модуля значение переменной

u="Вес трубного элемента S ="

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

u=u+t # сложим строки

print (uu)

print (u)

VesS=VesS+VesT # Суммарный вес

u="Суммарный вес ="

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

u=u+t # сложим строки

print (uu)

print (u)

Kodp3=1 # Первое применение произошло

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

print (uu)

print (u)

print (uu)

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

# Далее все строки пишем с отступом в восемь пробел от начала строки…

else:

# Далее все строки пишем с отступом в двенадцать пробел от начала строки…

from imp import reload

reload (TrubaS)

VesT=TrubaS.px # Извлекаем из модуля значение переменной

u="Вес трубного элемента S ="

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

u=u+t # сложим строки

print (uu)

print (u)

VesS=VesS+VesT # Суммарный вес

u="Суммарный вес ="

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

u=u+t # сложим строки

print (uu)

print (u)

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

print (uu)

print (u)

print (uu)

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

#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

# Далее все строки пишем с отступом в четыре пробела от начала строки…

if Kodis ==4: # Выбор расчета вида сечения ( Шестигранник )

# Далее все строки пишем с отступом в восемь пробел от начала строки…

if Kodp4 ==0:

# Далее все строки пишем с отступом в двенадцать пробел от начала строки…

import Sestig # Подключили модуль расчета Sestig_2

VesT=Sestig.px # Извлекаем из модуля значение переменной

u="Вес шестигранника ="

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

u=u+t # сложим строки

print (uu)

print (u)

VesS=VesS+VesT # Суммарный вес

u="Суммарный вес ="

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

u=u+t # сложим строки

print (uu)

print (u)

Kodp4=1 # Первое применение произошло

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

print (uu)

print (u)

print (uu)

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

# Далее все строки пишем с отступом в восемь пробел от начала строки…

else:

# Далее все строки пишем с отступом в двенадцать пробел от начала строки…

from imp import reload

reload (Sestig)

VesT=Sestig.px # Извлекаем из модуля значение переменной

u="Вес шестигранного элемента ="

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

u=u+t # сложим строки

print (uu)

print (u)

VesS=VesS+VesT # Суммарный вес

u="Суммарный вес ="

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

u=u+t # сложим строки

print (uu)

print (u)

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

print (uu)

print (u)

print (uu)

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

#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

# Далее все строки пишем с отступом в четыре пробела от начала строки…

if Kodis ==5: # Выбор расчета вида сечения ( Пластина )

# Далее все строки пишем с отступом в восемь пробел от начала строки…

if Kodp5 ==0:

# Далее все строки пишем с отступом в двенаддцать пробел от начала строки…

import Prug # Подключили модуль расчета Prug_2

VesT=Prug.px # Извлекаем из модуля значение переменной

u="Вес пластины ="

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

u=u+t # сложим строки

print (uu)

print (u)

VesS=VesS+VesT # Суммарный вес

u="Суммарный вес ="

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

u=u+t # сложим строки

print (uu)

print (u)

Kodp5=1 # Первое применение произошло

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

print (uu)

print (u)

print (uu)

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

# Далее все строки пишем с отступом в восемь пробел от начала строки…

else:

# Далее все строки пишем с отступом в двенадцать пробел от начала строки…

from imp import reload

reload (Prug)

VesT=Prug.px # Извлекаем из модуля значение переменной

u="Вес прямоугольного элемента ="

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

u=u+t # сложим строки

print (uu)

print (u)

VesS=VesS+VesT # Суммарный вес

u="Суммарный вес ="

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

u=u+t # сложим строки

print (uu)

print (u)

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

print (uu)

print (u)

print (uu)

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

#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

# Далее все строки пишем с отступом в четыре пробела от начала строки…

if Kodis ==6: # Выбор расчета вида ( Прямоуг. треугольник )

# Далее все строки пишем с отступом в восемь пробел от начала строки…

if Kodp6 ==0:

# Далее все строки пишем с отступом в двенадцать пробел от начала

# строки…

import Treu # Подключили модуль расчета Treu_2

VesT=Treu.px # Извлекаем из модуля значение переменной

u="Вес Прямоуг. треугольникa ="

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

u=u+t # сложим строки

print (uu)

print (u)

VesS=VesS+VesT # Суммарный вес

u="Суммарный вес ="

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

u=u+t # сложим строки

print (uu)

print (u)

Kodp6=1 # Первое применение произошло

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

print (uu)

print (u)

print (uu)

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

# Далее все строки пишем с отступом в восемь пробел от начала строки…

else:

# Далее все строки пишем с отступом в двенадцать пробел от начала строки…

from imp import reload

reload (Treu)

VesT=Treu.px # Извлекаем из модуля значение переменной

u="Вес Прямоуг. треугольникa ="

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

u=u+t # сложим строки

print (uu)

print (u)

VesS=VesS+VesT # Суммарный вес

u="Суммарный вес ="

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

u=u+t # сложим строки

print (uu)

print (u)

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

print (uu)

print (u)

print (uu)

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

#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

# Gsf = 461030/2725231222..

# Далее все строки пишем с отступом в четыре пробела от начала строки…

if Kodis ==7: # Выбор расчета вида сечения ( Tреугольник )

# Далее все строки пишем с отступом в восемь пробел от начала строки…

if Kodp7 ==0:

# Далее все строки пишем с отступом в двенадцать пробел от начала строки…

import Treu3 # Подключили модуль расчета Treu3

VesT=Treu3.px # Извлекаем из модуля значение переменной

u="Вес Треугольного элемента ="

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

u=u+t # сложим строки

Конец ознакомительного фрагмента.

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Python 3. Расчет веса детали предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

Смотрите также

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я