From f6743a741b3ebec50494a6d3b0712cd90c0ff5de Mon Sep 17 00:00:00 2001 From: deepa-chaudhari Date: Sat, 6 Jun 2015 21:32:56 +0530 Subject: platethicknesspopupmethosd implemented --- .../Shear/Finplate/colWebBeamWebConnectivity.py | 4 ++ Connections/Shear/Finplate/fin.log | 12 ++++ Connections/Shear/Finplate/finPlate.ui | 47 ++++++++++++- Connections/Shear/Finplate/finPlateMain.py | 82 +++++++++++++++++----- Connections/Shear/Finplate/model.py | 2 +- Connections/Shear/Finplate/saveINPUT.txt | 15 ++-- Connections/Shear/Finplate/ui_finPlate.py | 22 +++++- 7 files changed, 153 insertions(+), 31 deletions(-) diff --git a/Connections/Shear/Finplate/colWebBeamWebConnectivity.py b/Connections/Shear/Finplate/colWebBeamWebConnectivity.py index c448092..f8c55e4 100644 --- a/Connections/Shear/Finplate/colWebBeamWebConnectivity.py +++ b/Connections/Shear/Finplate/colWebBeamWebConnectivity.py @@ -10,6 +10,8 @@ from bolt import Bolt from nut import Nut import copy +from OCC.BRepPrimAPI import BRepPrimAPI_MakeSphere +from OCC.gp import gp_Pnt class ColWebBeamWeb(object): def __init__(self,column,beam,Fweld,plate,boltRadius,nutRadius,boltPlaceObj): @@ -82,6 +84,7 @@ class ColWebBeamWeb(object): self.beam.t/2.0 * (-self.beam.uDir)+ self.plate.T/2.0 * (-self.beam.uDir)) #origin4 = self.column.secOrigin + self.weld.T * self.weld.wDir + self.plate.place(plateOrigin, uDir4, wDir4) # # Weld @@ -142,6 +145,7 @@ class ColWebBeamWeb(object): nut3.place(nut_Origin3, uDir5, wDir5) self.nuts = [nut1,nut2,nut3] + # Call for createModel self.columnModel = self.column.createModel() self.beamModel = self.beam.createModel() diff --git a/Connections/Shear/Finplate/fin.log b/Connections/Shear/Finplate/fin.log index d2e8b78..4b2cf8a 100644 --- a/Connections/Shear/Finplate/fin.log +++ b/Connections/Shear/Finplate/fin.log @@ -1 +1,13 @@ + +
+ Sat, 06 Jun 2015 21:30:26 + ERROR + : Plate width provided is less than the minimum required +
+ +
+ Sat, 06 Jun 2015 21:30:26 + WARNING + : Minimum plate width required is 100.00 mm +
diff --git a/Connections/Shear/Finplate/finPlate.ui b/Connections/Shear/Finplate/finPlate.ui index c134c07..94561db 100644 --- a/Connections/Shear/Finplate/finPlate.ui +++ b/Connections/Shear/Finplate/finPlate.ui @@ -1258,11 +1258,56 @@ QComboBox { combobox-popup: 0; } - -1 + 0 5 + + + Select plate thickness + + + + + 6 + + + + + 8 + + + + + 10 + + + + + 12 + + + + + 14 + + + + + 16 + + + + + 18 + + + + + 20 + + diff --git a/Connections/Shear/Finplate/finPlateMain.py b/Connections/Shear/Finplate/finPlateMain.py index a9398d8..3887a2b 100644 --- a/Connections/Shear/Finplate/finPlateMain.py +++ b/Connections/Shear/Finplate/finPlateMain.py @@ -42,6 +42,7 @@ from colWebBeamWebConnectivity import ColWebBeamWeb from colFlangeBeamWebConnectivity import ColFlangeBeamWeb from OCC import IGESControl from filletweld import FilletWeld +from ModelUtils import * class MainController(QtGui.QMainWindow): @@ -59,6 +60,8 @@ 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) @@ -98,6 +101,9 @@ class MainController(QtGui.QMainWindow): self.ui.combo_Beam.addItems(get_beamcombolist()) self.ui.comboColSec.addItems(get_columncombolist()) + self.ui.combo_Beam.currentIndexChanged[str].connect(self.populatePlateThickCombo) + #beam_sec = self.ui.combo_Beam.currentText() + #self.populatePlateThickCombo(beam_sec) self.ui.menuView.addAction(self.ui.inputDock.toggleViewAction()) self.ui.menuView.addAction(self.ui.outputDock.toggleViewAction()) @@ -127,31 +133,31 @@ class MainController(QtGui.QMainWindow): #my_sphere = BRepPrimAPI_MakeSphere(5).Shape() self.fuse_model = self.create2Dcad() #self.fuse_model = my_sphere - self.validatePlateThickCombo() + #self.closeEvent() - def validatePlateThickCombo(self): - - beam_sec = self.ui.combo_Beam.currentText() - dictbeamdata = get_beamdata(beam_sec) + def populatePlateThickCombo(self): + dictbeamdata = self.fetchBeamPara() +# beam_sec = self.ui.combo_Beam.currentText() +# dictbeamdata = get_beamdata(beam_sec) beam_tw = float(dictbeamdata[QString("tw")]) - plateThickness = ['select Thickness',6,8,10,12,14,16,18,20] - newlist = ['Select Thickness'] + #comboPlateItems = [str(self.ui.comboPlateThick_2.itemText(i)) for i in range(self.ui.comboPlateThick_2.count())] + plateThickness = [6,8,10,12,14,16,18,20] + newlist = [] #comboPlateThickItenewlist = [] - for item in plateThickness[1:]: + for ele in plateThickness[:]: + item = int(ele) if item >= beam_tw: newlist.append(str(item)) print newlist - + self.ui.comboPlateThick_2.clear() for i in newlist[:]: self.ui.comboPlateThick_2.addItem(str(i)) - #self.ui.comboPlateThick_2.setCurrentIndex(0) + self.ui.comboPlateThick_2.setCurrentIndex(0) - - def saveTopng(self,display): display.ExportToImage('/home/Pictures/cad.png') @@ -256,7 +262,7 @@ class MainController(QtGui.QMainWindow): '''(Dictionary)--> None ''' - return + inputFile = QtCore.QFile('saveINPUT.txt') if not inputFile.open(QtCore.QFile.WriteOnly | QtCore.QFile.Text): QtGui.QMessageBox.warning(self, "Application", @@ -636,25 +642,58 @@ class MainController(QtGui.QMainWindow): self.display.EraseAll() osdagDisplayShape(self.display, cadlist[0], update=True) osdagDisplayShape(self.display, cadlist[1],material = Graphic3d_NOT_2D_ALUMINUM, update=True) - osdagDisplayShape(self.display,cadlist[2],color = 'red', update = True) - osdagDisplayShape(self.display,cadlist[3],color = 'red', update = True) + #osdagDisplayShape(self.display,cadlist[2],color = 'red', update = True) + #osdagDisplayShape(self.display,cadlist[3],color = 'red', update = True) osdagDisplayShape(self.display, cadlist[4], color = 'blue', update = True) self.display.DisplayShape(cadlist[5:8],color = Quantity_NOC_SADDLEBROWN, update=True) self.display.DisplayShape(cadlist[8:11],color = Quantity_NOC_SADDLEBROWN, update = True) - + #osdagDisplayShape(self.display, cadlist[11], update = True) else: pass start_display() - + def fetchBeamPara(self): + 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) + return dictcoldata def create3DColWebBeamWeb(self): ''' creating 3d cad model with column web beam web ''' + dictbeamdata = self.fetchBeamPara() + + 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 = 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 = 500) + + ##### 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) - column = ISection(B = 83, T = 14.1, D = 250, t = 11, R1 = 12, R2 = 3.2, alpha = 98, length = 1000) - beam = ISection(B = 140, T = 16,D = 400,t = 8.9, R1 = 14, R2 = 7, alpha = 98,length = 500) Fweld1 = FilletWeld(L= 300,b = 6, h = 6) #Fweld1 = Weld(L= 300,W = beam.t, T = 8) @@ -696,6 +735,11 @@ class MainController(QtGui.QMainWindow): 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) + def call_3DBeam(self): diff --git a/Connections/Shear/Finplate/model.py b/Connections/Shear/Finplate/model.py index fdd0141..b1b32f2 100644 --- a/Connections/Shear/Finplate/model.py +++ b/Connections/Shear/Finplate/model.py @@ -106,7 +106,7 @@ def get_columndata(sect): ''' section = sect #section = Ui_MainWindow.comboColSec.currentText() - queryStr = "Select * from Beams where Designation = '%s'" % section + queryStr = "Select * from Columns where Designation = '%s'" % section designQuery = QSqlQuery(queryStr) print(designQuery) diff --git a/Connections/Shear/Finplate/saveINPUT.txt b/Connections/Shear/Finplate/saveINPUT.txt index 6b4cf97..b6e25d5 100644 --- a/Connections/Shear/Finplate/saveINPUT.txt +++ b/Connections/Shear/Finplate/saveINPUT.txt @@ -4,7 +4,7 @@ p1 (dp2 S'columSection' p3 -S'ISHB 250' +S'ISSC 200' p4 sS'fy(MPa)' p5 @@ -26,12 +26,12 @@ p11 S'thickness(mm)' p13 I12 -sS'length(mm)' +sS'height(mm)' p14 I300 sS'width(mm)' p15 -I100 +I20 ssS'Load' p16 (dp17 @@ -49,13 +49,12 @@ p22 (dp23 S'grade' p24 -S'8.8' -p25 +F8.8 sS'type' -p26 +p25 S'HSFG' -p27 +p26 sS'diameter(mm)' -p28 +p27 I20 ss. \ No newline at end of file diff --git a/Connections/Shear/Finplate/ui_finPlate.py b/Connections/Shear/Finplate/ui_finPlate.py index c87d3a9..1c41207 100644 --- a/Connections/Shear/Finplate/ui_finPlate.py +++ b/Connections/Shear/Finplate/ui_finPlate.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'finPlate.ui' # -# Created: Fri Jun 5 22:26:06 2015 +# Created: Sat Jun 6 12:28:08 2015 # by: PyQt4 UI code generator 4.10.4 # # WARNING! All changes made in this file will be lost! @@ -469,6 +469,15 @@ class Ui_MainWindow(object): self.comboPlateThick_2.setStyleSheet(_fromUtf8("QComboBox { combobox-popup: 0; }")) self.comboPlateThick_2.setMaxVisibleItems(5) self.comboPlateThick_2.setObjectName(_fromUtf8("comboPlateThick_2")) + self.comboPlateThick_2.addItem(_fromUtf8("")) + self.comboPlateThick_2.addItem(_fromUtf8("")) + self.comboPlateThick_2.addItem(_fromUtf8("")) + self.comboPlateThick_2.addItem(_fromUtf8("")) + self.comboPlateThick_2.addItem(_fromUtf8("")) + self.comboPlateThick_2.addItem(_fromUtf8("")) + self.comboPlateThick_2.addItem(_fromUtf8("")) + self.comboPlateThick_2.addItem(_fromUtf8("")) + self.comboPlateThick_2.addItem(_fromUtf8("")) self.label_42 = QtGui.QLabel(self.dockWidgetContents) self.label_42.setGeometry(QtCore.QRect(1, 540, 66, 25)) font = QtGui.QFont() @@ -1464,7 +1473,7 @@ class Ui_MainWindow(object): self.retranslateUi(MainWindow) self.mytabWidget.setCurrentIndex(-1) - self.comboPlateThick_2.setCurrentIndex(-1) + self.comboPlateThick_2.setCurrentIndex(0) self.comboWldSize.setCurrentIndex(0) QtCore.QMetaObject.connectSlotsByName(MainWindow) @@ -1527,6 +1536,15 @@ class Ui_MainWindow(object): self.label_40.setText(_translate("MainWindow", "

Plate

", None)) self.label_41.setText(_translate("MainWindow", "

Thickness (mm) *

", None)) self.lbl_len_2.setText(_translate("MainWindow", "Height (mm)", None)) + self.comboPlateThick_2.setItemText(0, _translate("MainWindow", "Select plate thickness", None)) + self.comboPlateThick_2.setItemText(1, _translate("MainWindow", "6", None)) + self.comboPlateThick_2.setItemText(2, _translate("MainWindow", "8", None)) + self.comboPlateThick_2.setItemText(3, _translate("MainWindow", "10", None)) + self.comboPlateThick_2.setItemText(4, _translate("MainWindow", "12", None)) + self.comboPlateThick_2.setItemText(5, _translate("MainWindow", "14", None)) + self.comboPlateThick_2.setItemText(6, _translate("MainWindow", "16", None)) + self.comboPlateThick_2.setItemText(7, _translate("MainWindow", "18", None)) + self.comboPlateThick_2.setItemText(8, _translate("MainWindow", "20", None)) self.label_42.setText(_translate("MainWindow", "

Weld

", None)) self.label_43.setText(_translate("MainWindow", "

Thickness (mm) *

", None)) self.label_44.setText(_translate("MainWindow", "

Bolt

", None)) -- cgit