Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions setup_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Arch Linux environment for Osdag is set up. Conda environment: osdag-env.
14 changes: 7 additions & 7 deletions src/osdag/Common.py
Original file line number Diff line number Diff line change
Expand Up @@ -2018,7 +2018,7 @@ def is_valid_custom(self):
KEY_OUT_KB = 'Bolt.Kb'
KEY_OUT_BOLT_HOLE = 'Bolt.Hole'
KEY_DISP_BOLT_HOLE = 'Hole Diameter (mm)'
KEY_DISP_MIN_BOLT = 'Minimum Bolts (nos)'
KEY_DISP_MIN_BOLT = 'Minimum Bolts (no)'


KEY_OUT_WELD_CONN_LEN = 'Weld.ConnLength'
Expand Down Expand Up @@ -2087,21 +2087,21 @@ def is_valid_custom(self):
KEY_OUT_BOLT_CAPACITY_REDUCED = 'Bolt Capacity (post reduction factor) (kN)'
KEY_OUT_BOLT_GRP_CAPACITY = 'Bolt.GroupCapacity'
KEY_OUT_BOLT_LINE = 'Bolt.Line'
KEY_OUT_DISP_BOLT_LINE = 'Bolt Columns (nos)'
KEY_OUT_DISP_BOLT_LINE = 'Bolt Columns (no)'
KEY_OUT_INTER_BOLT_LINE = 'Bolt.InterLine'
KEY_OUT_DISP_INTER_BOLT_LINE = 'Columns (nos)'
KEY_OUT_DISP_INTER_BOLT_LINE = 'Columns (no)'
KEY_OUT_BOLT_IR = 'Bolt.IR'
KEY_OUT_DISP_BOLT_IR = 'Interaction Ratio'
KEY_OUT_DISP_BOLT_COMBINED_CAPACITY = 'Combined Capacity, I.R'


KEY_OUT_BOLTS_ONE_LINE = 'Bolt.OneLine'
KEY_OUT_DISP_BOLTS_ONE_LINE = 'Bolt Rows (nos)'
KEY_OUT_DISP_BOLTS_ONE_LINE = 'Bolt Rows (no)'
KEY_OUT_BOLTS_ONE_LINE_S = 'Bolt.OneLineT'
KEY_OUT_DISP_BOLTS_ONE_LINE_S = 'Rows per Angle(nos)'
KEY_OUT_DISP_BOLTS_ONE_LINE_S = 'Rows per Angle(no)'

KEY_OUT_INTER_BOLTS_ONE_LINE = 'Bolt.InterOneLine'
KEY_OUT_DISP_INTER_BOLTS_ONE_LINE = 'Rows (nos)'
KEY_OUT_DISP_INTER_BOLTS_ONE_LINE = 'Rows (no)'


KEY_OUT_SPACING = 'spacing'
Expand Down Expand Up @@ -2181,7 +2181,7 @@ def is_valid_custom(self):


KEY_OUT_INTERCONNECTION = 'Intermittent.Connection'
KEY_OUT_DISP_INTERCONNECTION = 'Connection (nos)'
KEY_OUT_DISP_INTERCONNECTION = 'Connection (no)'

KEY_OUT_INTERSPACING = 'Intermittent.Spacing'
KEY_OUT_DISP_INTERSPACING = 'Spacing (mm)'
Expand Down
2 changes: 1 addition & 1 deletion src/osdag/gui/ui_template.py
Original file line number Diff line number Diff line change
Expand Up @@ -1134,7 +1134,7 @@ def setupUi(self, MainWindow, main,folder):
table_widget.setColumnCount(8)

