p = float(input("Enter pressure in Kpa "))if (p < 20684): # p < 3000 psi e = float(input("Enter joint efficiency ")) c = float(input("Enter corrosion allowance in mm ")) ltt = float(input("Enter tan-tan length in mm ")) do = float(input("Enter outside diameter in mm ")) t= float(input("Initialize thickness value in mm ")) step_size= float(input("Enter step side in mm ")) else: print("pressure too high!") quit() print("Select Material.")print("1.ASME SA285 C")print("2.ASME SA516")print("3.ASME SA537")print("4.Enter Material")
choice = input("Enter choice(1/2/3):")
#s=allowable stress
if choice == '1': s=235000 el=206842718.79 if choice == '2': s=260000 el=2 if choice == '3': s=310000 el=3 if choice == '4': s=int(input("Enter material allowable stress in Kpa ")) el=int(input("Enter modulus of elasticity in Kpa "))
allowable_pressure=0
while allowable_pressure < p: t=t+step_size d=do-2*t print("Select Head type.") print("1.hemi-heads") print("2.2:1 S.E. heads") print("3.100% - 6% heads")
choice_1 = input("Enter choice(1/2/3):")
if choice_1 == '1': l=ltt + 0.333*d if choice_1 == '2': l=ltt+0.16666*d if choice_1 == '3': l=ltt+0.16666*d #will work on digitizing the graphs to avoid having the user input values at every iteration print("your L/Do is ", l/do, "your Do/t is ", do/t) print("determine Factor A from ASME Code, Section II, Part D, Subpart 3, Fig G: Geometric Chart for Components Under External or Compressive Loadings") a = float(input("Enter A")) print("Using Factor “A”, enter the applicable material chart from ASME Code, Section II, Part D, Subpart 3 at the appropriate temperature and determine Factor “B.”") b = float(input("Enter B")) print("if A is to the left of material graph enter (1), on(2)") choice_2 = input("Enter choice(1/2):") if choice_2 == '1': allowable_pressure=(3*do/t) if choice_2 == '2': allowable_pressure=(4*a*el)/(3*do/t) print (t, "mm")print (allowable_pressure, "Kpa")
from django.shortcuts import render, redirectfrom django.contrib.auth.decorators import login_requiredfrom .import forms
@login_required(login_url="/login/")def AddMaterial(request): form=forms.AddMaterial() return render(request, 'webapp/Add_Material.html',{'form':form})
def thickness_l(p,ri,s,e,c): return (p*ri)/((2*s*e)+(0.4*p))+c
def thickness_c(p,ri,s,e,c): return (p*ri)/((2*s*e)-(0.6*p))+c
def thickness(p,ri,s,e,c): if thickness_l(p,ri,s,e,c) < thickness_c(p,ri,s,e,c): return thickness_c(p,ri,s,e,c) else: return thickness_l(p,ri,s,e,c)
# add equations for external pressure
@login_required(login_url="/login/")def selection(request, ): if request.method == 'POST': form=forms.Pressure_choice(request.POST) #if choice = internal if form = #? return redirect('/Internal/') #if choice = external elif form = #? return redirect('/External/') else return render(request, 'webapp/selection.html',{'form':form})
@login_required(login_url="/login/")def Internal_Pressure(request): form=forms.Internal_Pressure() return render(request, 'webapp/Internal_Pressure.html',{'form':form})
@login_required(login_url="/login/")def External_Pressure(request): form=forms.External_Pressure() return render(request, 'webapp/External_Pressure.html',{'form':form})
from django import formsfrom .import models
class AddMaterial(forms.ModelForm): class Meta: model=models.Material fields='__all__'
class Pressure_choice(forms.Form): CHOICES = (('1', 'Internal Pressure',), ('2', 'External Pressure',)) choice_field = forms.ChoiceField(widget=forms.RadioSelect, choices=CHOICES)
class Internal_Pressure(forms.Form): class Meta: Material=models.Material Material_choice = forms.ModelChoiceField(queryset=Material.objects.all(), widget=forms.Select) Pressure = forms.FloatField() Internal_radius = forms.FloatField() Joint_efficiency= forms.FloatField()
class External_Pressure(forms.Form): class Meta: Material=models.Material Head=models.Head Material_choice = forms.ModelChoiceField(queryset=Material.objects.all(), widget=forms.Select) Head_choice=forms.ModelChoiceField(queryset=Head.objects.all(), widget=forms.Select) Pressure = forms.FloatField() Internal_radius = forms.FloatField() Tan_to_Tan_Length= forms.FloatField() #etc..
{% extends 'webapp/base_layout.html' %}
{% block content %} <h1>External Pressure</h1> <form class="site-form" action="index.html" method="post"> {%csrf_token%} {{ form }} <input type="Submit" value="Submit">{% endblock %}
from django.conf.urls import urlfrom . import viewsfrom django.contrib.auth.views import login, logoutfrom django.contrib.staticfiles.urls import staticfiles_urlpatternsfrom django.conf.urls.static import staticfrom django.conf import settingsfrom django.views.generic.base import RedirectView
urlpatterns = [ url(r'^$', login, {'template_name': 'registration/login.html'}, name='login'), url(r'^logout/$', logout, {'template_name': 'registration/logout.html'}, name='logout'), url(r'^Internal/$', views.Internal_Pressure, name='Internal'), url(r'^External/$', views.External_Pressure, name='External'), url(r'^selection/$', views.selection, name='selection'), url(r'^AddMaterial/$', views.AddMaterial, name='AddMaterial'), #url(r'^.*$', RedirectView.as_view(pattern_name='login', permanent=False)),]
urlpatterns += staticfiles_urlpatterns()urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
from django.db import modelsfrom django.forms import ModelFormfrom django import forms
# Create your models here.class Material(models.Model): Name = models.CharField(max_length=20) allow_stress = models.FloatField() elasticity = models.FloatField()
def __str__(self): return self.Name
class Head(models.Model): Name = models.CharField(max_length=20)
def __str__(self): return self.Name