1. книги
  2. Техническая литература
  3. Сергей Фёдорович Гаврилов

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 и других

Вам также может быть интересно

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