# Set the vertical header labels
vertical_labels = ["Bolt Details", "Dia. of Bolt(mm)", "Property Class", "Bolt Hole Dia.(mm)", "No. of Bolts(nos)", "Bolt Rows(nos)", "Bolt Columns(nos)", "End Distance(mm)", "Pitch Distance(mm)", "Edge Distance_1(mm)", "Gauge Distance(mm)", "Edge Distance_2(mm)", "Overlap Length(mm)", "Bolt Strength Detail", "Single Bolt Capacity(KN)", "Bolt Group Capacity(KN)", "Factored Laod(KN)", "Capacity Factor(KN)"]
vertical_labels = ["Bolt Details", "Dia. of Bolt (mm)", "Property Class", "Bolt Hole Dia. (mm)", "No. of Bolts (no)", "Bolt Rows (no)", "Bolt Columns (no)", "End Distance (mm)", "Pitch Distance (mm)", "Edge Distance_1 (mm)", "Gauge Distance (mm)", "Edge Distance_2 (mm)", "Overlap Length (mm)", "Bolt Strength Detail", "Single Bolt Capacity (KN)", "Bolt Group Capacity (KN)", "Factored Laod (KN)", "Capacity Factor (KN)"]
table_widget.setVerticalHeaderLabels(vertical_labels)

table_widget.setHorizontalHeaderLabels(["1", "2", "3", "4", "5", "6", "7", "8"])
Expand Down
8 changes: 4 additions & 4 deletions src/osdag/osdagMainPage.py
Original file line number Diff line number Diff line change
Expand Up @@ -284,8 +284,8 @@ def __init__(self):
],
'Moment Connection' :{
'Beam-to-Beam Splice' :[
('Cover Plate Bolted',str(files("osdag.data.ResourceFiles.images").joinpath("bbcoverplatebolted.png")),'B2B_Cover_Plate_Bolted'),
('Cover Plate Welded',str(files("osdag.data.ResourceFiles.images").joinpath("bbcoverplatewelded.png")),'B2B_Cover_Plate_Welded'),
('Splice Plate Bolted',str(files("osdag.data.ResourceFiles.images").joinpath("bbcoverplatebolted.png")),'B2B_Cover_Plate_Bolted'),
('Splice Plate Welded',str(files("osdag.data.ResourceFiles.images").joinpath("bbcoverplatewelded.png")),'B2B_Cover_Plate_Welded'),
('End Plate', str(files("osdag.data.ResourceFiles.images").joinpath("bb_splice.png")), 'B2B_End_Plate_Splice'),
self.show_moment_connection,
],
Expand All @@ -294,8 +294,8 @@ def __init__(self):
self.show_moment_connection_bc
],
'Column-to-Column Splice' :[
('Cover Plate Bolted',str(files("osdag.data.ResourceFiles.images").joinpath("cccoverplatebolted.png")),'C2C_Cover_Plate_Bolted'),
('Cover Plate Welded',str(files("osdag.data.ResourceFiles.images").joinpath("cccoverplatewelded.png")),'C2C_Cover_Plate_Welded'),
('Splice Plate Bolted',str(files("osdag.data.ResourceFiles.images").joinpath("cccoverplatebolted.png")),'C2C_Cover_Plate_Bolted'),
('Splice Plate Welded',str(files("osdag.data.ResourceFiles.images").joinpath("cccoverplatewelded.png")),'C2C_Cover_Plate_Welded'),
('End Plate',str(files("osdag.data.ResourceFiles.images").joinpath("ccep_flush.png")),'C2C_End_Plate_Connection'),
self.show_moment_connection_cc,
],
Expand Down
14 changes: 7 additions & 7 deletions src/osdag_core/Common.py
Original file line number Diff line number Diff line change
Expand Up @@ -2095,7 +2095,7 @@ def is_valid_custom(self):
KEY_OUT_KB = 'Bolt.Kb'
KEY_OUT_BOLT_HOLE = 'Bolt.Hole'
KEY_DISP_BOLT_HOLE = 'Hole Diameter (mm)'
KEY_DISP_MIN_BOLT = 'Minimum Bolts (nos)'
KEY_DISP_MIN_BOLT = 'Minimum Bolts (no)'

KEY_OUT_WELD_CONN_LEN = 'Weld.ConnLength'

