diff --git a/README.md b/README.md index 1b1c834..d08eff1 100644 --- a/README.md +++ b/README.md @@ -20,8 +20,8 @@ A desktop application to solve statically determinate and indeterminate 2D truss ## Where to download?

- - + +

@@ -64,6 +64,38 @@ A desktop application to solve statically determinate and indeterminate 2D truss # TO DO * Release cross-platform compatible code +# Changelog +## v1.0.0 +Initial release + +## v1.0.2 +Application startup time is improved + +## v1.1.0 +* Influence line for a unit load is added. +* Automatic table update due to spinbox value change is deprecated. Now the update button must be used. +* Matrices bug in Report is fixed. +* Application startup and closing time is improved. +* Few other bug fixes. + +## v1.1.1 +* wrong reaction calculation fixes +* UI improved for 1280*720 resolution +* overall UI improvement +* debug window is added +* Added few other features + +## v1.1.2 +* up to 1000 nodes, members, supports, loads, and properties are now possible +* setting unit before creating a new file +* stress calculation is now available on the force page +* showing force or stress value directly on the graph instead of a number is available by force checkbox +* better font in debug window and naming convention in code +* report bug fixes + +## v1.1.3 +* fix large truss report bug + # License * This software is under GPL v3 license. See more https://github.com/MShawon/Truss-101/blob/main/LICENSE * Some icons are from icons8. https://icons8.com diff --git a/main.py b/main.py index b28edc6..9c2d703 100644 --- a/main.py +++ b/main.py @@ -213,7 +213,7 @@ def __init__(self): "++++++++++++++++++++++++++++++++++++++++++++++++++++++" self.APP_NAME = 'Truss 101' - self.APP_VERSION = '1.1.2' + self.APP_VERSION = '1.1.3' self.APP_UPDATE_TIME = 'April 2021' "++++++++++++++++++++++++++++++++++++++++++++++++++++++" diff --git a/truss.py b/truss.py index 79f769d..6c747d6 100644 --- a/truss.py +++ b/truss.py @@ -127,13 +127,13 @@ def draw_page_number(self, page_count): t.wrapOn(self, 400, 100) t.drawOn(self, inch*4.5, inch*5) - elif self._pageNumber == page_count - 2 - stress_page: + elif self._pageNumber == page_count - stress_page: im = ImageReader(buf_bar_force) self.drawImage(im, inch*0.1, inch*3.5, width=8*inch, height=6*inch) im = ImageReader(buf_reaction) self.drawImage(im, inch*1, inch*0.1, width=6*inch, height=4*inch) - elif self._pageNumber == page_count: + elif self._pageNumber == page_count - displacement_page: im = ImageReader(buf_displacement) self.drawImage(im, inch*3.8, inch*6, width=4.5*inch, height=3.5*inch) @@ -1881,20 +1881,27 @@ def generate_report(self): global member_page global support_page global stress_page + global displacement_page + total_node = len(self.node_values) total_member = len(self.member_values) if total_node < 27: - member_page = int(total_node / 27) + 3 + member_page = 3 else: member_page = int((total_node - 27) / 37) + 4 if total_member < 33: - support_page = int(total_member / 33) + member_page + 1 + support_page = member_page + 1 else: support_page = int((total_member - 33) / 37) + member_page + 2 - stress_page = int(total_member / 37) + if total_node < 34: + displacement_page = 0 + else: + displacement_page = int((total_node - 33) / 37) + 1 + + stress_page = int(total_member / 37) + displacement_page + 2 self.report = True if not self.demo: