summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Connections/Shear/Finplate/finPlateMain.py211
-rw-r--r--Connections/Shear/Finplate/finplate_calc1.py10
2 files changed, 115 insertions, 106 deletions
diff --git a/Connections/Shear/Finplate/finPlateMain.py b/Connections/Shear/Finplate/finPlateMain.py
index c9cdf33..d3509b1 100644
--- a/Connections/Shear/Finplate/finPlateMain.py
+++ b/Connections/Shear/Finplate/finPlateMain.py
@@ -62,13 +62,9 @@ class MainController(QtGui.QMainWindow):
self.ui.comboType.currentIndexChanged[str].connect(self.combotype_currentindexchanged)
self.ui.comboType.setCurrentIndex(0)
-
-
self.ui.comboConnLoc.currentIndexChanged[str].connect(self.setimage_connection)
- self.ui.btn_Reset.clicked.connect(self.resetbtn_clicked)
- self.ui.btn_Design.clicked.connect(self.design_btnclicked)
self.ui.btnInput.clicked.connect(lambda: self.dockbtn_clicked(self.ui.inputDock))
self.ui.btnOutput.clicked.connect(lambda: self.dockbtn_clicked(self.ui.outputDock))
@@ -119,6 +115,9 @@ class MainController(QtGui.QMainWindow):
# Saving and Restoring the finPlate window state.
self.retrieve_prevstate()
+ self.ui.btn_Reset.clicked.connect(self.resetbtn_clicked)
+
+ self.ui.btn_Design.clicked.connect(self.design_btnclicked)
# Initialising the qtviewer
self.display,_ = self.init_display(backend_str="pyqt4")
@@ -136,8 +135,6 @@ class MainController(QtGui.QMainWindow):
self.fuse_model = self.create2Dcad()
#self.fuse_model = my_sphere
- #self.closeEvent()
-
@@ -460,13 +457,17 @@ class MainController(QtGui.QMainWindow):
palette = QtGui.QPalette()
lblwidget.setPalette(palette)
- def display_output(self, resultObj):
-
+ def display_output(self, outputObj):
'''(dictionary) --> NoneType
-
Setting design result values to the respective textboxes in the output window
-
'''
+ for k in outputObj.keys():
+ for key in outputObj[k].keys():
+ if (outputObj[k][key] == ""):
+ resultObj = outputObj
+ else:
+ resultObj = outputObj
+
# resultObj['Bolt']
shear_capacity = resultObj['Bolt']['shearcapacity']
self.ui.txtShrCapacity.setText(str(shear_capacity))
@@ -501,10 +502,6 @@ class MainController(QtGui.QMainWindow):
edge_dist = resultObj['Bolt']['edge']
self.ui.txtEdgeDist.setText(str(edge_dist))
-
- # weld_thickness = resultObj['Weld']['thickness']
- # self.ui.txtWeldThick.setText(str(weld_thickness))
-
resultant_shear = resultObj['Weld']['resultantshear']
self.ui.txtResltShr.setText(str(resultant_shear))
@@ -524,6 +521,7 @@ class MainController(QtGui.QMainWindow):
moment_capacity = resultObj['Plate']['momentcapacity']
self.ui.txtMomntCapacity.setText(str(moment_capacity))
+
def displaylog_totextedit(self):
@@ -659,6 +657,7 @@ class MainController(QtGui.QMainWindow):
beam_sec = self.ui.combo_Beam.currentText()
dictbeamdata = get_beamdata(beam_sec)
return dictbeamdata
+
def fetchColumnPara(self):
column_sec = self.ui.comboColSec.currentText()
dictcoldata = get_columndata(column_sec)
@@ -671,80 +670,77 @@ class MainController(QtGui.QMainWindow):
uiObj = self.getuser_inputs()
resultObj = finConn(uiObj)
- if len(resultObj) == 0:
- self.display.DisplayMessage(gp_Pnt(0,0,0),"Sorry can not create 3D model")
- else:
- dictbeamdata = self.fetchBeamPara()
- ##### BEAM PARAMETERS #####
- beam_D = int(dictbeamdata[QString("D")])
- beam_B = int(dictbeamdata[QString("B")])
- beam_tw = float(dictbeamdata[QString("tw")])
- beam_T = float(dictbeamdata[QString("T")])
- beam_alpha = float(dictbeamdata[QString("FlangeSlope")])
- beam_R1 = float(dictbeamdata[QString("R1")])
- beam_R2 = float(dictbeamdata[QString("R2")])
- beam_length = 500.0 # This parameter as per view of 3D cad model
-
- #beam = ISection(B = 140, T = 16,D = 400,t = 8.9, R1 = 14, R2 = 7, alpha = 98,length = 500)
- beam = ISection(B = beam_B, T = beam_T,D = beam_D,t = beam_tw,
- R1 = beam_R1, R2 = beam_R2, alpha = beam_alpha,
- length = beam_length)
-
- ##### COLUMN PARAMETERS ######
- dictcoldata = self.fetchColumnPara()
-
- column_D = int(dictcoldata[QString("D")])
- column_B = int(dictcoldata[QString("B")])
- column_tw = float(dictcoldata[QString("tw")])
- column_T = float(dictcoldata[QString("T")])
- column_alpha = float(dictcoldata[QString("FlangeSlope")])
- column_R1 = float(dictcoldata[QString("R1")])
- column_R2 = float(dictcoldata[QString("R2")])
-
- #column = ISection(B = 83, T = 14.1, D = 250, t = 11, R1 = 12, R2 = 3.2, alpha = 98, length = 1000)
- column = ISection(B = column_B, T = column_T, D = column_D,
- t = column_tw, R1 = column_R1, R2 = column_R2, alpha = column_alpha, length = 1000)
- # Outputs from finPlateCalc1
- #### WELD,PLATE,BOLT AND NUT PARAMETERS #####
-
- fillet_length = resultObj['Plate']['height']
- fillet_thickness = resultObj['Weld']['thickness']
- plate_width = resultObj['Plate']['width']
- plate_thick = uiObj['Plate']['thickness(mm)']
- bolt_dia = uiObj["Bolt"]["diameter(mm)"]
- bolt_r = bolt_dia/2
- bolt_R = bolt_r + 7
- nut_R = bolt_R
- bolt_T = 10.0 # minimum bolt thickness As per Indian Standard
- bolt_Ht = 38.0 # minimum bolt length as per Indian Standard
- nut_T = 12.0 # minimum nut thickness As per Indian Standard
- nut_Ht = 12.2 #
-
-
- #Fweld1 = FilletWeld(L= 300,b = 6, h = 6)
- Fweld1 = FilletWeld(L= fillet_length,b = fillet_thickness, h = fillet_thickness)
-
- #plate = Plate(L= 300,W =100, T = 10)
- plate = Plate(L= fillet_length,W =plate_width, T = plate_thick)
-
+ dictbeamdata = self.fetchBeamPara()
+ ##### BEAM PARAMETERS #####
+ beam_D = int(dictbeamdata[QString("D")])
+ beam_B = int(dictbeamdata[QString("B")])
+ beam_tw = float(dictbeamdata[QString("tw")])
+ beam_T = float(dictbeamdata[QString("T")])
+ beam_alpha = float(dictbeamdata[QString("FlangeSlope")])
+ beam_R1 = float(dictbeamdata[QString("R1")])
+ beam_R2 = float(dictbeamdata[QString("R2")])
+ beam_length = 500.0 # This parameter as per view of 3D cad model
+
+ #beam = ISection(B = 140, T = 16,D = 400,t = 8.9, R1 = 14, R2 = 7, alpha = 98,length = 500)
+ beam = ISection(B = beam_B, T = beam_T,D = beam_D,t = beam_tw,
+ R1 = beam_R1, R2 = beam_R2, alpha = beam_alpha,
+ length = beam_length)
+
+ ##### COLUMN PARAMETERS ######
+ dictcoldata = self.fetchColumnPara()
+
+ column_D = int(dictcoldata[QString("D")])
+ column_B = int(dictcoldata[QString("B")])
+ column_tw = float(dictcoldata[QString("tw")])
+ column_T = float(dictcoldata[QString("T")])
+ column_alpha = float(dictcoldata[QString("FlangeSlope")])
+ column_R1 = float(dictcoldata[QString("R1")])
+ column_R2 = float(dictcoldata[QString("R2")])
+
+ #column = ISection(B = 83, T = 14.1, D = 250, t = 11, R1 = 12, R2 = 3.2, alpha = 98, length = 1000)
+ column = ISection(B = column_B, T = column_T, D = column_D,
+ t = column_tw, R1 = column_R1, R2 = column_R2, alpha = column_alpha, length = 1000)
+ # Outputs from finPlateCalc1
+ #### WELD,PLATE,BOLT AND NUT PARAMETERS #####
+
+ fillet_length = resultObj['Plate']['height']
+ fillet_thickness = resultObj['Weld']['thickness']
+ plate_width = resultObj['Plate']['width']
+ plate_thick = uiObj['Plate']['thickness(mm)']
+ bolt_dia = uiObj["Bolt"]["diameter(mm)"]
+ bolt_r = bolt_dia/2
+ bolt_R = bolt_r + 7
+ nut_R = bolt_R
+ bolt_T = 10.0 # minimum bolt thickness As per Indian Standard
+ bolt_Ht = 38.0 # minimum bolt length as per Indian Standard
+ nut_T = 12.0 # minimum nut thickness As per Indian Standard
+ nut_Ht = 12.2 #
+
+
+
+ #plate = Plate(L= 300,W =100, T = 10)
+ plate = Plate(L= fillet_length,W =plate_width, T = plate_thick)
+
+ #Fweld1 = FilletWeld(L= 300,b = 6, h = 6)
+ Fweld1 = FilletWeld(L= fillet_length,b = fillet_thickness, h = fillet_thickness)
- #bolt = Bolt(R = bolt_R,T = bolt_T, H = 38.0, r = 4.0 )
- bolt = Bolt(R = bolt_R,T = bolt_T, H = bolt_Ht, r = bolt_r )
-
- #nut =Nut(R = bolt_R, T = 10.0, H = 11, innerR1 = 4.0, outerR2 = 8.3)
- nut = Nut(R = bolt_R, T = nut_T, H = nut_Ht, innerR1 = bolt_r)
-
- gap = beam_tw + plate_thick + bolt_T
-
- nutBoltArray = NutBoltArray(resultObj,nut,bolt,gap)
- #self.nutBoltArray.createModel()
- #nutBoltAssembly = self.nutBoltArray.getnutboltModel()
-
-
- colwebconn = ColWebBeamWeb(column,beam,Fweld1,plate,nutBoltArray)
- #colwebconn = ColWebBeamWeb(column,beam,Fweld1,plate,boltRadius,nutRadius)
- colwebconn.create_3dmodel()
+ #bolt = Bolt(R = bolt_R,T = bolt_T, H = 38.0, r = 4.0 )
+ bolt = Bolt(R = bolt_R,T = bolt_T, H = bolt_Ht, r = bolt_r )
+
+ #nut =Nut(R = bolt_R, T = 10.0, H = 11, innerR1 = 4.0, outerR2 = 8.3)
+ nut = Nut(R = bolt_R, T = nut_T, H = nut_Ht, innerR1 = bolt_r)
+
+ gap = beam_tw + plate_thick + bolt_T
+
+ nutBoltArray = NutBoltArray(resultObj,nut,bolt,gap)
+ #self.nutBoltArray.createModel()
+ #nutBoltAssembly = self.nutBoltArray.getnutboltModel()
+
+ colwebconn = ColWebBeamWeb(column,beam,Fweld1,plate,nutBoltArray)
+ #colwebconn = ColWebBeamWeb(column,beam,Fweld1,plate,boltRadius,nutRadius)
+ colwebconn.create_3dmodel()
+
return colwebconn
def createColFlangeBeamWeb(self):
@@ -762,26 +758,33 @@ class MainController(QtGui.QMainWindow):
return colflangeconn.create_3dmodel()
def call_3DModel(self):
-
- if self.ui.btn3D.isEnabled():
- self.ui.chkBxBeam.setChecked(QtCore.Qt.Unchecked)
- self.ui.chkBxCol.setChecked(QtCore.Qt.Unchecked)
- self.ui.chkBxFinplate.setChecked(QtCore.Qt.Unchecked)
- self.ui.mytabWidget.setCurrentIndex(0)
-
- if self.ui.comboConnLoc.currentText()== "Column web-Beam web":
- connectivity = self.colWebBeamWeb
- else:
- self.ui.mytabWidget.setCurrentIndex(0)
- connectivity = self.createColFlangeBeamWeb()
+ self.display.EraseAll()
+ uiObj = self.getuser_inputs()
+ resultObj = finConn(uiObj)
+ for k in resultObj.keys():
+ for key in resultObj[k].keys():
+ if (resultObj[k][key] != ""):
+ if self.ui.btn3D.isEnabled():
+ self.ui.chkBxBeam.setChecked(QtCore.Qt.Unchecked)
+ self.ui.chkBxCol.setChecked(QtCore.Qt.Unchecked)
+ self.ui.chkBxFinplate.setChecked(QtCore.Qt.Unchecked)
+ self.ui.mytabWidget.setCurrentIndex(0)
+
+ if self.ui.comboConnLoc.currentText()== "Column web-Beam web":
+ connectivity = self.colWebBeamWeb
+ else:
+ self.ui.mytabWidget.setCurrentIndex(0)
+ connectivity = self.createColFlangeBeamWeb()
- self.display3Dmodel(connectivity.get_models(), "Model")
- plateOrigin = connectivity.plate.secOrigin
- gpPntplateOrigin= getGpPt(plateOrigin)
- my_sphere = BRepPrimAPI_MakeSphere(gpPntplateOrigin,2).Shape()
- self.display.DisplayShape(my_sphere,update=True)
-
+ self.display3Dmodel(connectivity.get_models(), "Model")
+ plateOrigin = connectivity.plate.secOrigin
+ gpPntplateOrigin= getGpPt(plateOrigin)
+ my_sphere = BRepPrimAPI_MakeSphere(gpPntplateOrigin,2).Shape()
+ self.display.DisplayShape(my_sphere,update=True)
+ else:
+ self.display.DisplayMessage(gp_Pnt(1000,0,400),"Sorry, can not create 3D model",height = 25.0)
+
def call_3DBeam(self):
'''
Creating and displaying 3D Beam
diff --git a/Connections/Shear/Finplate/finplate_calc1.py b/Connections/Shear/Finplate/finplate_calc1.py
index 140400f..1882156 100644
--- a/Connections/Shear/Finplate/finplate_calc1.py
+++ b/Connections/Shear/Finplate/finplate_calc1.py
@@ -401,12 +401,18 @@ def finConn(uiObj):
if web_plate_l == min_plate_height or web_plate_l == max_plate_height or web_plate_l < web_plate_l_req or web_plate_w < web_plate_w_req:
for k in outputObj.keys():
- for key in outputObj[k]:
+ for key in outputObj[k].keys():
outputObj[k][key] = ""
elif moment_capacity < moment_demand:
for k in outputObj.keys():
- for key in outputObj[k]:
+ for key in outputObj[k].keys():
outputObj[k][key] = ""
+# if web_plate_l == min_plate_height or web_plate_l == max_plate_height or web_plate_l < web_plate_l_req or web_plate_w < web_plate_w_req:
+# outputObj = {}
+#
+# elif moment_capacity < moment_demand:
+# outputObj = {}
+
return outputObj