Expand Down Expand Up @@ -2161,21 +2161,21 @@ def is_valid_custom(self):
KEY_OUT_BOLT_CAPACITY_REDUCED = 'Bolt Capacity (post reduction factor) (kN)'
KEY_OUT_BOLT_GRP_CAPACITY = 'Bolt.GroupCapacity'
KEY_OUT_BOLT_LINE = 'Bolt.Line'
KEY_OUT_DISP_BOLT_LINE = 'Bolt Columns (nos)'
KEY_OUT_DISP_BOLT_LINE = 'Bolt Columns (no)'
KEY_OUT_INTER_BOLT_LINE = 'Bolt.InterLine'
KEY_OUT_DISP_INTER_BOLT_LINE = 'Columns (nos)'
KEY_OUT_DISP_INTER_BOLT_LINE = 'Columns (no)'
KEY_OUT_BOLT_IR = 'Bolt.IR'
KEY_OUT_DISP_BOLT_IR = 'Interaction Ratio'
KEY_OUT_DISP_BOLT_COMBINED_CAPACITY = 'Combined Capacity, I.R'


KEY_OUT_BOLTS_ONE_LINE = 'Bolt.OneLine'
KEY_OUT_DISP_BOLTS_ONE_LINE = 'Bolt Rows (nos)'
KEY_OUT_DISP_BOLTS_ONE_LINE = 'Bolt Rows (no)'
KEY_OUT_BOLTS_ONE_LINE_S = 'Bolt.OneLineT'
KEY_OUT_DISP_BOLTS_ONE_LINE_S = 'Rows per Angle(nos)'
KEY_OUT_DISP_BOLTS_ONE_LINE_S = 'Rows per Angle(no)'

KEY_OUT_INTER_BOLTS_ONE_LINE = 'Bolt.InterOneLine'
KEY_OUT_DISP_INTER_BOLTS_ONE_LINE = 'Rows (nos)'
KEY_OUT_DISP_INTER_BOLTS_ONE_LINE = 'Rows (no)'


KEY_OUT_SPACING = 'spacing'
Expand Down Expand Up @@ -2255,7 +2255,7 @@ def is_valid_custom(self):


KEY_OUT_INTERCONNECTION = 'Intermittent.Connection'
KEY_OUT_DISP_INTERCONNECTION = 'Connection (nos)'
KEY_OUT_DISP_INTERCONNECTION = 'Connection (no)'

KEY_OUT_INTERSPACING = 'Intermittent.Spacing'
KEY_OUT_DISP_INTERSPACING = 'Spacing (mm)'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -870,8 +870,7 @@ def output_values(self, flag):

# Column (generic — works for both I-section & hollow)
self.hover_dict["Column"] = (
f"<b>Column</b><br>"
f"Designation: {self.dp_column_designation if flag else ''}"
f"<b>Column:</b> {self.dp_column_designation if flag else ''}"
)

# Anchor Bolts (Outside Flange — primary governing)
Expand Down Expand Up @@ -904,14 +903,11 @@ def output_values(self, flag):
# Conc (Concrete Block)
self.hover_dict["Conc"] = (
f"<b>Concrete Pedestal</b><br>"
f"Grade: {self.footing_grade if flag else ''} mm<br>"
)

# Grout
self.hover_dict["Grout"] = (
f"<b>Grout</b><br>"
f"Length: {self.bp_length_provided * 1.5 if flag else ''} mm<br>"
f"Width: {self.bp_width_provided * 1.5 if flag else ''} mm<br>"
f"Thickness: {50 if flag else ''} mm"
)
return out_list
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -487,16 +487,17 @@ def output_values(self, flag):

t31 = (KEY_OUT_WELD_DETAILS, DISP_TITLE_WELD_TYPICAL_DETAIL, TYPE_OUT_BUTTON, ['Details', self.weld_details], True)
out_list.append(t31)

if flag and hasattr(self, 'supported_section') and self.supported_section:
beam_name = self.supported_section.designation
else:
beam_name = "Beam Section"

# Populate hover dict

# Beam
self.hover_dict["Beam"] = (
f"<b>Beam</b><br>"
f"Depth: {self.beam_D if flag else ''} mm<br>"
f"Flange Width: {self.beam_bf if flag else ''} mm<br>"
f"Web Thickness: {self.beam_tw if flag else ''} mm<br>"
f"Flange Thickness: {self.beam_tf if flag else ''} mm"
f"<b>Beam:</b> {beam_name}" # HERE beam_name = self.supported_section.designation
)

# End Plate
Expand All @@ -505,7 +506,6 @@ def output_values(self, flag):
f"Width: {self.ep_width_provided if flag else ''} mm<br>"
f"Height: {self.ep_height_provided if flag else ''} mm<br>"
f"Thickness: {self.plate_thickness if flag else ''} mm<br>"
f"Moment Capacity: {self.call_helper.plate_moment_capacity if flag else ''}"
)

# Bolt
Expand All @@ -514,16 +514,13 @@ def output_values(self, flag):
f"Diameter: {self.bolt_diameter_provided if flag else ''} mm<br>"
f"Grade: {self.bolt_grade_provided if flag else ''}<br>"
f"No. of Bolts: {self.bolt_numbers if flag else ''}<br>"
f"Combined Capacity: {self.combined_capacity_critical_bolt if flag else ''}"
)

# Weld
self.hover_dict["Weld"] = (
f"<b>Weld</b><br>"
f"Type: Groove Weld<br>"
f"Web Weld Size: {self.weld_size_web if flag else ''} mm<br>"
f"Web Weld Length: {self.weld_length_web if flag else ''} mm<br>"
f"Allowable Stress: {self.allowable_stress if flag else ''}"
)

return out_list
Expand Down
21 changes: 8 additions & 13 deletions src/osdag_core/design_type/connection/beam_cover_plate.py
Original file line number Diff line number Diff line change
Expand Up @@ -810,25 +810,20 @@ def output_values(self, flag):

# Beam
self.hover_dict["Beam"] = (
f"<b>Beam</b><br>"
f"Section: {self.section.designation if flag else ''}<br>"
f"Depth: {self.section.depth if flag else ''} mm<br>"
f"Flange Width: {self.section.flange_width if flag else ''} mm<br>"
f"Web Thickness: {self.section.web_thickness if flag else ''} mm<br>"
f"Flange Thickness: {self.section.flange_thickness if flag else ''} mm"
f"<b>Beam:</b> {self.section.designation if flag else ''}"
)

# Cover Plates (Flange + Web)
self.hover_dict["Plate"] = (
f"<b>Cover Plates</b><br>"
f"Flange Plate: {self.flange_plate.length if flag else ''} × "
f"{self.flange_plate.height if flag else ''} × "
f"<b>Splice Plates</b><br>"
f"<b>Flange Plate:</b> {self.flange_plate.length if flag else ''} mm × "
f"{self.flange_plate.height if flag else ''} mm × "
f"{self.flange_out_plate_tk if flag else ''} mm<br>"
f"Inner Flange Plate: {self.plate_in_len if flag else ''} × "
f"{self.flange_plate.Innerheight if flag else ''} × "
f"<b>Inner Flange Plate:</b> {self.plate_in_len if flag else ''} mm × "
f"{self.flange_plate.Innerheight if flag else ''} mm × "
f"{self.flange_in_plate_tk if flag else ''} mm<br>"
f"Web Plate: {self.web_plate.length if flag else ''} × "
f"{self.web_plate.height if flag else ''} × "
f"<b>Web Plate:</b> {self.web_plate.length if flag else ''} mm × "
f"{self.web_plate.height if flag else ''} mm × "
f"{self.web_plate.thickness_provided if flag else ''} mm"
)

Expand Down
21 changes: 8 additions & 13 deletions src/osdag_core/design_type/connection/beam_cover_plate_weld.py
Original file line number Diff line number Diff line change
Expand Up @@ -603,25 +603,20 @@ def output_values(self, flag):

# Beam
self.hover_dict["Beam"] = (
f"<b>Beam</b><br>"
f"Section: {self.section.designation if flag else ''}<br>"
f"Depth: {self.section.depth if flag else ''} mm<br>"
f"Flange Width: {self.section.flange_width if flag else ''} mm<br>"
f"Web Thickness: {self.section.web_thickness if flag else ''} mm<br>"
f"Flange Thickness: {self.section.flange_thickness if flag else ''} mm"
f"<b>Beam:</b> {self.section.designation if flag else ''}"
)

# Cover Plates (Flange + Web)
self.hover_dict["Plate"] = (
f"<b>Cover Plates</b><br>"
f"Flange Plate: {self.flange_plate.length if flag else ''} × "
f"{self.flange_plate.height if flag else ''} × "
f"<b>Splice Plates</b><br>"
f"<b>Flange Plate:</b> {self.flange_plate.length if flag else ''} mm × "
f"{self.flange_plate.height if flag else ''} mm × "
f"{self.flange_out_plate_tk if flag else ''} mm<br>"
f"Inner Flange Plate: {self.plate_in_len if flag else ''} × "
f"{self.flange_plate.Innerheight if flag else ''} × "
f"<b>Inner Flange Plate:</b> {self.plate_in_len if flag else ''} mm × "
f"{self.flange_plate.Innerheight if flag else ''} mm × "
f"{self.flange_in_plate_tk if flag else ''} mm<br>"
f"Web Plate: {self.web_plate.length if flag else ''} × "
f"{self.web_plate.height if flag else ''} × "
f"<b>Web Plate:</b> {self.web_plate.length if flag else ''} mm × "
f"{self.web_plate.height if flag else ''} mm × "
f"{self.web_plate.thickness_provided if flag else ''} mm"
)

Expand Down
2 changes: 1 addition & 1 deletion src/osdag_core/design_type/connection/butt_joint_bolted.py
Original file line number Diff line number Diff line change
Expand Up @@ -1720,7 +1720,7 @@ def as_int(x, default=0):
bolts_eq.append(NoEscape(r'\begin{aligned}\\'))
bolts_eq.append(NoEscape(r'n &= \frac{P}{V_{db}}\\\\'))
bolts_eq.append(NoEscape(r'&= \frac{' + str(axial_kN) + r'}{' + str(bolt_final_cap) + r'}\\\\'))
bolts_eq.append(NoEscape(r'&= ' + str(bolts_req_initial) + r' \text{ nos.}\\'))
bolts_eq.append(NoEscape(r'&= ' + str(bolts_req_initial) + r' \text{ no.}\\'))
bolts_eq.append(NoEscape(r'\end{aligned}'))

self.report_check.append(["Bolts Required", f" {axial_kN:.2f} kN", bolts_eq, ""])
Expand Down
17 changes: 6 additions & 11 deletions src/osdag_core/design_type/connection/column_cover_plate.py
Original file line number Diff line number Diff line change
Expand Up @@ -785,22 +785,17 @@ def output_values(self, flag):

# Column
self.hover_dict["Column"] = (
f"<b>Column</b><br>"
f"Section: {self.section.designation if flag else ''}<br>"
f"Depth: {self.section.depth if flag else ''} mm<br>"
f"Flange Width: {self.section.flange_width if flag else ''} mm<br>"
f"Web Thickness: {self.section.web_thickness if flag else ''} mm<br>"
f"Flange Thickness: {self.section.flange_thickness if flag else ''} mm"
f"<b>Column:</b> {self.section.designation if flag else ''}"
)

# Cover Plates (Flange + Web)
self.hover_dict["Plate"] = (
f"<b>Cover Plates</b><br>"
f"Flange Plate: {self.flange_plate.length if flag else ''} × "
f"{self.flange_plate.height if flag else ''} × "
f"<b>Splice Plates</b><br>"
f"<b>Flange Plate:</b> {self.flange_plate.length if flag else ''} mm × "
f"{self.flange_plate.height if flag else ''} mm × "
f"{self.flange_plate.thickness_provided if flag else ''} mm<br>"
f"Web Plate: {self.web_plate.length if flag else ''} × "
f"{self.web_plate.height if flag else ''} × "
f"<b>Web Plate:</b> {self.web_plate.length if flag else ''} mm × "
f"{self.web_plate.height if flag else ''} mm × "
f"{self.web_plate.thickness_provided if flag else ''} mm"
)

Expand Down
21 changes: 8 additions & 13 deletions src/osdag_core/design_type/connection/column_cover_plate_weld.py
Original file line number Diff line number Diff line change
Expand Up @@ -705,25 +705,20 @@ def output_values(self, flag):

# Column
self.hover_dict["Column"] = (
f"<b>Column</b><br>"
f"Section: {self.section.designation if flag else ''}<br>"
f"Depth: {self.section.depth if flag else ''} mm<br>"
f"Flange Width: {self.section.flange_width if flag else ''} mm<br>"
f"Web Thickness: {self.section.web_thickness if flag else ''} mm<br>"
f"Flange Thickness: {self.section.flange_thickness if flag else ''} mm"
f"<b>Column:</b> {self.section.designation if flag else ''}"
)

# Cover Plates (Flange + Web)
self.hover_dict["Plate"] = (
f"<b>Cover Plates</b><br>"
f"Flange Plate: {self.flange_plate.length if flag else ''} × "
f"{self.flange_plate.height if flag else ''} × "
f"<b>Splice Plates</b><br>"
f"<b>Flange Plate:</b> {self.flange_plate.length if flag else ''} mm × "
f"{self.flange_plate.height if flag else ''} mm × "
f"{self.flange_out_plate_tk if flag else ''} mm<br>"
f"Inner Flange Plate: {self.plate_in_len if flag else ''} × "
f"{self.flange_plate.Innerheight if flag else ''} × "
f"<b>Inner Flange Plate:</b> {self.plate_in_len if flag else ''} mm × "
f"{self.flange_plate.Innerheight if flag else ''} mm × "
f"{self.flange_in_plate_tk if flag else ''} mm<br>"
f"Web Plate: {self.web_plate.length if flag else ''} × "
f"{self.web_plate.height if flag else ''} × "
f"<b>Web Plate:</b> {self.web_plate.length if flag else ''} mm × "
f"{self.web_plate.height if flag else ''} mm × "
f"{self.web_plate.thickness_provided if flag else ''} mm"
)

Expand Down
7 changes: 1 addition & 6 deletions src/osdag_core/design_type/connection/column_end_plate.py
Original file line number Diff line number Diff line change
Expand Up @@ -654,12 +654,7 @@ def output_values(self, flag):

# Column
self.hover_dict["Column"] = (
f"<b>Column</b><br>"
f"Section: {self.section.designation if flag else ''}<br>"
f"Depth: {self.section.depth if flag else ''} mm<br>"
f"Flange Width: {self.section.flange_width if flag else ''} mm<br>"
f"Web Thickness: {self.section.web_thickness if flag else ''} mm<br>"
f"Flange Thickness: {self.section.flange_thickness if flag else ''} mm"
f"<b>Column:</b> {self.section.designation if flag else ''}"
)

# End Plate
Expand Down
10 changes: 8 additions & 2 deletions src/osdag_core/design_type/connection/connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -542,12 +542,18 @@ def func_for_validation(self, design_dictionary):
option_list = self.input_values()
missing_fields_list = []
for option in option_list:

connectivity = design_dictionary.get(KEY_CONN, "")
is_beam_to_beam = (connectivity == VALUES_CONN_2[0])

# hover labels
if option[1] == KEY_DISP_COLSEC:
self.hover_dict["Column"] = f"Column: {design_dictionary[option[0]]}"
display_label = "Primary Beam" if is_beam_to_beam else "Column"
self.hover_dict["Column"] = f"<b>{display_label}:</b> {design_dictionary[option[0]]}"

elif option[1] == KEY_DISP_BEAMSEC:
self.hover_dict["Beam"] = f"Beam: {design_dictionary[option[0]]}"
display_label = "Secondary Beam" if is_beam_to_beam else "Beam"
self.hover_dict["Beam"] = f"<b>{display_label}:</b> {design_dictionary[option[0]]}"

if option[2] == TYPE_COMBOBOX and option[0] != KEY_CONN:
if design_dictionary[option[0]] == 'Select Section' or design_dictionary[option[0]] == 'Select Grade':
Expand Down
Loading