diff --git a/.gitignore b/.gitignore
index c4287e693..b47953df4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,6 +28,7 @@ Osdag_Workspace/*
/backup
OUTPUT_FILES/Output_PDF/*
Output_PDF/*
+**/osdag_gui/data/reports/*
**/ResourceFiles/images/3d.png
**/ResourceFiles/images/front.png
**/ResourceFiles/images/side.png
@@ -37,4 +38,6 @@ Output_PDF/*
**/ResourceFiles/last_designs/*
**/ResourceFiles/html_page/*
*.xlsx
-*.code-workspace
\ No newline at end of file
+*.code-workspace
+**/testing_code/
+!license-dependencies.txt
diff --git a/README.md b/README.md
index 2084a7f92..942cd497d 100644
--- a/README.md
+++ b/README.md
@@ -7,292 +7,288 @@
-## Table of contents
-* Quick start
-* Contributing
-* Bugs and known issues
-* Versioning
-* Copyright and license
+---
-## Quick start
+## Table of Contents
-Download the latest version of Osdag
+- [Quick Start](#quick-start)
+ - [Windows Installation](#1-windows-installation)
+ - [Conda Installation](#2-conda-installation)
+- [Contributing](#contributing)
+- [Bugs and Known Issues](#bugs-and-known-issues)
+- [Versioning](#versioning)
+- [Copyright and License](#copyright-and-license)
+
+---
+
+## Quick Start
+
+**[Download the latest version of Osdag](http://osdag.fossee.in/resources/downloads)**
### 1. Windows Installation
-#### System Requirements:
+```
+System Requirements:
+
Supported Operating Systems:
Windows Vista
- Windows 7,
- Windows 8,
- Windows 8.1,
+ Windows 7
+ Windows 8
+ Windows 8.1
Windows 10
- Supported Architecture:
- 64-bit
- RAM and Storage Space:
- Minimum 2 Gb RAM recommended
- Minimum 1 Gb free storage space recommended
-
-
- Installation steps:
- ===================
-
- Uninstalling Earlier Version of Osdag: If you have a previous version of Osdag installed then it is mandatory to uninstall the same.
+ Windows 11
- i) Go to the location where Osdag was installed and run "Uninstall.exe".
-
- # Note: If you have an active Antivirus package installed on your system please disable it during the installation of Osdag. Since, Osdag is not registered with the Microsoft store, the antivirus might block installation/running of Osdag. Osdag does not install any harmful package on your system.
-
- To install Osdag, Run Osdag_windows_setup.exe
-
- # Follow on-screen instructions AND select the following options in the Setup:
-
- i) Double click on the Osdag_windows_installer.exe to start the start the installation process.
- ii) Click Next.
- iii) Read the License and click 'I Agree' to proceed.
- iv) Select the installation directory after checking the space requirement and click Next.
- v) Click Install.
- vi) Wait for the installation process to get over (this might take several minutes).
- vii) Accept the MiKTeX license and click Next.
- Viii) Choose the MiKTeX installation scope and click Next.
- ix) Select the installation directory and click Next.
- x) Keep the MiKTeX setting to default and click Next.
- xi) Click start to install MiKTeX.
- xii) Click Next.
- Xiii) (optional) You can check for MiKTeX package updates.
- xiv) Click Close to exit the MiKTeX setup wizard.
- xv) The installation process will continue. After the process ends, click the Finish button.
-
- Osdag will be successfully installed!
-
- Running Osdag:
- ==============
- After the installation is complete, you may run Osdag by one of the following methods:
+ Supported Architecture:
+ 64-bit
- i) Double-clicking on the Desktop shortcut or
- ii) Press the Windows key and search Osdag
- iii) Navigating to the installation-directory and double-clicking on the Osdag shortcut
+ RAM and Storage Space:
+ Minimum 4 GB RAM recommended
+ Minimum 3 GB free storage space recommended
+
+Installation Steps:
+===================
+
+Uninstalling Earlier Version of Osdag:
+
+ If you have a previous version of Osdag installed then it is mandatory to uninstall the same.
+ i) Go to the location where Osdag was installed and run "Uninstall.exe".
-### 2. Ubuntu Installation
+# Note: If you have an active Antivirus package installed on your system please disable it
+ during the installation of Osdag. Since Osdag is not registered with the Microsoft store,
+ the antivirus might block installation/running of Osdag. Osdag does not install any harmful
+ package on your system.
-#### System Requirements:
- Operating System:
- Ubuntu 14.04 (LTS) and later; 64-bit
- Hardware Requirements:
- Minimum 4 Gb RAM
- Minimum of 1 Gb of free disk space
-
- This setup script is for machines running Ubuntu that do not have Miniconda3.
- If you have Miniconda3 already installed on your computer, please skip Step/Command 1 and proceed to Step/Command 2.
-
+To install Osdag, Run Osdag_windows_installer.exe
- Installation steps:
- ===================
- Extract the downloaded installer using the Archive Manager/File-Roller, or using the following command on the bash prompt: tar -xvf Osdag_ubuntu_installer.tar.gz
+# Follow on-screen instructions AND select the following options in the Setup:
- # If you have already installed the previous version of Osdag in your system then skip Step/Command 1) and just run the new 2-install-osdag.sh.
+ i) Double click on the Osdag_windows_installer.exe to start the installation process.
+ ii) Click Next.
+ iii) Read the License and click 'I Agree' to proceed.
+ iv) Select the installation directory after checking the space requirement and click Next.
+ v) Click Install.
+ vi) The installation process will continue. After the process ends, click the Finish button.
- In bash, navigate to the extracted installation folder containing the shell
- scripts (the folder that contains this README file) and a folder named Osdag,
- and enter Command 1 , Command 2 and Command 3 given below.
-
- Note: After entering Command 1, while installing Miniconda3, you will be asked
- whether you wish to set the system default python to Miniconda3. You need to agree
- to this.After that you have to run command 2 in order for the 3rd command to work.
- After that execute the 3rd steps. After 3rd step completed run the command 4.Please be sure
- to have internet connection as it's required to download some files.
- Step/Command 1:
- bash 1-install-Miniconda3-latest-Linux-x86_64.sh
- Step/Command 2:
- bash 2-init-conda_base.sh
- Step/Command 3:
- bash 3-install-osdag.sh
- Step/Command 4:
- bash 4-install-texlive.sh
+ Osdag will be successfully installed!
- Running Osdag:
- =============
- After the installation is complete, you may copy/move the extracted Osdag folder to a location of your choice (say, directly under your home folder).
- You can run Osdag in two ways
- 1) Using the Osdag Launcher:
- To run Osdag, navigate to the Osdag folder, double click on the file named Osdag (without any extension).
- This file is different from Osdag_icon.ico (although both will show the Osdag logo in the grid icon view mode).
- If you are using the Unity desktop, you may also pin this launcher to the launcher sidebar.
+Running Osdag:
+==============
- 2) Using the Command:
- In the bash prompt, navigate to the Osdag directory and enter the following command python osdagMainPage.py
+After the installation is complete, you may run Osdag by one of the following methods:
- Note that, Step/Command 2 will work only if the system default python is the one installed through Miniconda2.
- Alternatively, you may specify the (installed) python you wish to use, in Command 2.
+ i) Double-clicking on the Desktop shortcut or
+ ii) Press the Windows key and search Osdag
+ iii) Navigating to the installation-directory and double-clicking on the Osdag shortcut
+```
-## Contributing
-Osdag invites enthusiasts with similar interest(s) to contribute to Osdag development. Your contributions can go a long way in improving the software.
-Please take a moment to review the guidelines for contributing.
+---
- * Bug reports
- * Feature requests
- * Pull requests
+### 2. Conda Installation
-## Bugs and known issues
-Have a bug or a feature request? Please first read the issue guidelines and search for existing and closed issues. If your problem or idea has not been addressed yet, please open a new issue or post a query on the Osdags discussion forum.
+```
+System Requirements:
-## Versioning
-The latest version of Osdag can perform design for two scenarios;
+ Hardware Requirements:
+ Minimum 4 GB RAM
+ Minimum 3 GB free disk space
-Scenario 1: Users can obtain the optimum design for a given scenario, from a suite of available options in terms of steel sections (e.g., different channel sizes and plate thicknesses) and connectors (e.g., bolts of different grades and diameters). The optimum design is selected based on the total volume of material and this design solution is detailed in the output dock and design report.
+ Prerequisites:
+ This setup script is for machines running Ubuntu, Windows or macOS that do not have
+ Miniconda3. If you have Miniconda3 already installed on your computer, please skip
+ Step 1 and proceed to Step 2.
+```
-Scenario 2: Perform a design check with a specific set of single inputs/selections in the 'Customized' option. In this case, Osdag will inform if the design checks are satisfied and suggest changes otherwise.
+#### Installation Steps
-The Design Report has been reformatted using the LaTeX software system through the PyLaTeX package. The report is much more detailed and shows step-by-step calculation(s) for a better user experience.
+**1. Install Miniconda3**
-The Shear and Moment connections available with the previous versions have been modified in terms of structure at the backend, GUI and calculations. Any know bug(s) have been fixed.
+Install [Miniconda3](https://docs.anaconda.com/miniconda/install/) if not installed already. Select your operating system. Any other installation giving access to the latest conda version (e.g., Anaconda, miniforge, etc.) is also acceptable.
-The latest version of Osdag contains the following modules (in addition to the ones available with the previous versions):
+**2. Install LaTeX Distribution**
- Beam-Beam Splice Connection
+Install [MikTeX](https://miktex.org/howto/install-miktex) (for Windows) / [TeX Live](http://www.tug.org/texlive) (for Linux or other OS). This will be needed to generate reports.
- Beam-Beam Cover Plate Bolted
- Beam-Beam End Plate
- Beam-Beam Cover Plate Welded
+- **For MikTeX:** Make sure to select "Install for yourself". Once the installation is complete, open MikTeX Console, click on "Check for updates". Click "Update now" if there is any update available.
- Beam-Column Connection
-
- Beam-Column End Plate
+- **For TeX Live:** The package `texlive-full` may have to be installed to avoid a "missing packages" error (more details below).
- Column-Column Splice Connection
+**3. Open the Conda-Enabled Shell**
- Column-Column Cover Plate Bolted
- Column-Column Cover Plate Welded
- Column-Column End Plate
+Instructions are available on the Miniconda3 installations page.
- Base Plate Connection
-
- Tension Member
+- **For Windows:** Open the Anaconda Command Prompt or Anaconda PowerShell Prompt. These should be available from the start menu after installation.
+
+- **For Linux:** Open the terminal (use `Ctrl+Alt+T`)
+
+**4. Create Osdag Environment**
+
+Run this command. This will create a new environment and install Osdag in it. It may take several minutes to get the prompt back.
+
+```bash
+conda create -n osdag-env osdag::osdag -c conda-forge
+```
+
+**5. Run Osdag**
+
+To run Osdag, from the same shell, run these two commands. This will open the Osdag main page.
+
+```bash
+conda activate osdag-env
+osdag
+```
+
+> **Note:** Running Osdag will create a folder "ResourceFiles" where this command is run. This folder will be used to store data for use in subsequent runs (for example, input values for various modules).
+
+**6. Verify Installation**
- Tension Member Bolted
- Tension Member Welded
+Attempt a sample problem to make sure everything is working.
-Previous Releases
+**7. LaTeX Package Installation**
-Version 2017.08.a.874e
+During the first run, when creating the design report, some LaTeX packages may have to be installed before the report can be compiled. MikTeX will generally attempt to do this right then, but may fail if it was installed as an administrator. TeX Live is generally installed as an administrator (i.e., with sudo), so you may have to install `texlive-full` first.
- Bugs fixed
+**8. Future Usage**
-Version 2017.06.a.e2dd
+To run Osdag in the future, follow Step 5 from the same folder. This will not require an internet connection (except for installing missing packages as described in Step 7).
- This beta version of Osdag contains only the shear connection modules.
+**9. Update Osdag**
-===============================================
-The contributors of the latest version are:
+Occasionally, update Osdag as new updates may have been added since the install.
-Osdag development team (2019 - Present)
+```bash
+conda activate osdag-env
+conda update osdag
+```
-===============================
+#### Alternative Installation (if issues occur)
-Project Investigator - Osdag
+In case of issues during Steps 3 or 4, i.e., in case Osdag is not installed or does not run, you could try to use the alternative mamba solver:
-Professor Siddhartha Ghosh
+**1. Activate the environment**
-===============================
+```bash
+conda activate osdag-env
+```
-Research Associates/Assistants - Technical and Development Team
+**2. Install mamba**
-Mr. Danish Ansari
+```bash
+conda install mamba
+```
-Mr. Ajmal Babu MS
+**3. Install Osdag using mamba**
-Mr. N Dharma Teja
+```bash
+mamba install osdag::osdag -c conda-forge
+```
-Ms. Thushara Pushkaran
+---
-Mr. Yash Lokhande
+## Contributing
-Mr. Anand Swaroop
+Osdag invites enthusiasts with similar interests to contribute to Osdag development. Your contributions can go a long way in improving the software.
-Mr. Darshan Divesan
+Please take a moment to review the [guidelines for contributing](https://github.com/osdag-admin/Osdag/blob/master/CONTRIBUTING.md).
-Mr. Anjali Jatav
+**Ways to Contribute:**
+- Bug reports
+- Feature requests
+- Pull requests
-Mr. Sourabh Das
+---
-Ms. Deepthi Reddy
+## Bugs and Known Issues
-===============================
+Have a bug or a feature request? Please first read the [issue guidelines](https://github.com/osdag-admin/Osdag/blob/master/CONTRIBUTING.md#using-the-issue-tracker) and search for existing and closed issues.
-Project Interns
+If your problem or idea has not been addressed yet, please:
+- [Open a new issue](https://github.com/osdag-admin/Osdag/issues/new), or
+- Post a query [on the Osdag discussion forum](https://osdag.fossee.in/forum)
-Mr. Ansari Mohammad Umair
+---
-Mr. Amir Chappalwala
+## Versioning
-Mr. Zunzunia Arsil
+### Current Version Features
-Mr. Mohammad Azhar U Din Mir
+The latest version of Osdag can perform design for two scenarios:
-Mr. Satyam Singh Niranjan
+**Scenario 1: Optimum Design**
-Mr. Anshul Kumar Singh
+Users can obtain the optimum design for a given scenario from a suite of available options in terms of:
+- Steel sections (e.g., different channel sizes and plate thicknesses)
+- Connectors (e.g., bolts of different grades and diameters)
-Mr. Mosam Patel
+The optimum design is selected based on the total volume of material, and this design solution is detailed in the output dock and design report.
-Mr. Shahadad PP
+**Scenario 2: Design Check**
-Ms. Priti Kumari
+Perform a design check with a specific set of single inputs/selections in the 'Customized' option. In this case, Osdag will inform if the design checks are satisfied and suggest changes otherwise.
-===============================
+### Key Improvements
-Project Management
+- The Design Report has been reformatted using the LaTeX software system through the PyLaTeX package
+- The report is much more detailed and shows step-by-step calculations for a better user experience
+- Shear and Moment connections, Slab and Gusseted Base Plates, Tension Members, Compression Members, and Flexural Members have been modified in terms of structure at the backend, GUI, and calculations
+- Known bugs have been fixed
-Ms. Usha Viswanathan
+### Available Modules
-Ms. Vineeta Parmar
+The latest version of Osdag contains the following modules (in addition to those available with previous versions):
-Mr. Sunil Shetye
+#### Connections
-===============================
+**Plate(d) Connections:**
+- Lap Joint - Bolted
+- Lap Joint - Welded
+- Butt Joint - Bolted
+- Butt Joint - Welded
-Web, Graphics, Promotions and System Administrators Team
+#### Compression Member
-Ms. Sashi Rekha B M K
+- Strut - Bolted to End Gusset
+- Strut - Welded to End Gusset
+- Axially Loaded Columns
-Mr. Lee Thomas Stephen
+#### Flexural Member
-Mr. Rohan Mhatre
+- Plate Girder
-Mr. Khushal Singh Rajput
+---
-Mr. Yash Vohra
+### Previous Releases
-===============================
+#### Version 2025_01_a_2
-Office Staff
+- New modules have been added to Osdag:
+ - **Compression Member:** Strut in Trusses
+ - **Flexural Member:** Simply Supported Beam, Cantilever Beam
+- The process of creating the CAD models has been optimized to reduce the time required
+- A more streamlined conda-based installer is available to allow for smoother installation and updating. Once installed, users can update Osdag without the need for reinstallation
-Ms.Komal Solanki
+#### Version 2017.08.a.874e
-Mr.Vishal Birare
+- Bugs fixed
-Mr. Sushant Bammkanti
+#### Version 2017.06.a.e2dd
-===============================
+- This beta version of Osdag contains only the shear connection modules
-Acknowledgements:
+---
-Ministry of Education (MoE), Govt. of India
+**Contributors**
-FOSSEE
+The contributors of the latest version are acknowledged in [CONTRIBUTORS.md](https://github.com/osdag-admin/Osdag/blob/dev/src/osdag_core/data/doc/CONTRIBUTORS.MD)
-Professor Kannan Moudgalya
+---
-Professor Prabhu Ramachandran
+## Copyright and License
-Mr. Sunil Shetye
+Copyright © Osdag contributors 2020.
-## Copyright and license
-(c) Copyright Osdag contributors 2020.
-This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the License.txt file for details regarding the license.
-The beta version of Osdag is released under the terms and conditions of the GNU LESSER GENERAL PUBLIC LICENSE (LGPL) Version 3.
+This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the [License.txt](https://github.com/osdag-admin/Osdag/files/1207162/License.txt) file for details regarding the license.
-=============================== End of File ===============================
+The beta version of Osdag is released under the terms and conditions of the **GNU LESSER GENERAL PUBLIC LICENSE (LGPL) Version 3**.
\ No newline at end of file
diff --git a/ResourceFiles/images/right.png b/ResourceFiles/images/right.png
new file mode 100644
index 000000000..4f9886d11
Binary files /dev/null and b/ResourceFiles/images/right.png differ
diff --git a/conda-recipe/meta.yaml b/conda-recipe/meta.yaml
new file mode 100644
index 000000000..3afc3f1e0
--- /dev/null
+++ b/conda-recipe/meta.yaml
@@ -0,0 +1,109 @@
+# Note: there are many handy hints in comments in this example -- remove them when you've finalized your recipe
+# If your package is python based, we recommend using Grayskull to generate it instead:
+# https://github.com/conda-incubator/grayskull
+
+# Jinja variables help maintain the recipe as you'll update the version only here.
+# Using the name variable with the URL in line 16 is convenient
+# when copying and pasting from another recipe, but not really needed.
+{% set name = "Osdag" %}
+{% set branch = "Mergeable" %}
+{% set version = "2026.02.0.0" %}
+
+package:
+ name: {{ name|lower }}
+ version: {{ version }}
+
+source:
+ # url: https://github.com/osdag-admin/{{ name }}/archive/refs/heads/{{ branch }}.zip
+ # git_url: https://github.com/osdag-admin/Osdag.git
+ # git_rev: {{ branch }}
+ path: ..
+ # sha256: ???
+ # sha256 is the preferred checksum -- you can get it for a file with:
+ # `openssl sha256 `.
+ # You may need the openssl package, available on conda-forge:
+ # `conda install openssl -c conda-forge``
+
+build:
+ number: 0
+ # Uncomment the following line if the package is pure Python and the recipe is exactly the same for all platforms.
+ # It is okay if the dependencies are not built for all platforms/versions, although selectors are still not allowed.
+ # See https://conda-forge.org/docs/maintainer/knowledge_base.html#noarch-python for more details.
+ noarch: python
+ # If the installation is complex, or different between Unix and Windows, use separate bld.bat and build.sh files instead of this key.
+ # By default, the package will be built for the Python versions supported by conda-forge and for all major OSs.
+ # Add the line "skip: True # [py<35]" (for example) to limit to Python 3.5 and newer, or "skip: True # [not win]" to limit to Windows.
+ # More info about selectors can be found in the conda-build docs:
+ # https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#preprocessing-selectors
+ script: {{ PYTHON }} -m pip install --no-deps --force-reinstall . -vv
+ entry_points:
+ - osdag = osdag_gui.__main__:main
+
+requirements:
+ build:
+ # If your project compiles code (such as a C extension) then add the required compilers as separate entries here.
+ # Compilers are named 'c', 'cxx' and 'fortran'.
+ - conda-forge::setuptools
+ - conda-forge::wheel
+
+ host:
+ - conda-forge::python>=3.11,<=3.13
+ - conda-forge::setuptools
+ - conda-forge::wheel
+ - conda-forge::pip
+ run:
+ - conda-forge::python>=3.11,<=3.13
+ - conda-forge::numpy
+ - conda-forge::openpyxl
+ - conda-forge::pandas
+ - conda-forge::pylatex
+ - conda-forge::pyside6
+ - conda-forge::markdown
+ - osdag::osdag_latex_env
+ - conda-forge::pythonocc-core
+ - conda-forge::click
+ - conda-forge::pyyaml
+ - conda-forge::smesh
+ - conda-forge::sqlite
+ - conda-forge::tbb
+
+test:
+ # Some packages might need a `test/commands` key to check CLI.
+ # List all the packages/modules that `run_test.py` imports.
+ # imports:
+ # - simplejson
+ # - simplejson.tests
+ # For python packages, it is useful to run pip check. However, sometimes the
+ # metadata used by pip is out of date. Thus this section is optional if it is
+ # failing.
+ # requires:
+ # - pip
+ # commands:
+ # - pip check
+
+about:
+ home: https://osdag.fossee.in
+ summary: 'Open steel design and graphics'
+ description: |
+ Open steel design and graphics
+ # Remember to specify the license variants for BSD, Apache, GPL, and LGPL.
+ # Use the SPDX identifier, e.g: GPL-2.0-only instead of GNU General Public License version 2.0
+ # See https://spdx.org/licenses/
+ license: LGPL-3.0-only
+ # The license_family, i.e. "BSD" if license is "BSD-3-Clause".
+ # Optional
+ license_family: LGPL
+ # It is required to include a license file in the package,
+ # (even if the license doesn't require it) using the license_file entry.
+ # Please also note that some projects have multiple license files which all need to be added using a valid yaml list.
+ # See https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#license-file
+ license_file: LICENSE
+ # The doc_url and dev_url are optional.
+ doc_url: https://osdag.fossee.in
+ dev_url: https://github.com/osdag-admin/Osdag
+
+extra:
+ recipe-maintainers:
+ # GitHub IDs for maintainers of the recipe.
+ # Always check with the people listed below if they are OK becoming maintainers of the recipe. (There will be spam!)
+ - AjinkyaDahale
\ No newline at end of file
diff --git a/license-dependencies.txt b/license-dependencies.txt
new file mode 100644
index 000000000..e836270c4
--- /dev/null
+++ b/license-dependencies.txt
@@ -0,0 +1,128 @@
+Osdag incorporates third-party open-source components.
+Some components are licensed under the GNU Lesser General Public License (LGPL).
+Use of these components is compliant with the LGPL as they are dynamically linked
+and remain unmodified.
+
+The respective licenses apply to each dependency as listed below.
+
+----------------------------------------------------------------
+Dependencies
+----------------------------------------------------------------
+
+Package: python
+Source: conda-forge
+License: Python Software Foundation License (PSF)
+Link to Dependency: https://github.com/python/cpython
+Link to License: https://docs.python.org/3/license.html
+
+Package: setuptools
+Source: conda-forge
+License: MIT
+Link to Dependency: https://github.com/pypa/setuptools
+Link to License: https://opensource.org/licenses/MIT
+
+Package: wheel
+Source: conda-forge
+License: MIT
+Link to Dependency: https://github.com/pypa/wheel
+Link to License: https://opensource.org/licenses/MIT
+
+Package: pip
+Source: conda-forge
+License: MIT
+Link to Dependency: https://github.com/pypa/pip
+Link to License: https://opensource.org/licenses/MIT
+
+Package: numpy
+Source: conda-forge
+License: BSD 3-Clause License
+Link to Dependency: https://github.com/numpy/numpy
+Link to License: https://opensource.org/licenses/BSD-3-Clause
+
+Package: pandas
+Source: conda-forge
+License: BSD 3-Clause License
+Link to Dependency: https://github.com/pandas-dev/pandas
+Link to License: https://opensource.org/licenses/BSD-3-Clause
+
+Package: openpyxl
+Source: conda-forge
+License: MIT
+Link to Dependency: https://foss.heptapod.net/openpyxl/openpyxl
+Link to License: https://opensource.org/licenses/MIT
+
+Package: pyside6
+Source: conda-forge
+License: GNU Lesser General Public License v3 (LGPL-3.0)
+Link to Dependency: https://wiki.qt.io/Qt_for_Python
+Link to License: https://www.gnu.org/licenses/lgpl-3.0.html
+
+Package: pythonocc-core
+Source: conda-forge
+License: GNU Lesser General Public License v3 (LGPL-3.0)
+Link to Dependency: https://github.com/tpaviot/pythonocc-core
+Link to License: https://www.gnu.org/licenses/lgpl-3.0.html
+
+Package: smesh
+Source: conda-forge
+License: GNU Lesser General Public License v2.1 or later (LGPL-2.1+)
+Link to Dependency: https://github.com/SalomePlatform/smesh
+Link to License: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
+
+Package: markdown
+Source: conda-forge
+License: BSD 3-Clause License
+Link to Dependency: https://github.com/Python-Markdown/markdown
+Link to License: https://opensource.org/licenses/BSD-3-Clause
+
+Package: click
+Source: conda-forge
+License: BSD 3-Clause License
+Link to Dependency: https://github.com/pallets/click
+Link to License: https://opensource.org/licenses/BSD-3-Clause
+
+Package: pyyaml
+Source: conda-forge
+License: MIT
+Link to Dependency: https://github.com/yaml/pyyaml
+Link to License: https://opensource.org/licenses/MIT
+
+Package: sqlite
+Source: conda-forge
+License: Public Domain
+Link to Dependency: https://www.sqlite.org/index.html
+Link to License: https://www.sqlite.org/copyright.html
+
+Package: tbb (Threading Building Blocks)
+Source: conda-forge
+License: Apache License 2.0
+Link to Dependency: https://github.com/oneapi-src/oneTBB
+Link to License: https://www.apache.org/licenses/LICENSE-2.0
+
+----------------------------------------------------------------
+LaTeX Environment
+----------------------------------------------------------------
+
+Package: osdag_latex_env
+Source: osdag (osdag conda channel)
+License: Includes bundled LaTeX distribution components; see details below
+Link to Dependency: https://github.com/osdag-admin/osdag-latex-env
+
+Package: TeX Live
+Link to Dependency: https://tug.org/texlive/
+License: LaTeX Project Public License (LPPL)
+License Link: https://www.latex-project.org/lppl/
+----------------------------------------------------------------
+LGPL COMPLIANCE NOTICE
+----------------------------------------------------------------
+
+The LGPL-licensed components listed above are used as dynamically linked
+libraries. No modifications have been made to the source code of these
+components.
+
+In accordance with the LGPL, users retain the right to replace or relink
+these libraries with compatible versions.
+
+Copies of the LGPL licenses are available at:
+https://www.gnu.org/licenses/
+----------------------------------------------------------------
diff --git a/pyproject.toml b/pyproject.toml
index 74dfe03c3..64dc77ef0 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -8,19 +8,25 @@ namespaces = true
where = ["src"]
[tool.setuptools.package-data]
-"osdag.data.ResourceFiles.images" = ["*.png", "*.PNG", "*.jpg", "*.jpeg"]
-"osdag.data.ResourceFiles.Database" = ["*"]
-"osdag.data.themes" = ["*"]
+"osdag_core.data.doc" = ["**/*.MD", "**/*.md", "**/*.TXT", "**/*.txt"]
+"osdag_core.data.ResourceFiles.images" = ["**/*.png", "**/*.PNG", "**/*.jpg", "**/*.JPG", "**/*.jpeg", "**/*.JPEG"]
+"osdag_core.data.ResourceFiles.Database" = ["*"]
+"osdag_gui.resources" = [
+ "**/*.png", "**/*.PNG", "**/*.jpg", "**/*.JPG", "**/*.jpeg", "**/*.JPEG", "**/*.svg",
+ "**/*.qss", "**/*.ttf", "**/*.qrc"
+]
+
[project]
name = "osdag"
dynamic = ["version"]
-dependencies = ["PyQt5", "requests", "pylatex", "numpy", "PyYaml", "PyGithub"]
-requires-python = ">= 3.8"
+dependencies = ["PyQt5", "PySide6", "requests", "pylatex", "numpy", "PyYaml", "PyGithub", "Click"]
+requires-python = ">= 3.11"
description = "Open steel design and graphics"
readme = "README.md"
license = {file = "LICENSE"}
keywords = ["steel design", "civil engineering", "engineering"]
-[project.gui-scripts]
-osdag = "osdag.osdagMainPage:do_stuff"
+[project.scripts]
+osdag = "osdag_gui.__main__:main"
+
diff --git a/requirements.txt b/requirements.txt
index 0d50a7b7c..5f39833a6 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,14 @@
+python<=3.13.*
numpy
+openpyxl
+pandas
pylatex
-pyyaml
-wheel
\ No newline at end of file
+pyside6
+markdown
+osdag_latex_env
+pythonocc-core
+click
+yaml
+smesh
+sqlite
+tbb
\ No newline at end of file
diff --git a/src/drawing1.dxf b/src/drawing1.dxf
new file mode 100644
index 000000000..4ff61c0bc
--- /dev/null
+++ b/src/drawing1.dxf
@@ -0,0 +1,3574 @@
+ 0
+SECTION
+ 2
+HEADER
+ 9
+$ACADVER
+ 1
+AC1024
+ 9
+$ACADMAINTVER
+ 70
+6
+ 9
+$DWGCODEPAGE
+ 3
+ANSI_1252
+ 9
+$LASTSAVEDBY
+ 1
+ezdxf
+ 9
+$INSBASE
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$EXTMIN
+ 10
+1e+20
+ 20
+1e+20
+ 30
+1e+20
+ 9
+$EXTMAX
+ 10
+-1e+20
+ 20
+-1e+20
+ 30
+-1e+20
+ 9
+$LIMMIN
+ 10
+0.0
+ 20
+0.0
+ 9
+$LIMMAX
+ 10
+420.0
+ 20
+297.0
+ 9
+$ORTHOMODE
+ 70
+0
+ 9
+$REGENMODE
+ 70
+1
+ 9
+$FILLMODE
+ 70
+1
+ 9
+$QTEXTMODE
+ 70
+0
+ 9
+$MIRRTEXT
+ 70
+1
+ 9
+$LTSCALE
+ 40
+1.0
+ 9
+$ATTMODE
+ 70
+1
+ 9
+$TEXTSIZE
+ 40
+2.5
+ 9
+$TRACEWID
+ 40
+1.0
+ 9
+$TEXTSTYLE
+ 7
+Standard
+ 9
+$CLAYER
+ 8
+0
+ 9
+$CELTYPE
+ 6
+ByLayer
+ 9
+$CECOLOR
+ 62
+256
+ 9
+$CELTSCALE
+ 40
+1.0
+ 9
+$DISPSILH
+ 70
+0
+ 9
+$DIMSCALE
+ 40
+1.0
+ 9
+$DIMASZ
+ 40
+2.5
+ 9
+$DIMEXO
+ 40
+0.625
+ 9
+$DIMDLI
+ 40
+3.75
+ 9
+$DIMRND
+ 40
+0.0
+ 9
+$DIMDLE
+ 40
+0.0
+ 9
+$DIMEXE
+ 40
+1.25
+ 9
+$DIMTP
+ 40
+0.0
+ 9
+$DIMTM
+ 40
+0.0
+ 9
+$DIMTXT
+ 40
+2.5
+ 9
+$DIMCEN
+ 40
+2.5
+ 9
+$DIMTSZ
+ 40
+0.0
+ 9
+$DIMTOL
+ 70
+0
+ 9
+$DIMLIM
+ 70
+0
+ 9
+$DIMTIH
+ 70
+0
+ 9
+$DIMTOH
+ 70
+0
+ 9
+$DIMSE1
+ 70
+0
+ 9
+$DIMSE2
+ 70
+0
+ 9
+$DIMTAD
+ 70
+1
+ 9
+$DIMZIN
+ 70
+8
+ 9
+$DIMBLK
+ 1
+
+ 9
+$DIMASO
+ 70
+1
+ 9
+$DIMSHO
+ 70
+1
+ 9
+$DIMPOST
+ 1
+
+ 9
+$DIMAPOST
+ 1
+
+ 9
+$DIMALT
+ 70
+0
+ 9
+$DIMALTD
+ 70
+3
+ 9
+$DIMALTF
+ 40
+0.03937007874
+ 9
+$DIMLFAC
+ 40
+1.0
+ 9
+$DIMTOFL
+ 70
+1
+ 9
+$DIMTVP
+ 40
+0.0
+ 9
+$DIMTIX
+ 70
+0
+ 9
+$DIMSOXD
+ 70
+0
+ 9
+$DIMSAH
+ 70
+0
+ 9
+$DIMBLK1
+ 1
+
+ 9
+$DIMBLK2
+ 1
+
+ 9
+$DIMSTYLE
+ 2
+ISO-25
+ 9
+$DIMCLRD
+ 70
+0
+ 9
+$DIMCLRE
+ 70
+0
+ 9
+$DIMCLRT
+ 70
+0
+ 9
+$DIMTFAC
+ 40
+1.0
+ 9
+$DIMGAP
+ 40
+0.625
+ 9
+$DIMJUST
+ 70
+0
+ 9
+$DIMSD1
+ 70
+0
+ 9
+$DIMSD2
+ 70
+0
+ 9
+$DIMTOLJ
+ 70
+0
+ 9
+$DIMTZIN
+ 70
+8
+ 9
+$DIMALTZ
+ 70
+0
+ 9
+$DIMALTTZ
+ 70
+0
+ 9
+$DIMUPT
+ 70
+0
+ 9
+$DIMDEC
+ 70
+2
+ 9
+$DIMTDEC
+ 70
+2
+ 9
+$DIMALTU
+ 70
+2
+ 9
+$DIMALTTD
+ 70
+3
+ 9
+$DIMTXSTY
+ 7
+Standard
+ 9
+$DIMAUNIT
+ 70
+0
+ 9
+$DIMADEC
+ 70
+0
+ 9
+$DIMALTRND
+ 40
+0.0
+ 9
+$DIMAZIN
+ 70
+0
+ 9
+$DIMDSEP
+ 70
+44
+ 9
+$DIMATFIT
+ 70
+3
+ 9
+$DIMFRAC
+ 70
+0
+ 9
+$DIMLDRBLK
+ 1
+
+ 9
+$DIMLUNIT
+ 70
+2
+ 9
+$DIMLWD
+ 70
+-2
+ 9
+$DIMLWE
+ 70
+-2
+ 9
+$DIMTMOVE
+ 70
+0
+ 9
+$DIMFXL
+ 40
+1.0
+ 9
+$DIMFXLON
+ 70
+0
+ 9
+$DIMJOGANG
+ 40
+0.785398163397
+ 9
+$DIMTFILL
+ 70
+0
+ 9
+$DIMTFILLCLR
+ 70
+0
+ 9
+$DIMARCSYM
+ 70
+0
+ 9
+$DIMLTYPE
+ 6
+
+ 9
+$DIMLTEX1
+ 6
+
+ 9
+$DIMLTEX2
+ 6
+
+ 9
+$DIMTXTDIRECTION
+ 70
+0
+ 9
+$LUNITS
+ 70
+2
+ 9
+$LUPREC
+ 70
+4
+ 9
+$SKETCHINC
+ 40
+1.0
+ 9
+$FILLETRAD
+ 40
+10.0
+ 9
+$AUNITS
+ 70
+0
+ 9
+$AUPREC
+ 70
+2
+ 9
+$MENU
+ 1
+.
+ 9
+$ELEVATION
+ 40
+0.0
+ 9
+$PELEVATION
+ 40
+0.0
+ 9
+$THICKNESS
+ 40
+0.0
+ 9
+$LIMCHECK
+ 70
+0
+ 9
+$CHAMFERA
+ 40
+0.0
+ 9
+$CHAMFERB
+ 40
+0.0
+ 9
+$CHAMFERC
+ 40
+0.0
+ 9
+$CHAMFERD
+ 40
+0.0
+ 9
+$SKPOLY
+ 70
+0
+ 9
+$TDCREATE
+ 40
+2460755.074085648
+ 9
+$TDUCREATE
+ 40
+2458532.153996898
+ 9
+$TDUPDATE
+ 40
+2460755.0742013888
+ 9
+$TDUUPDATE
+ 40
+2458532.1544311
+ 9
+$TDINDWG
+ 40
+0.0
+ 9
+$TDUSRTIMER
+ 40
+0.0
+ 9
+$USRTIMER
+ 70
+1
+ 9
+$ANGBASE
+ 50
+0.0
+ 9
+$ANGDIR
+ 70
+0
+ 9
+$PDMODE
+ 70
+0
+ 9
+$PDSIZE
+ 40
+0.0
+ 9
+$PLINEWID
+ 40
+0.0
+ 9
+$SPLFRAME
+ 70
+0
+ 9
+$SPLINETYPE
+ 70
+6
+ 9
+$SPLINESEGS
+ 70
+8
+ 9
+$HANDSEED
+ 5
+43
+ 9
+$SURFTAB1
+ 70
+6
+ 9
+$SURFTAB2
+ 70
+6
+ 9
+$SURFTYPE
+ 70
+6
+ 9
+$SURFU
+ 70
+6
+ 9
+$SURFV
+ 70
+6
+ 9
+$UCSBASE
+ 2
+
+ 9
+$UCSNAME
+ 2
+
+ 9
+$UCSORG
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSXDIR
+ 10
+1.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSYDIR
+ 10
+0.0
+ 20
+1.0
+ 30
+0.0
+ 9
+$UCSORTHOREF
+ 2
+
+ 9
+$UCSORTHOVIEW
+ 70
+0
+ 9
+$UCSORGTOP
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGBOTTOM
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGLEFT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGRIGHT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGFRONT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGBACK
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSBASE
+ 2
+
+ 9
+$PUCSNAME
+ 2
+
+ 9
+$PUCSORG
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSXDIR
+ 10
+1.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSYDIR
+ 10
+0.0
+ 20
+1.0
+ 30
+0.0
+ 9
+$PUCSORTHOREF
+ 2
+
+ 9
+$PUCSORTHOVIEW
+ 70
+0
+ 9
+$PUCSORGTOP
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGBOTTOM
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGLEFT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGRIGHT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGFRONT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGBACK
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$USERI1
+ 70
+0
+ 9
+$USERI2
+ 70
+0
+ 9
+$USERI3
+ 70
+0
+ 9
+$USERI4
+ 70
+0
+ 9
+$USERI5
+ 70
+0
+ 9
+$USERR1
+ 40
+0.0
+ 9
+$USERR2
+ 40
+0.0
+ 9
+$USERR3
+ 40
+0.0
+ 9
+$USERR4
+ 40
+0.0
+ 9
+$USERR5
+ 40
+0.0
+ 9
+$WORLDVIEW
+ 70
+1
+ 9
+$SHADEDGE
+ 70
+3
+ 9
+$SHADEDIF
+ 70
+70
+ 9
+$TILEMODE
+ 70
+1
+ 9
+$MAXACTVP
+ 70
+64
+ 9
+$PINSBASE
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PLIMCHECK
+ 70
+0
+ 9
+$PEXTMIN
+ 10
+1e+20
+ 20
+1e+20
+ 30
+1e+20
+ 9
+$PEXTMAX
+ 10
+-1e+20
+ 20
+-1e+20
+ 30
+-1e+20
+ 9
+$PLIMMIN
+ 10
+0.0
+ 20
+0.0
+ 9
+$PLIMMAX
+ 10
+420.0
+ 20
+297.0
+ 9
+$UNITMODE
+ 70
+0
+ 9
+$VISRETAIN
+ 70
+1
+ 9
+$PLINEGEN
+ 70
+0
+ 9
+$PSLTSCALE
+ 70
+1
+ 9
+$TREEDEPTH
+ 70
+3020
+ 9
+$CMLSTYLE
+ 2
+Standard
+ 9
+$CMLJUST
+ 70
+0
+ 9
+$CMLSCALE
+ 40
+20.0
+ 9
+$PROXYGRAPHICS
+ 70
+1
+ 9
+$MEASUREMENT
+ 70
+1
+ 9
+$CELWEIGHT
+370
+-1
+ 9
+$ENDCAPS
+280
+0
+ 9
+$JOINSTYLE
+280
+0
+ 9
+$LWDISPLAY
+290
+0
+ 9
+$INSUNITS
+ 70
+6
+ 9
+$HYPERLINKBASE
+ 1
+
+ 9
+$STYLESHEET
+ 1
+
+ 9
+$XEDIT
+290
+1
+ 9
+$CEPSNTYPE
+380
+0
+ 9
+$PSTYLEMODE
+290
+1
+ 9
+$FINGERPRINTGUID
+ 2
+{B7445AA8-2B75-4440-9CE3-F09159ECE861}
+ 9
+$VERSIONGUID
+ 2
+{B617003B-928B-49A0-972A-1DDCE44D22C2}
+ 9
+$EXTNAMES
+290
+1
+ 9
+$PSVPSCALE
+ 40
+0.0
+ 9
+$OLESTARTUP
+290
+0
+ 9
+$SORTENTS
+280
+127
+ 9
+$INDEXCTL
+280
+0
+ 9
+$HIDETEXT
+280
+1
+ 9
+$XCLIPFRAME
+280
+1
+ 9
+$HALOGAP
+280
+0
+ 9
+$OBSCOLOR
+ 70
+257
+ 9
+$OBSLTYPE
+280
+0
+ 9
+$INTERSECTIONDISPLAY
+280
+0
+ 9
+$INTERSECTIONCOLOR
+ 70
+257
+ 9
+$DIMASSOC
+280
+2
+ 9
+$PROJECTNAME
+ 1
+
+ 9
+$CAMERADISPLAY
+290
+0
+ 9
+$LENSLENGTH
+ 40
+50.0
+ 9
+$CAMERAHEIGHT
+ 40
+0.0
+ 9
+$STEPSPERSEC
+ 40
+24.0
+ 9
+$STEPSIZE
+ 40
+100.0
+ 9
+$3DDWFPREC
+ 40
+2.0
+ 9
+$PSOLWIDTH
+ 40
+0.005
+ 9
+$PSOLHEIGHT
+ 40
+0.08
+ 9
+$LOFTANG1
+ 40
+1.570796326795
+ 9
+$LOFTANG2
+ 40
+1.570796326795
+ 9
+$LOFTMAG1
+ 40
+0.0
+ 9
+$LOFTMAG2
+ 40
+0.0
+ 9
+$LOFTPARAM
+ 70
+7
+ 9
+$LOFTNORMALS
+280
+1
+ 9
+$LATITUDE
+ 40
+37.795
+ 9
+$LONGITUDE
+ 40
+-122.394
+ 9
+$NORTHDIRECTION
+ 40
+0.0
+ 9
+$TIMEZONE
+ 70
+-8000
+ 9
+$LIGHTGLYPHDISPLAY
+280
+1
+ 9
+$TILEMODELIGHTSYNCH
+280
+1
+ 9
+$CMATERIAL
+347
+20
+ 9
+$SOLIDHIST
+280
+0
+ 9
+$SHOWHIST
+280
+1
+ 9
+$DWFFRAME
+280
+2
+ 9
+$DGNFRAME
+280
+2
+ 9
+$REALWORLDSCALE
+290
+1
+ 9
+$INTERFERECOLOR
+ 62
+256
+ 9
+$CSHADOW
+280
+0
+ 9
+$SHADOWPLANELOCATION
+ 40
+0.0
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+CLASSES
+ 0
+CLASS
+ 1
+ACDBDICTIONARYWDFLT
+ 2
+AcDbDictionaryWithDefault
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+SUN
+ 2
+AcDbSun
+ 3
+SCENEOE
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+VISUALSTYLE
+ 2
+AcDbVisualStyle
+ 3
+ObjectDBX Classes
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MATERIAL
+ 2
+AcDbMaterial
+ 3
+ObjectDBX Classes
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+SCALE
+ 2
+AcDbScale
+ 3
+ObjectDBX Classes
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+TABLESTYLE
+ 2
+AcDbTableStyle
+ 3
+ObjectDBX Classes
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MLEADERSTYLE
+ 2
+AcDbMLeaderStyle
+ 3
+ACDB_MLEADERSTYLE_CLASS
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+DICTIONARYVAR
+ 2
+AcDbDictionaryVar
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+CELLSTYLEMAP
+ 2
+AcDbCellStyleMap
+ 3
+ObjectDBX Classes
+ 90
+1152
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MENTALRAYRENDERSETTINGS
+ 2
+AcDbMentalRayRenderSettings
+ 3
+SCENEOE
+ 90
+1024
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBDETAILVIEWSTYLE
+ 2
+AcDbDetailViewStyle
+ 3
+ObjectDBX Classes
+ 90
+1025
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBSECTIONVIEWSTYLE
+ 2
+AcDbSectionViewStyle
+ 3
+ObjectDBX Classes
+ 90
+1025
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+RASTERVARIABLES
+ 2
+AcDbRasterVariables
+ 3
+ISM
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBPLACEHOLDER
+ 2
+AcDbPlaceHolder
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+LAYOUT
+ 2
+AcDbLayout
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+TABLES
+ 0
+TABLE
+ 2
+VPORT
+ 5
+8
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+ 0
+VPORT
+ 5
+23
+330
+8
+100
+AcDbSymbolTableRecord
+100
+AcDbViewportTableRecord
+ 2
+*Active
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 11
+1.0
+ 21
+1.0
+ 12
+0.0
+ 22
+0.0
+ 13
+0.0
+ 23
+0.0
+ 14
+0.5
+ 24
+0.5
+ 15
+0.5
+ 25
+0.5
+ 16
+0.0
+ 26
+0.0
+ 36
+1.0
+ 17
+0.0
+ 27
+0.0
+ 37
+0.0
+ 40
+1000.0
+ 41
+1.34
+ 42
+50.0
+ 43
+0.0
+ 44
+0.0
+ 50
+0.0
+ 51
+0.0
+ 71
+0
+ 72
+1000
+ 73
+1
+ 74
+3
+ 75
+0
+ 76
+0
+ 77
+0
+ 78
+0
+281
+0
+ 65
+0
+146
+0.0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+LTYPE
+ 5
+2
+330
+0
+100
+AcDbSymbolTable
+ 70
+3
+ 0
+LTYPE
+ 5
+24
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+ByBlock
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+LTYPE
+ 5
+25
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+ByLayer
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+LTYPE
+ 5
+26
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+Continuous
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+LAYER
+ 5
+1
+330
+0
+100
+AcDbSymbolTable
+ 70
+2
+ 0
+LAYER
+ 5
+27
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+0
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+-3
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+28
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+Defpoints
+ 70
+0
+ 62
+7
+ 6
+Continuous
+290
+0
+370
+-3
+390
+13
+347
+21
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+STYLE
+ 5
+5
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+ 0
+STYLE
+ 5
+29
+330
+5
+100
+AcDbSymbolTableRecord
+100
+AcDbTextStyleTableRecord
+ 2
+Standard
+ 70
+0
+ 40
+0.0
+ 41
+1.0
+ 50
+0.0
+ 71
+0
+ 42
+2.5
+ 3
+txt
+ 4
+
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+VIEW
+ 5
+7
+330
+0
+100
+AcDbSymbolTable
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+UCS
+ 5
+6
+330
+0
+100
+AcDbSymbolTable
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+APPID
+ 5
+3
+330
+0
+100
+AcDbSymbolTable
+ 70
+3
+ 0
+APPID
+ 5
+2A
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+ACAD
+ 70
+0
+ 0
+APPID
+ 5
+40
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+HATCHBACKGROUNDCOLOR
+ 70
+0
+ 0
+APPID
+ 5
+41
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+EZDXF
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+DIMSTYLE
+ 5
+4
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+100
+AcDbDimStyleTable
+ 0
+DIMSTYLE
+105
+2B
+330
+4
+100
+AcDbSymbolTableRecord
+100
+AcDbDimStyleTableRecord
+ 2
+Standard
+ 70
+0
+ 40
+1.0
+ 41
+2.5
+ 42
+0.625
+ 43
+3.75
+ 44
+1.25
+ 45
+0.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+2.5
+140
+2.5
+141
+2.5
+142
+0.0
+143
+0.03937007874
+144
+1.0
+145
+0.0
+146
+1.0
+147
+0.625
+148
+0.0
+ 69
+0
+ 70
+0
+ 71
+0
+ 72
+0
+ 73
+0
+ 74
+0
+ 75
+0
+ 76
+0
+ 77
+1
+ 78
+8
+ 79
+3
+170
+0
+171
+3
+172
+1
+173
+0
+174
+0
+175
+0
+176
+0
+177
+0
+178
+0
+179
+2
+271
+2
+272
+2
+273
+2
+274
+3
+275
+0
+276
+0
+277
+2
+278
+44
+279
+0
+280
+0
+281
+0
+282
+0
+283
+0
+284
+8
+285
+0
+286
+0
+288
+0
+289
+3
+290
+0
+371
+-2
+372
+-2
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+BLOCK_RECORD
+ 5
+9
+330
+0
+100
+AcDbSymbolTable
+ 70
+2
+ 0
+BLOCK_RECORD
+ 5
+17
+330
+9
+100
+AcDbSymbolTableRecord
+100
+AcDbBlockTableRecord
+ 2
+*Model_Space
+340
+1A
+ 70
+0
+280
+1
+281
+0
+ 0
+BLOCK_RECORD
+ 5
+1B
+330
+9
+100
+AcDbSymbolTableRecord
+100
+AcDbBlockTableRecord
+ 2
+*Paper_Space
+340
+1E
+ 70
+0
+280
+1
+281
+0
+ 0
+ENDTAB
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+BLOCKS
+ 0
+BLOCK
+ 5
+18
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockBegin
+ 2
+*Model_Space
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 3
+*Model_Space
+ 1
+
+ 0
+ENDBLK
+ 5
+19
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockEnd
+ 0
+BLOCK
+ 5
+1C
+330
+1B
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockBegin
+ 2
+*Paper_Space
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 3
+*Paper_Space
+ 1
+
+ 0
+ENDBLK
+ 5
+1D
+330
+1B
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockEnd
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+ENTITIES
+ 0
+LWPOLYLINE
+ 5
+2F
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbPolyline
+ 90
+5
+ 70
+1
+ 10
+0.0
+ 20
+0.0
+ 10
+115.0
+ 20
+0.0
+ 10
+115.0
+ 20
+160.0
+ 10
+0.0
+ 20
+160.0
+ 10
+0.0
+ 20
+0.0
+ 0
+CIRCLE
+ 5
+30
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbCircle
+ 10
+25.0
+ 20
+30.0
+ 30
+0.0
+ 40
+5.0
+ 0
+CIRCLE
+ 5
+31
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbCircle
+ 10
+75.0
+ 20
+30.0
+ 30
+0.0
+ 40
+5.0
+ 0
+CIRCLE
+ 5
+32
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbCircle
+ 10
+25.0
+ 20
+80.0
+ 30
+0.0
+ 40
+5.0
+ 0
+CIRCLE
+ 5
+33
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbCircle
+ 10
+75.0
+ 20
+80.0
+ 30
+0.0
+ 40
+5.0
+ 0
+CIRCLE
+ 5
+34
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbCircle
+ 10
+25.0
+ 20
+130.0
+ 30
+0.0
+ 40
+5.0
+ 0
+CIRCLE
+ 5
+35
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbCircle
+ 10
+75.0
+ 20
+130.0
+ 30
+0.0
+ 40
+5.0
+ 0
+DIMENSION
+ 5
+36
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbDimension
+280
+0
+ 3
+STANDARD
+ 10
+135.0
+ 20
+55.0
+ 30
+0.0
+ 70
+32
+ 71
+5
+ 1
+<>
+100
+AcDbAlignedDimension
+ 13
+125.0
+ 23
+80.0
+ 33
+0.0
+ 14
+125.0
+ 24
+30.0
+ 34
+0.0
+ 50
+90.0
+100
+AcDbRotatedDimension
+ 0
+TEXT
+ 5
+37
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbText
+ 10
+140.0
+ 20
+55.0
+ 30
+0.0
+ 40
+2.5
+ 1
+pitch
+100
+AcDbText
+ 0
+DIMENSION
+ 5
+38
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbDimension
+280
+0
+ 3
+STANDARD
+ 10
+135.0
+ 20
+15.0
+ 30
+0.0
+ 70
+32
+ 71
+5
+ 1
+<>
+100
+AcDbAlignedDimension
+ 13
+125.0
+ 23
+0.0
+ 33
+0.0
+ 14
+125.0
+ 24
+30.0
+ 34
+0.0
+ 50
+90.0
+100
+AcDbRotatedDimension
+ 0
+TEXT
+ 5
+39
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbText
+ 10
+140.0
+ 20
+15.0
+ 30
+0.0
+ 40
+2.5
+ 1
+end dist.
+100
+AcDbText
+ 0
+DIMENSION
+ 5
+3A
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbDimension
+280
+0
+ 3
+STANDARD
+ 10
+12.5
+ 20
+-20.0
+ 30
+0.0
+ 70
+32
+ 71
+5
+ 1
+<>
+100
+AcDbAlignedDimension
+ 13
+0.0
+ 23
+-10.0
+ 33
+0.0
+ 14
+25.0
+ 24
+-10.0
+ 34
+0.0
+ 50
+0.0
+100
+AcDbRotatedDimension
+ 0
+TEXT
+ 5
+3B
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbText
+ 10
+12.5
+ 20
+-25.0
+ 30
+0.0
+ 40
+2.5
+ 1
+gauge₁
+100
+AcDbText
+ 0
+DIMENSION
+ 5
+3C
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbDimension
+280
+0
+ 3
+STANDARD
+ 10
+50.0
+ 20
+-20.0
+ 30
+0.0
+ 70
+32
+ 71
+5
+ 1
+<>
+100
+AcDbAlignedDimension
+ 13
+25.0
+ 23
+-10.0
+ 33
+0.0
+ 14
+75.0
+ 24
+-10.0
+ 34
+0.0
+ 50
+0.0
+100
+AcDbRotatedDimension
+ 0
+TEXT
+ 5
+3D
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbText
+ 10
+50.0
+ 20
+-25.0
+ 30
+0.0
+ 40
+2.5
+ 1
+gauge₂
+100
+AcDbText
+ 0
+DIMENSION
+ 5
+3E
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbDimension
+280
+0
+ 3
+STANDARD
+ 10
+95.0
+ 20
+-20.0
+ 30
+0.0
+ 70
+32
+ 71
+5
+ 1
+<>
+100
+AcDbAlignedDimension
+ 13
+75.0
+ 23
+-10.0
+ 33
+0.0
+ 14
+115.0
+ 24
+-10.0
+ 34
+0.0
+ 50
+0.0
+100
+AcDbRotatedDimension
+ 0
+TEXT
+ 5
+3F
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbText
+ 10
+95.0
+ 20
+-25.0
+ 30
+0.0
+ 40
+2.5
+ 1
+edge dist.
+100
+AcDbText
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+OBJECTS
+ 0
+DICTIONARY
+ 5
+A
+330
+0
+100
+AcDbDictionary
+280
+0
+281
+1
+ 3
+ACAD_COLOR
+350
+B
+ 3
+ACAD_GROUP
+350
+C
+ 3
+ACAD_LAYOUT
+350
+D
+ 3
+ACAD_MATERIAL
+350
+E
+ 3
+ACAD_MLEADERSTYLE
+350
+F
+ 3
+ACAD_MLINESTYLE
+350
+10
+ 3
+ACAD_PLOTSETTINGS
+350
+11
+ 3
+ACAD_PLOTSTYLENAME
+350
+12
+ 3
+ACAD_SCALELIST
+350
+14
+ 3
+ACAD_TABLESTYLE
+350
+15
+ 3
+ACAD_VISUALSTYLE
+350
+16
+ 3
+EZDXF_META
+350
+2D
+ 0
+DICTIONARY
+ 5
+B
+330
+A
+100
+AcDbDictionary
+280
+0
+281
+1
+ 0
+DICTIONARY
+ 5
+C
+330
+A
+100
+AcDbDictionary
+280
+0
+281
+1
+ 0
+DICTIONARY
+ 5
+D
+330
+A
+100
+AcDbDictionary
+280
+0
+281
+1
+ 3
+Model
+350
+1A
+ 3
+Layout1
+350
+1E
+ 0
+DICTIONARY
+ 5
+E
+330
+A
+100
+AcDbDictionary
+280
+0
+281
+1
+ 3
+ByBlock
+350
+1F
+ 3
+ByLayer
+350
+20
+ 3
+Global
+350
+21
+ 0
+DICTIONARY
+ 5
+F
+330
+A
+100
+AcDbDictionary
+280
+0
+281
+1
+ 3
+Standard
+350
+2C
+ 0
+DICTIONARY
+ 5
+10
+330
+A
+100
+AcDbDictionary
+280
+0
+281
+1
+ 3
+Standard
+350
+22
+ 0
+DICTIONARY
+ 5
+11
+330
+A
+100
+AcDbDictionary
+280
+0
+281
+1
+ 0
+ACDBDICTIONARYWDFLT
+ 5
+12
+330
+A
+100
+AcDbDictionary
+280
+0
+281
+1
+ 3
+Normal
+350
+13
+100
+AcDbDictionaryWithDefault
+340
+13
+ 0
+ACDBPLACEHOLDER
+ 5
+13
+330
+12
+ 0
+DICTIONARY
+ 5
+14
+330
+A
+100
+AcDbDictionary
+280
+0
+281
+1
+ 0
+DICTIONARY
+ 5
+15
+330
+A
+100
+AcDbDictionary
+280
+0
+281
+1
+ 0
+DICTIONARY
+ 5
+16
+330
+A
+100
+AcDbDictionary
+280
+0
+281
+1
+ 0
+LAYOUT
+ 5
+1A
+330
+D
+100
+AcDbPlotSettings
+ 1
+
+ 4
+A3
+ 6
+
+ 40
+7.5
+ 41
+20.0
+ 42
+7.5
+ 43
+20.0
+ 44
+420.0
+ 45
+297.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+0.0
+140
+0.0
+141
+0.0
+142
+1.0
+143
+1.0
+ 70
+1024
+ 72
+1
+ 73
+0
+ 74
+5
+ 7
+
+ 75
+16
+ 76
+0
+ 77
+2
+ 78
+300
+147
+1.0
+148
+0.0
+149
+0.0
+100
+AcDbLayout
+ 1
+Model
+ 70
+1
+ 71
+0
+ 10
+0.0
+ 20
+0.0
+ 11
+420.0
+ 21
+297.0
+ 12
+0.0
+ 22
+0.0
+ 32
+0.0
+ 14
+1e+20
+ 24
+1e+20
+ 34
+1e+20
+ 15
+-1e+20
+ 25
+-1e+20
+ 35
+-1e+20
+146
+0.0
+ 13
+0.0
+ 23
+0.0
+ 33
+0.0
+ 16
+1.0
+ 26
+0.0
+ 36
+0.0
+ 17
+0.0
+ 27
+1.0
+ 37
+0.0
+ 76
+1
+330
+17
+ 0
+LAYOUT
+ 5
+1E
+330
+D
+100
+AcDbPlotSettings
+ 1
+
+ 4
+A3
+ 6
+
+ 40
+7.5
+ 41
+20.0
+ 42
+7.5
+ 43
+20.0
+ 44
+420.0
+ 45
+297.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+0.0
+140
+0.0
+141
+0.0
+142
+1.0
+143
+1.0
+ 70
+0
+ 72
+1
+ 73
+0
+ 74
+5
+ 7
+
+ 75
+16
+ 76
+0
+ 77
+2
+ 78
+300
+147
+1.0
+148
+0.0
+149
+0.0
+100
+AcDbLayout
+ 1
+Layout1
+ 70
+1
+ 71
+1
+ 10
+0.0
+ 20
+0.0
+ 11
+420.0
+ 21
+297.0
+ 12
+0.0
+ 22
+0.0
+ 32
+0.0
+ 14
+1e+20
+ 24
+1e+20
+ 34
+1e+20
+ 15
+-1e+20
+ 25
+-1e+20
+ 35
+-1e+20
+146
+0.0
+ 13
+0.0
+ 23
+0.0
+ 33
+0.0
+ 16
+1.0
+ 26
+0.0
+ 36
+0.0
+ 17
+0.0
+ 27
+1.0
+ 37
+0.0
+ 76
+1
+330
+1B
+ 0
+MATERIAL
+ 5
+1F
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+ByBlock
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MATERIAL
+ 5
+20
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+ByLayer
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MATERIAL
+ 5
+21
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+Global
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MLINESTYLE
+ 5
+22
+102
+{ACAD_REACTORS
+330
+10
+102
+}
+330
+10
+100
+AcDbMlineStyle
+ 2
+Standard
+ 70
+0
+ 3
+
+ 62
+256
+ 51
+90.0
+ 52
+90.0
+ 71
+2
+ 49
+0.5
+ 62
+256
+ 6
+BYLAYER
+ 49
+-0.5
+ 62
+256
+ 6
+BYLAYER
+ 0
+MLEADERSTYLE
+ 5
+2C
+102
+{ACAD_REACTORS
+330
+F
+102
+}
+330
+F
+100
+AcDbMLeaderStyle
+179
+2
+170
+2
+171
+1
+172
+0
+ 90
+2
+ 40
+0.0
+ 41
+0.0
+173
+1
+ 91
+-1056964608
+ 92
+-2
+290
+1
+ 42
+2.0
+291
+1
+ 43
+8.0
+ 3
+Standard
+ 44
+4.0
+300
+
+342
+29
+174
+1
+175
+1
+176
+0
+178
+1
+ 93
+-1056964608
+ 45
+4.0
+292
+0
+297
+0
+ 46
+4.0
+ 94
+-1056964608
+ 47
+1.0
+ 49
+1.0
+140
+1.0
+294
+1
+141
+0.0
+177
+0
+142
+1.0
+295
+0
+296
+0
+143
+3.75
+271
+0
+272
+9
+273
+9
+ 0
+DICTIONARY
+ 5
+2D
+330
+A
+100
+AcDbDictionary
+280
+1
+281
+1
+ 3
+CREATED_BY_EZDXF
+350
+2E
+ 3
+WRITTEN_BY_EZDXF
+350
+42
+ 0
+DICTIONARYVAR
+ 5
+2E
+330
+2D
+100
+DictionaryVariables
+280
+0
+ 1
+1.4.0 @ 2025-03-19T20:16:41.354920+00:00
+ 0
+DICTIONARYVAR
+ 5
+42
+330
+2D
+100
+DictionaryVariables
+280
+0
+ 1
+1.4.0 @ 2025-03-19T20:16:51.936662+00:00
+ 0
+ENDSEC
+ 0
+EOF
diff --git a/src/drawing2.dxf b/src/drawing2.dxf
new file mode 100644
index 000000000..f41c30ef2
--- /dev/null
+++ b/src/drawing2.dxf
@@ -0,0 +1,3574 @@
+ 0
+SECTION
+ 2
+HEADER
+ 9
+$ACADVER
+ 1
+AC1024
+ 9
+$ACADMAINTVER
+ 70
+6
+ 9
+$DWGCODEPAGE
+ 3
+ANSI_1252
+ 9
+$LASTSAVEDBY
+ 1
+ezdxf
+ 9
+$INSBASE
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$EXTMIN
+ 10
+1e+20
+ 20
+1e+20
+ 30
+1e+20
+ 9
+$EXTMAX
+ 10
+-1e+20
+ 20
+-1e+20
+ 30
+-1e+20
+ 9
+$LIMMIN
+ 10
+0.0
+ 20
+0.0
+ 9
+$LIMMAX
+ 10
+420.0
+ 20
+297.0
+ 9
+$ORTHOMODE
+ 70
+0
+ 9
+$REGENMODE
+ 70
+1
+ 9
+$FILLMODE
+ 70
+1
+ 9
+$QTEXTMODE
+ 70
+0
+ 9
+$MIRRTEXT
+ 70
+1
+ 9
+$LTSCALE
+ 40
+1.0
+ 9
+$ATTMODE
+ 70
+1
+ 9
+$TEXTSIZE
+ 40
+2.5
+ 9
+$TRACEWID
+ 40
+1.0
+ 9
+$TEXTSTYLE
+ 7
+Standard
+ 9
+$CLAYER
+ 8
+0
+ 9
+$CELTYPE
+ 6
+ByLayer
+ 9
+$CECOLOR
+ 62
+256
+ 9
+$CELTSCALE
+ 40
+1.0
+ 9
+$DISPSILH
+ 70
+0
+ 9
+$DIMSCALE
+ 40
+1.0
+ 9
+$DIMASZ
+ 40
+2.5
+ 9
+$DIMEXO
+ 40
+0.625
+ 9
+$DIMDLI
+ 40
+3.75
+ 9
+$DIMRND
+ 40
+0.0
+ 9
+$DIMDLE
+ 40
+0.0
+ 9
+$DIMEXE
+ 40
+1.25
+ 9
+$DIMTP
+ 40
+0.0
+ 9
+$DIMTM
+ 40
+0.0
+ 9
+$DIMTXT
+ 40
+2.5
+ 9
+$DIMCEN
+ 40
+2.5
+ 9
+$DIMTSZ
+ 40
+0.0
+ 9
+$DIMTOL
+ 70
+0
+ 9
+$DIMLIM
+ 70
+0
+ 9
+$DIMTIH
+ 70
+0
+ 9
+$DIMTOH
+ 70
+0
+ 9
+$DIMSE1
+ 70
+0
+ 9
+$DIMSE2
+ 70
+0
+ 9
+$DIMTAD
+ 70
+1
+ 9
+$DIMZIN
+ 70
+8
+ 9
+$DIMBLK
+ 1
+
+ 9
+$DIMASO
+ 70
+1
+ 9
+$DIMSHO
+ 70
+1
+ 9
+$DIMPOST
+ 1
+
+ 9
+$DIMAPOST
+ 1
+
+ 9
+$DIMALT
+ 70
+0
+ 9
+$DIMALTD
+ 70
+3
+ 9
+$DIMALTF
+ 40
+0.03937007874
+ 9
+$DIMLFAC
+ 40
+1.0
+ 9
+$DIMTOFL
+ 70
+1
+ 9
+$DIMTVP
+ 40
+0.0
+ 9
+$DIMTIX
+ 70
+0
+ 9
+$DIMSOXD
+ 70
+0
+ 9
+$DIMSAH
+ 70
+0
+ 9
+$DIMBLK1
+ 1
+
+ 9
+$DIMBLK2
+ 1
+
+ 9
+$DIMSTYLE
+ 2
+ISO-25
+ 9
+$DIMCLRD
+ 70
+0
+ 9
+$DIMCLRE
+ 70
+0
+ 9
+$DIMCLRT
+ 70
+0
+ 9
+$DIMTFAC
+ 40
+1.0
+ 9
+$DIMGAP
+ 40
+0.625
+ 9
+$DIMJUST
+ 70
+0
+ 9
+$DIMSD1
+ 70
+0
+ 9
+$DIMSD2
+ 70
+0
+ 9
+$DIMTOLJ
+ 70
+0
+ 9
+$DIMTZIN
+ 70
+8
+ 9
+$DIMALTZ
+ 70
+0
+ 9
+$DIMALTTZ
+ 70
+0
+ 9
+$DIMUPT
+ 70
+0
+ 9
+$DIMDEC
+ 70
+2
+ 9
+$DIMTDEC
+ 70
+2
+ 9
+$DIMALTU
+ 70
+2
+ 9
+$DIMALTTD
+ 70
+3
+ 9
+$DIMTXSTY
+ 7
+Standard
+ 9
+$DIMAUNIT
+ 70
+0
+ 9
+$DIMADEC
+ 70
+0
+ 9
+$DIMALTRND
+ 40
+0.0
+ 9
+$DIMAZIN
+ 70
+0
+ 9
+$DIMDSEP
+ 70
+44
+ 9
+$DIMATFIT
+ 70
+3
+ 9
+$DIMFRAC
+ 70
+0
+ 9
+$DIMLDRBLK
+ 1
+
+ 9
+$DIMLUNIT
+ 70
+2
+ 9
+$DIMLWD
+ 70
+-2
+ 9
+$DIMLWE
+ 70
+-2
+ 9
+$DIMTMOVE
+ 70
+0
+ 9
+$DIMFXL
+ 40
+1.0
+ 9
+$DIMFXLON
+ 70
+0
+ 9
+$DIMJOGANG
+ 40
+0.785398163397
+ 9
+$DIMTFILL
+ 70
+0
+ 9
+$DIMTFILLCLR
+ 70
+0
+ 9
+$DIMARCSYM
+ 70
+0
+ 9
+$DIMLTYPE
+ 6
+
+ 9
+$DIMLTEX1
+ 6
+
+ 9
+$DIMLTEX2
+ 6
+
+ 9
+$DIMTXTDIRECTION
+ 70
+0
+ 9
+$LUNITS
+ 70
+2
+ 9
+$LUPREC
+ 70
+4
+ 9
+$SKETCHINC
+ 40
+1.0
+ 9
+$FILLETRAD
+ 40
+10.0
+ 9
+$AUNITS
+ 70
+0
+ 9
+$AUPREC
+ 70
+2
+ 9
+$MENU
+ 1
+.
+ 9
+$ELEVATION
+ 40
+0.0
+ 9
+$PELEVATION
+ 40
+0.0
+ 9
+$THICKNESS
+ 40
+0.0
+ 9
+$LIMCHECK
+ 70
+0
+ 9
+$CHAMFERA
+ 40
+0.0
+ 9
+$CHAMFERB
+ 40
+0.0
+ 9
+$CHAMFERC
+ 40
+0.0
+ 9
+$CHAMFERD
+ 40
+0.0
+ 9
+$SKPOLY
+ 70
+0
+ 9
+$TDCREATE
+ 40
+2460755.077013889
+ 9
+$TDUCREATE
+ 40
+2458532.153996898
+ 9
+$TDUPDATE
+ 40
+2460755.0771064814
+ 9
+$TDUUPDATE
+ 40
+2458532.1544311
+ 9
+$TDINDWG
+ 40
+0.0
+ 9
+$TDUSRTIMER
+ 40
+0.0
+ 9
+$USRTIMER
+ 70
+1
+ 9
+$ANGBASE
+ 50
+0.0
+ 9
+$ANGDIR
+ 70
+0
+ 9
+$PDMODE
+ 70
+0
+ 9
+$PDSIZE
+ 40
+0.0
+ 9
+$PLINEWID
+ 40
+0.0
+ 9
+$SPLFRAME
+ 70
+0
+ 9
+$SPLINETYPE
+ 70
+6
+ 9
+$SPLINESEGS
+ 70
+8
+ 9
+$HANDSEED
+ 5
+43
+ 9
+$SURFTAB1
+ 70
+6
+ 9
+$SURFTAB2
+ 70
+6
+ 9
+$SURFTYPE
+ 70
+6
+ 9
+$SURFU
+ 70
+6
+ 9
+$SURFV
+ 70
+6
+ 9
+$UCSBASE
+ 2
+
+ 9
+$UCSNAME
+ 2
+
+ 9
+$UCSORG
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSXDIR
+ 10
+1.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSYDIR
+ 10
+0.0
+ 20
+1.0
+ 30
+0.0
+ 9
+$UCSORTHOREF
+ 2
+
+ 9
+$UCSORTHOVIEW
+ 70
+0
+ 9
+$UCSORGTOP
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGBOTTOM
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGLEFT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGRIGHT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGFRONT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGBACK
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSBASE
+ 2
+
+ 9
+$PUCSNAME
+ 2
+
+ 9
+$PUCSORG
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSXDIR
+ 10
+1.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSYDIR
+ 10
+0.0
+ 20
+1.0
+ 30
+0.0
+ 9
+$PUCSORTHOREF
+ 2
+
+ 9
+$PUCSORTHOVIEW
+ 70
+0
+ 9
+$PUCSORGTOP
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGBOTTOM
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGLEFT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGRIGHT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGFRONT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGBACK
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$USERI1
+ 70
+0
+ 9
+$USERI2
+ 70
+0
+ 9
+$USERI3
+ 70
+0
+ 9
+$USERI4
+ 70
+0
+ 9
+$USERI5
+ 70
+0
+ 9
+$USERR1
+ 40
+0.0
+ 9
+$USERR2
+ 40
+0.0
+ 9
+$USERR3
+ 40
+0.0
+ 9
+$USERR4
+ 40
+0.0
+ 9
+$USERR5
+ 40
+0.0
+ 9
+$WORLDVIEW
+ 70
+1
+ 9
+$SHADEDGE
+ 70
+3
+ 9
+$SHADEDIF
+ 70
+70
+ 9
+$TILEMODE
+ 70
+1
+ 9
+$MAXACTVP
+ 70
+64
+ 9
+$PINSBASE
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PLIMCHECK
+ 70
+0
+ 9
+$PEXTMIN
+ 10
+1e+20
+ 20
+1e+20
+ 30
+1e+20
+ 9
+$PEXTMAX
+ 10
+-1e+20
+ 20
+-1e+20
+ 30
+-1e+20
+ 9
+$PLIMMIN
+ 10
+0.0
+ 20
+0.0
+ 9
+$PLIMMAX
+ 10
+420.0
+ 20
+297.0
+ 9
+$UNITMODE
+ 70
+0
+ 9
+$VISRETAIN
+ 70
+1
+ 9
+$PLINEGEN
+ 70
+0
+ 9
+$PSLTSCALE
+ 70
+1
+ 9
+$TREEDEPTH
+ 70
+3020
+ 9
+$CMLSTYLE
+ 2
+Standard
+ 9
+$CMLJUST
+ 70
+0
+ 9
+$CMLSCALE
+ 40
+20.0
+ 9
+$PROXYGRAPHICS
+ 70
+1
+ 9
+$MEASUREMENT
+ 70
+1
+ 9
+$CELWEIGHT
+370
+-1
+ 9
+$ENDCAPS
+280
+0
+ 9
+$JOINSTYLE
+280
+0
+ 9
+$LWDISPLAY
+290
+0
+ 9
+$INSUNITS
+ 70
+6
+ 9
+$HYPERLINKBASE
+ 1
+
+ 9
+$STYLESHEET
+ 1
+
+ 9
+$XEDIT
+290
+1
+ 9
+$CEPSNTYPE
+380
+0
+ 9
+$PSTYLEMODE
+290
+1
+ 9
+$FINGERPRINTGUID
+ 2
+{C9F198A6-4C92-4D3F-B8D9-FDB4E49243ED}
+ 9
+$VERSIONGUID
+ 2
+{81B85EB0-6DA2-401D-B4F0-EAEC6C295A14}
+ 9
+$EXTNAMES
+290
+1
+ 9
+$PSVPSCALE
+ 40
+0.0
+ 9
+$OLESTARTUP
+290
+0
+ 9
+$SORTENTS
+280
+127
+ 9
+$INDEXCTL
+280
+0
+ 9
+$HIDETEXT
+280
+1
+ 9
+$XCLIPFRAME
+280
+1
+ 9
+$HALOGAP
+280
+0
+ 9
+$OBSCOLOR
+ 70
+257
+ 9
+$OBSLTYPE
+280
+0
+ 9
+$INTERSECTIONDISPLAY
+280
+0
+ 9
+$INTERSECTIONCOLOR
+ 70
+257
+ 9
+$DIMASSOC
+280
+2
+ 9
+$PROJECTNAME
+ 1
+
+ 9
+$CAMERADISPLAY
+290
+0
+ 9
+$LENSLENGTH
+ 40
+50.0
+ 9
+$CAMERAHEIGHT
+ 40
+0.0
+ 9
+$STEPSPERSEC
+ 40
+24.0
+ 9
+$STEPSIZE
+ 40
+100.0
+ 9
+$3DDWFPREC
+ 40
+2.0
+ 9
+$PSOLWIDTH
+ 40
+0.005
+ 9
+$PSOLHEIGHT
+ 40
+0.08
+ 9
+$LOFTANG1
+ 40
+1.570796326795
+ 9
+$LOFTANG2
+ 40
+1.570796326795
+ 9
+$LOFTMAG1
+ 40
+0.0
+ 9
+$LOFTMAG2
+ 40
+0.0
+ 9
+$LOFTPARAM
+ 70
+7
+ 9
+$LOFTNORMALS
+280
+1
+ 9
+$LATITUDE
+ 40
+37.795
+ 9
+$LONGITUDE
+ 40
+-122.394
+ 9
+$NORTHDIRECTION
+ 40
+0.0
+ 9
+$TIMEZONE
+ 70
+-8000
+ 9
+$LIGHTGLYPHDISPLAY
+280
+1
+ 9
+$TILEMODELIGHTSYNCH
+280
+1
+ 9
+$CMATERIAL
+347
+20
+ 9
+$SOLIDHIST
+280
+0
+ 9
+$SHOWHIST
+280
+1
+ 9
+$DWFFRAME
+280
+2
+ 9
+$DGNFRAME
+280
+2
+ 9
+$REALWORLDSCALE
+290
+1
+ 9
+$INTERFERECOLOR
+ 62
+256
+ 9
+$CSHADOW
+280
+0
+ 9
+$SHADOWPLANELOCATION
+ 40
+0.0
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+CLASSES
+ 0
+CLASS
+ 1
+ACDBDICTIONARYWDFLT
+ 2
+AcDbDictionaryWithDefault
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+SUN
+ 2
+AcDbSun
+ 3
+SCENEOE
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+VISUALSTYLE
+ 2
+AcDbVisualStyle
+ 3
+ObjectDBX Classes
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MATERIAL
+ 2
+AcDbMaterial
+ 3
+ObjectDBX Classes
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+SCALE
+ 2
+AcDbScale
+ 3
+ObjectDBX Classes
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+TABLESTYLE
+ 2
+AcDbTableStyle
+ 3
+ObjectDBX Classes
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MLEADERSTYLE
+ 2
+AcDbMLeaderStyle
+ 3
+ACDB_MLEADERSTYLE_CLASS
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+DICTIONARYVAR
+ 2
+AcDbDictionaryVar
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+CELLSTYLEMAP
+ 2
+AcDbCellStyleMap
+ 3
+ObjectDBX Classes
+ 90
+1152
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MENTALRAYRENDERSETTINGS
+ 2
+AcDbMentalRayRenderSettings
+ 3
+SCENEOE
+ 90
+1024
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBDETAILVIEWSTYLE
+ 2
+AcDbDetailViewStyle
+ 3
+ObjectDBX Classes
+ 90
+1025
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBSECTIONVIEWSTYLE
+ 2
+AcDbSectionViewStyle
+ 3
+ObjectDBX Classes
+ 90
+1025
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+RASTERVARIABLES
+ 2
+AcDbRasterVariables
+ 3
+ISM
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+LAYOUT
+ 2
+AcDbLayout
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBPLACEHOLDER
+ 2
+AcDbPlaceHolder
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+TABLES
+ 0
+TABLE
+ 2
+VPORT
+ 5
+8
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+ 0
+VPORT
+ 5
+23
+330
+8
+100
+AcDbSymbolTableRecord
+100
+AcDbViewportTableRecord
+ 2
+*Active
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 11
+1.0
+ 21
+1.0
+ 12
+0.0
+ 22
+0.0
+ 13
+0.0
+ 23
+0.0
+ 14
+0.5
+ 24
+0.5
+ 15
+0.5
+ 25
+0.5
+ 16
+0.0
+ 26
+0.0
+ 36
+1.0
+ 17
+0.0
+ 27
+0.0
+ 37
+0.0
+ 40
+1000.0
+ 41
+1.34
+ 42
+50.0
+ 43
+0.0
+ 44
+0.0
+ 50
+0.0
+ 51
+0.0
+ 71
+0
+ 72
+1000
+ 73
+1
+ 74
+3
+ 75
+0
+ 76
+0
+ 77
+0
+ 78
+0
+281
+0
+ 65
+0
+146
+0.0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+LTYPE
+ 5
+2
+330
+0
+100
+AcDbSymbolTable
+ 70
+3
+ 0
+LTYPE
+ 5
+24
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+ByBlock
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+LTYPE
+ 5
+25
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+ByLayer
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+LTYPE
+ 5
+26
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+Continuous
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+LAYER
+ 5
+1
+330
+0
+100
+AcDbSymbolTable
+ 70
+2
+ 0
+LAYER
+ 5
+27
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+0
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+-3
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+28
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+Defpoints
+ 70
+0
+ 62
+7
+ 6
+Continuous
+290
+0
+370
+-3
+390
+13
+347
+21
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+STYLE
+ 5
+5
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+ 0
+STYLE
+ 5
+29
+330
+5
+100
+AcDbSymbolTableRecord
+100
+AcDbTextStyleTableRecord
+ 2
+Standard
+ 70
+0
+ 40
+0.0
+ 41
+1.0
+ 50
+0.0
+ 71
+0
+ 42
+2.5
+ 3
+txt
+ 4
+
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+VIEW
+ 5
+7
+330
+0
+100
+AcDbSymbolTable
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+UCS
+ 5
+6
+330
+0
+100
+AcDbSymbolTable
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+APPID
+ 5
+3
+330
+0
+100
+AcDbSymbolTable
+ 70
+3
+ 0
+APPID
+ 5
+2A
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+ACAD
+ 70
+0
+ 0
+APPID
+ 5
+40
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+HATCHBACKGROUNDCOLOR
+ 70
+0
+ 0
+APPID
+ 5
+41
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+EZDXF
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+DIMSTYLE
+ 5
+4
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+100
+AcDbDimStyleTable
+ 0
+DIMSTYLE
+105
+2B
+330
+4
+100
+AcDbSymbolTableRecord
+100
+AcDbDimStyleTableRecord
+ 2
+Standard
+ 70
+0
+ 40
+1.0
+ 41
+2.5
+ 42
+0.625
+ 43
+3.75
+ 44
+1.25
+ 45
+0.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+2.5
+140
+2.5
+141
+2.5
+142
+0.0
+143
+0.03937007874
+144
+1.0
+145
+0.0
+146
+1.0
+147
+0.625
+148
+0.0
+ 69
+0
+ 70
+0
+ 71
+0
+ 72
+0
+ 73
+0
+ 74
+0
+ 75
+0
+ 76
+0
+ 77
+1
+ 78
+8
+ 79
+3
+170
+0
+171
+3
+172
+1
+173
+0
+174
+0
+175
+0
+176
+0
+177
+0
+178
+0
+179
+2
+271
+2
+272
+2
+273
+2
+274
+3
+275
+0
+276
+0
+277
+2
+278
+44
+279
+0
+280
+0
+281
+0
+282
+0
+283
+0
+284
+8
+285
+0
+286
+0
+288
+0
+289
+3
+290
+0
+371
+-2
+372
+-2
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+BLOCK_RECORD
+ 5
+9
+330
+0
+100
+AcDbSymbolTable
+ 70
+2
+ 0
+BLOCK_RECORD
+ 5
+17
+330
+9
+100
+AcDbSymbolTableRecord
+100
+AcDbBlockTableRecord
+ 2
+*Model_Space
+340
+1A
+ 70
+0
+280
+1
+281
+0
+ 0
+BLOCK_RECORD
+ 5
+1B
+330
+9
+100
+AcDbSymbolTableRecord
+100
+AcDbBlockTableRecord
+ 2
+*Paper_Space
+340
+1E
+ 70
+0
+280
+1
+281
+0
+ 0
+ENDTAB
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+BLOCKS
+ 0
+BLOCK
+ 5
+18
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockBegin
+ 2
+*Model_Space
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 3
+*Model_Space
+ 1
+
+ 0
+ENDBLK
+ 5
+19
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockEnd
+ 0
+BLOCK
+ 5
+1C
+330
+1B
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockBegin
+ 2
+*Paper_Space
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 3
+*Paper_Space
+ 1
+
+ 0
+ENDBLK
+ 5
+1D
+330
+1B
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockEnd
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+ENTITIES
+ 0
+LWPOLYLINE
+ 5
+2F
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbPolyline
+ 90
+5
+ 70
+1
+ 10
+0.0
+ 20
+0.0
+ 10
+90.0
+ 20
+0.0
+ 10
+90.0
+ 20
+100.0
+ 10
+0.0
+ 20
+100.0
+ 10
+0.0
+ 20
+0.0
+ 0
+CIRCLE
+ 5
+30
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbCircle
+ 10
+40.0
+ 20
+20.0
+ 30
+0.0
+ 40
+10.0
+ 0
+CIRCLE
+ 5
+31
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbCircle
+ 10
+65.0
+ 20
+20.0
+ 30
+0.0
+ 40
+10.0
+ 0
+CIRCLE
+ 5
+32
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbCircle
+ 10
+40.0
+ 20
+50.0
+ 30
+0.0
+ 40
+10.0
+ 0
+CIRCLE
+ 5
+33
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbCircle
+ 10
+65.0
+ 20
+50.0
+ 30
+0.0
+ 40
+10.0
+ 0
+CIRCLE
+ 5
+34
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbCircle
+ 10
+40.0
+ 20
+80.0
+ 30
+0.0
+ 40
+10.0
+ 0
+CIRCLE
+ 5
+35
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbCircle
+ 10
+65.0
+ 20
+80.0
+ 30
+0.0
+ 40
+10.0
+ 0
+DIMENSION
+ 5
+36
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbDimension
+280
+0
+ 3
+STANDARD
+ 10
+110.0
+ 20
+35.0
+ 30
+0.0
+ 70
+32
+ 71
+5
+ 1
+<>
+100
+AcDbAlignedDimension
+ 13
+100.0
+ 23
+50.0
+ 33
+0.0
+ 14
+100.0
+ 24
+20.0
+ 34
+0.0
+ 50
+90.0
+100
+AcDbRotatedDimension
+ 0
+TEXT
+ 5
+37
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbText
+ 10
+115.0
+ 20
+35.0
+ 30
+0.0
+ 40
+2.5
+ 1
+pitch
+100
+AcDbText
+ 0
+DIMENSION
+ 5
+38
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbDimension
+280
+0
+ 3
+STANDARD
+ 10
+110.0
+ 20
+10.0
+ 30
+0.0
+ 70
+32
+ 71
+5
+ 1
+<>
+100
+AcDbAlignedDimension
+ 13
+100.0
+ 23
+0.0
+ 33
+0.0
+ 14
+100.0
+ 24
+20.0
+ 34
+0.0
+ 50
+90.0
+100
+AcDbRotatedDimension
+ 0
+TEXT
+ 5
+39
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbText
+ 10
+115.0
+ 20
+10.0
+ 30
+0.0
+ 40
+2.5
+ 1
+end dist.
+100
+AcDbText
+ 0
+DIMENSION
+ 5
+3A
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbDimension
+280
+0
+ 3
+STANDARD
+ 10
+20.0
+ 20
+-20.0
+ 30
+0.0
+ 70
+32
+ 71
+5
+ 1
+<>
+100
+AcDbAlignedDimension
+ 13
+0.0
+ 23
+-10.0
+ 33
+0.0
+ 14
+40.0
+ 24
+-10.0
+ 34
+0.0
+ 50
+0.0
+100
+AcDbRotatedDimension
+ 0
+TEXT
+ 5
+3B
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbText
+ 10
+20.0
+ 20
+-25.0
+ 30
+0.0
+ 40
+2.5
+ 1
+gauge₁
+100
+AcDbText
+ 0
+DIMENSION
+ 5
+3C
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbDimension
+280
+0
+ 3
+STANDARD
+ 10
+52.5
+ 20
+-20.0
+ 30
+0.0
+ 70
+32
+ 71
+5
+ 1
+<>
+100
+AcDbAlignedDimension
+ 13
+40.0
+ 23
+-10.0
+ 33
+0.0
+ 14
+65.0
+ 24
+-10.0
+ 34
+0.0
+ 50
+0.0
+100
+AcDbRotatedDimension
+ 0
+TEXT
+ 5
+3D
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbText
+ 10
+52.5
+ 20
+-25.0
+ 30
+0.0
+ 40
+2.5
+ 1
+gauge₂
+100
+AcDbText
+ 0
+DIMENSION
+ 5
+3E
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbDimension
+280
+0
+ 3
+STANDARD
+ 10
+77.5
+ 20
+-20.0
+ 30
+0.0
+ 70
+32
+ 71
+5
+ 1
+<>
+100
+AcDbAlignedDimension
+ 13
+65.0
+ 23
+-10.0
+ 33
+0.0
+ 14
+90.0
+ 24
+-10.0
+ 34
+0.0
+ 50
+0.0
+100
+AcDbRotatedDimension
+ 0
+TEXT
+ 5
+3F
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbText
+ 10
+77.5
+ 20
+-25.0
+ 30
+0.0
+ 40
+2.5
+ 1
+edge dist.
+100
+AcDbText
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+OBJECTS
+ 0
+DICTIONARY
+ 5
+A
+330
+0
+100
+AcDbDictionary
+280
+0
+281
+1
+ 3
+ACAD_COLOR
+350
+B
+ 3
+ACAD_GROUP
+350
+C
+ 3
+ACAD_LAYOUT
+350
+D
+ 3
+ACAD_MATERIAL
+350
+E
+ 3
+ACAD_MLEADERSTYLE
+350
+F
+ 3
+ACAD_MLINESTYLE
+350
+10
+ 3
+ACAD_PLOTSETTINGS
+350
+11
+ 3
+ACAD_PLOTSTYLENAME
+350
+12
+ 3
+ACAD_SCALELIST
+350
+14
+ 3
+ACAD_TABLESTYLE
+350
+15
+ 3
+ACAD_VISUALSTYLE
+350
+16
+ 3
+EZDXF_META
+350
+2D
+ 0
+DICTIONARY
+ 5
+B
+330
+A
+100
+AcDbDictionary
+280
+0
+281
+1
+ 0
+DICTIONARY
+ 5
+C
+330
+A
+100
+AcDbDictionary
+280
+0
+281
+1
+ 0
+DICTIONARY
+ 5
+D
+330
+A
+100
+AcDbDictionary
+280
+0
+281
+1
+ 3
+Model
+350
+1A
+ 3
+Layout1
+350
+1E
+ 0
+DICTIONARY
+ 5
+E
+330
+A
+100
+AcDbDictionary
+280
+0
+281
+1
+ 3
+ByBlock
+350
+1F
+ 3
+ByLayer
+350
+20
+ 3
+Global
+350
+21
+ 0
+DICTIONARY
+ 5
+F
+330
+A
+100
+AcDbDictionary
+280
+0
+281
+1
+ 3
+Standard
+350
+2C
+ 0
+DICTIONARY
+ 5
+10
+330
+A
+100
+AcDbDictionary
+280
+0
+281
+1
+ 3
+Standard
+350
+22
+ 0
+DICTIONARY
+ 5
+11
+330
+A
+100
+AcDbDictionary
+280
+0
+281
+1
+ 0
+ACDBDICTIONARYWDFLT
+ 5
+12
+330
+A
+100
+AcDbDictionary
+280
+0
+281
+1
+ 3
+Normal
+350
+13
+100
+AcDbDictionaryWithDefault
+340
+13
+ 0
+ACDBPLACEHOLDER
+ 5
+13
+330
+12
+ 0
+DICTIONARY
+ 5
+14
+330
+A
+100
+AcDbDictionary
+280
+0
+281
+1
+ 0
+DICTIONARY
+ 5
+15
+330
+A
+100
+AcDbDictionary
+280
+0
+281
+1
+ 0
+DICTIONARY
+ 5
+16
+330
+A
+100
+AcDbDictionary
+280
+0
+281
+1
+ 0
+LAYOUT
+ 5
+1A
+330
+D
+100
+AcDbPlotSettings
+ 1
+
+ 4
+A3
+ 6
+
+ 40
+7.5
+ 41
+20.0
+ 42
+7.5
+ 43
+20.0
+ 44
+420.0
+ 45
+297.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+0.0
+140
+0.0
+141
+0.0
+142
+1.0
+143
+1.0
+ 70
+1024
+ 72
+1
+ 73
+0
+ 74
+5
+ 7
+
+ 75
+16
+ 76
+0
+ 77
+2
+ 78
+300
+147
+1.0
+148
+0.0
+149
+0.0
+100
+AcDbLayout
+ 1
+Model
+ 70
+1
+ 71
+0
+ 10
+0.0
+ 20
+0.0
+ 11
+420.0
+ 21
+297.0
+ 12
+0.0
+ 22
+0.0
+ 32
+0.0
+ 14
+1e+20
+ 24
+1e+20
+ 34
+1e+20
+ 15
+-1e+20
+ 25
+-1e+20
+ 35
+-1e+20
+146
+0.0
+ 13
+0.0
+ 23
+0.0
+ 33
+0.0
+ 16
+1.0
+ 26
+0.0
+ 36
+0.0
+ 17
+0.0
+ 27
+1.0
+ 37
+0.0
+ 76
+1
+330
+17
+ 0
+LAYOUT
+ 5
+1E
+330
+D
+100
+AcDbPlotSettings
+ 1
+
+ 4
+A3
+ 6
+
+ 40
+7.5
+ 41
+20.0
+ 42
+7.5
+ 43
+20.0
+ 44
+420.0
+ 45
+297.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+0.0
+140
+0.0
+141
+0.0
+142
+1.0
+143
+1.0
+ 70
+0
+ 72
+1
+ 73
+0
+ 74
+5
+ 7
+
+ 75
+16
+ 76
+0
+ 77
+2
+ 78
+300
+147
+1.0
+148
+0.0
+149
+0.0
+100
+AcDbLayout
+ 1
+Layout1
+ 70
+1
+ 71
+1
+ 10
+0.0
+ 20
+0.0
+ 11
+420.0
+ 21
+297.0
+ 12
+0.0
+ 22
+0.0
+ 32
+0.0
+ 14
+1e+20
+ 24
+1e+20
+ 34
+1e+20
+ 15
+-1e+20
+ 25
+-1e+20
+ 35
+-1e+20
+146
+0.0
+ 13
+0.0
+ 23
+0.0
+ 33
+0.0
+ 16
+1.0
+ 26
+0.0
+ 36
+0.0
+ 17
+0.0
+ 27
+1.0
+ 37
+0.0
+ 76
+1
+330
+1B
+ 0
+MATERIAL
+ 5
+1F
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+ByBlock
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MATERIAL
+ 5
+20
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+ByLayer
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MATERIAL
+ 5
+21
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+Global
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MLINESTYLE
+ 5
+22
+102
+{ACAD_REACTORS
+330
+10
+102
+}
+330
+10
+100
+AcDbMlineStyle
+ 2
+Standard
+ 70
+0
+ 3
+
+ 62
+256
+ 51
+90.0
+ 52
+90.0
+ 71
+2
+ 49
+0.5
+ 62
+256
+ 6
+BYLAYER
+ 49
+-0.5
+ 62
+256
+ 6
+BYLAYER
+ 0
+MLEADERSTYLE
+ 5
+2C
+102
+{ACAD_REACTORS
+330
+F
+102
+}
+330
+F
+100
+AcDbMLeaderStyle
+179
+2
+170
+2
+171
+1
+172
+0
+ 90
+2
+ 40
+0.0
+ 41
+0.0
+173
+1
+ 91
+-1056964608
+ 92
+-2
+290
+1
+ 42
+2.0
+291
+1
+ 43
+8.0
+ 3
+Standard
+ 44
+4.0
+300
+
+342
+29
+174
+1
+175
+1
+176
+0
+178
+1
+ 93
+-1056964608
+ 45
+4.0
+292
+0
+297
+0
+ 46
+4.0
+ 94
+-1056964608
+ 47
+1.0
+ 49
+1.0
+140
+1.0
+294
+1
+141
+0.0
+177
+0
+142
+1.0
+295
+0
+296
+0
+143
+3.75
+271
+0
+272
+9
+273
+9
+ 0
+DICTIONARY
+ 5
+2D
+330
+A
+100
+AcDbDictionary
+280
+1
+281
+1
+ 3
+CREATED_BY_EZDXF
+350
+2E
+ 3
+WRITTEN_BY_EZDXF
+350
+42
+ 0
+DICTIONARYVAR
+ 5
+2E
+330
+2D
+100
+DictionaryVariables
+280
+0
+ 1
+1.4.0 @ 2025-03-19T20:20:54.245129+00:00
+ 0
+DICTIONARYVAR
+ 5
+42
+330
+2D
+100
+DictionaryVariables
+280
+0
+ 1
+1.4.0 @ 2025-03-19T20:21:02.711883+00:00
+ 0
+ENDSEC
+ 0
+EOF
diff --git a/src/osdag/Common.py b/src/osdag/Common.py
index bd5c20630..3c6fa5352 100644
--- a/src/osdag/Common.py
+++ b/src/osdag/Common.py
@@ -175,7 +175,7 @@ def tuple_to_str_popup(tl):
def tuple_to_str(tl, call_type,table_name=None):
- if call_type is "dropdown" and table_name != 'Material' and table_name != 'Bolt':
+ if call_type == "dropdown" and table_name != 'Material' and table_name != 'Bolt':
arr = ['Select Section']
else:
arr = []
@@ -298,6 +298,7 @@ def is_valid_custom(self):
TYPE_TITLE = 'Title'
TYPE_LABEL = 'Label'
TYPE_IMAGE = 'Image'
+TYPE_IMAGE_BIGGER = 'Image_Bigger'
TYPE_IMAGE_COMPRESSION = 'Image_compression'
TYPE_COMBOBOX_CUSTOMIZED = 'ComboBox_Customized'
TYPE_IN_BUTTON = 'Input_dock_Button'
@@ -346,6 +347,43 @@ def is_valid_custom(self):
KEY_DISP_COLUMNCOVERPLATE = 'Column-to-Column Cover Plate Bolted Connection'
KEY_DISP_BEAMCOVERPLATEWELD = 'Beam-to-Beam Cover Plate Welded Connection'
KEY_DISP_COLUMNCOVERPLATEWELD = 'Column-to-Column Cover Plate Welded Connection'
+KEY_DISP_LAPJOINTBOLTED = 'Lap Joint Bolted Connection'
+KEY_DISP_LAPJOINTWELDED = 'Lap Joint Welded Connection'
+KEY_DISP_BUTTJOINTBOLTED = 'Butt Joint Bolted Connection'
+WELD_SIZES = [3, 5, 6, 10, 12]
+
+
+#Simpleconnections (Tension+compression)
+KEY_DESIGN_FOR = 'Design.For'
+KEY_DISP_DESIGN_FOR = 'Design For'
+KEY_AXIAL_FORCE = 'Load.Axial.Force' # If not using existing KEY_AXIAL
+KEY_DISP_AXIAL_FORCE = 'Axial Force (kN)'
+
+# MADE THIS t.s.
+KEY_DISP_BUTTJOINTWELDED = 'Butt Joint Welded Connection'
+KEY_OUT_UTILISATION_RATIO = 'Utilisation Ratio'
+KEY_OUT_DISP_UTILISATION_RATIO = 'Utilisation Ratio'
+KEY_OUT_NO_COVER_PLATE = 'No Cover Plate'
+KEY_OUT_DISP_NO_COVER_PLATE = 'No Cover Plate'
+KEY_OUT_WIDTH_COVER_PLATE = 'Width of Cover Plate'
+KEY_OUT_DISP_WIDTH_COVER_PLATE = 'Width of Cover Plate'
+KEY_OUT_THICKNESS_COVER_PLATE = 'Thickness of Cover Plate'
+KEY_OUT_DISP_THICKNESS_COVER_PLATE = 'Thickness of Cover Plate'
+KEY_OUT_LENGTH_COVER_PLATE = 'Length of Cover Plate'
+KEY_OUT_DISP_LENGTH_COVER_PLATE = 'Length of Cover Plate'
+DISP_TITLE_COVER_PLATE = 'Cover Plate Details'
+KEY_WELD_SIZE = 'Weld.Size'
+KEY_DISP_WELD_SIZE = 'Weld Size'
+KEY_DISP_COVER_PLT = 'Cover Plate *'
+KEY_DP_WELD_SIZE = 'Weld.Size'
+KEY_WELD_GRADE = 'Weld.Grade'
+KEY_EFF_THROAT_THICKNESS = 'Effective Throat Thickness'
+KEY_DESIGN_STRENGTH_WELD = 'Design Strength of Weld'
+KEY_OUT_DISP_WELD_STRENGTH_kN = 'Strength (kN)'
+
+# end
+
+
# KEY_DISP_BEAMENDPLATE = 'Beam End Plate Connection'
KEY_DISP_COLUMNENDPLATE = 'Column-to-Column End Plate Connection'
KEY_DISP_BCENDPLATE = 'Beam-to-Column End Plate Connection'
@@ -422,9 +460,9 @@ def is_valid_custom(self):
KEY_SR_FACTOR_YY = 'MinorSRF'
KEY_DISP_SR_FACTOR_YY = 'Stress Reduction Factor'
KEY_NON_DIM_ESR_ZZ = 'MajorNDESR'
-KEY_DISP_NON_DIM_ESR_ZZ = 'Non-dimensional Effective SR'
+KEY_DISP_NON_DIM_ESR_ZZ = 'Non-dimensional Effective SR (z-z)'
KEY_NON_DIM_ESR_YY = 'MinorNDESR'
-KEY_DISP_NON_DIM_ESR_YY = 'Non-dimensional Effective SR'
+KEY_DISP_NON_DIM_ESR_YY = 'Non-dimensional Effective SR (y-y)'
KEY_EFF_SEC_AREA_ZZ = 'MajorEffSecArea'
KEY_DISP_EFF_SEC_AREA_ZZ = 'Effective Sectional Area (mm2)'
KEY_EFF_SEC_AREA_YY = 'MinorEffSecArea'
@@ -440,11 +478,23 @@ def is_valid_custom(self):
##Strut Design
###################################
KEY_SHEAR_STRENGTH = 'Shear.Strength'
+KEY_SHEAR_STRENGTH_YY = 'Shear.Strength_YY'
+KEY_SHEAR_STRENGTH_ZZ = 'Shear.Strength_ZZ'
KEY_MOMENT_STRENGTH = 'Moment.Strength'
+KEY_MOMENT_STRENGTH_YY = 'Moment.Strength_YY'
+KEY_MOMENT_STRENGTH_ZZ = 'Moment.Strength_ZZ'
KEY_DISP_HIGH_SHEAR= 'High Shear Check'
+KEY_DISP_HIGH_SHEAR_YY= 'High Shear Check (y-y)'
+KEY_DISP_HIGH_SHEAR_ZZ= 'High Shear Check (z-z)'
KEY_HIGH_SHEAR = 'Shear.High'
+KEY_HIGH_SHEAR_YY = 'Shear.High_YY'
+KEY_HIGH_SHEAR_ZZ = 'Shear.High_ZZ'
KEY_DISP_DESIGN_STRENGTH_SHEAR = 'Shear Strength (kN)' # Design
-KEY_DISP_DESIGN_STRENGTH_MOMENT = 'Moment Strength (kNm)' # Design
+KEY_DISP_DESIGN_STRENGTH_SHEAR_YY = 'Shear Strength (y-y) (kN)'
+KEY_DISP_DESIGN_STRENGTH_SHEAR_ZZ = 'Shear Strength (z-z) (kN)'
+KEY_DISP_DESIGN_STRENGTH_MOMENT = 'Moment Strength (kNm)' # Design
+KEY_DISP_DESIGN_STRENGTH_MOMENT_YY = 'Moment Strength (y-y) (kNm)'
+KEY_DISP_DESIGN_STRENGTH_MOMENT_ZZ = 'Moment Strength (z-z) (kNm)'
KEY_DISP_REDUCE_STRENGTH_MOMENT = 'Reduced Moment Strength (kNm)'
KEY_EULER_BUCKLING_STRESS = 'MajorBucklingStress'
KEY_DISP_EULER_BUCKLING_STRESS = 'Buckling Stress (MPa)' # Euler
@@ -529,6 +579,7 @@ def is_valid_custom(self):
KEY_DISP_FLEXURE = 'Flexural Members - Simply Supported'
KEY_DISP_FLEXURE2 = 'Flexural Members - Cantilever'
KEY_DISP_FLEXURE3 = 'Flexural Members'
+KEY_DISP_FLEXURE4 = 'Flexural Members - Purlins'
KEY_DISP_PLASTIC_STRENGTH_MOMENT = 'Plastic Strength (kNm)'
KEY_DISP_Bending_STRENGTH_MOMENT = 'Bending Strength (kNm)'
@@ -541,12 +592,16 @@ def is_valid_custom(self):
KEY_WEB_CRIPPLING= 'Crippling.Strength'
KEY_DISP_CRIPPLING_STRENGTH = 'Crippling Strength (kN)'
KEY_DISP_LTB= 'Lateral Torsional Buckling Details'
-KEY_DISP_Elastic_CM= 'Critical Moment (Mcr)' # Elastic
-KEY_DISP_Elastic_CM_latex= 'Elastic Critical Moment(kNm)' #
+KEY_DISP_Elastic_CM= 'Critical Moment (Mcr)'# Elastic
+KEY_DISP_Elastic_CM_YY= 'Critical Moment (y-y) (Mcr)'
+KEY_DISP_Elastic_CM_ZZ= 'Critical Moment (z-z) (Mcr)'
+KEY_DISP_Elastic_CM_latex= 'Elastic Critical Moment(kNm)' #
KEY_DISP_T_constatnt= 'Torsional Constant (mm4)' # (It)
KEY_DISP_W_constatnt= 'Warping Constant (mm6)' # (Iw)
KEY_LTB= 'L.T.B.Details'
KEY_Elastic_CM= 'Elastic.Moment'
+KEY_Elastic_CM_YY = 'Elastic.Moment_YY'
+KEY_Elastic_CM_ZZ = 'Elastic.Moment_ZZ'
KEY_T_constatnt= 'T.Constant'
KEY_W_constatnt= 'W.Constant'
KEY_IMPERFECTION_FACTOR_LTB = 'Imperfection.LTB'
@@ -554,15 +609,34 @@ def is_valid_custom(self):
KEY_NON_DIM_ESR_LTB = 'NDESR.LTB'
# KEY_LTB= 'Lateral Torsional Buckling Details'
KEY_WEB_BUCKLING= 'Web Buckling Details'
+KEY_WEB_RESISTANCE= 'Web Resistance Details'
KEY_BEARING_LENGTH = 'Bearing.Length'
Simply_Supported_img = str(files("osdag.data.ResourceFiles.images").joinpath("ss_beam.png"))
Cantilever_img = str(files("osdag.data.ResourceFiles.images").joinpath("c_beam.png"))
+Purlin_img = str(files("osdag.data.ResourceFiles.images").joinpath("purlin.jpg"))
KEY_LENGTH_OVERWRITE = 'Length.Overwrite'
KEY_DISPP_LENGTH_OVERWRITE = 'Effective Length Parameter'
KEY_DISP_BEAM_MOMENT = 'Bending Moment (kNm)(Mz-z)'
KEY_DISP_BEAM_MOMENT_Latex = 'Bending Moment (kNm)' # ($M_{z-z}$)
KEY_SUPP_TYPE = 'Member.Type'
DISP_TITLE_ISECTION = 'I Sections'
+KEY_DISP_CLADDING = 'Cladding (For Deflection)'
+
+#Web Resistance Values
+KEY_BENDING_COMPRESSIVE_STRESS_YY = 'Resistance.Bending_Cmp_Stress_yy'
+KEY_BENDING_COMPRESSIVE_STRESS_ZZ = 'Resistance.Bending_Cmp_Stress_zz'
+KEY_DISP_BENDING_COMPRESSIVE_STRESS_YY = 'Bending Compressive Stress (y-y)'
+KEY_DISP_BENDING_COMPRESSIVE_STRESS_ZZ = 'Bending Compressive Stress (z-z)'
+KEY_BENDING_STRESS_RF_YY = 'Resistance.Bending_Stress_RF_yy'
+KEY_BENDING_STRESS_RF_ZZ = 'Resistance.Bending_Stress_RF_zz'
+KEY_DISP_BENDING_STRESS_RF_YY = 'Bending Stress Reduction Factor (y-y)'
+KEY_DISP_BENDING_STRESS_RF_ZZ = 'Bending Stress Reduction Factor (z-z)'
+KEY_RESISTANCE_MOMENT_YY = 'Resistance.Moment_YY'
+KEY_RESISTANCE_MOMENT_ZZ = 'Resistance.Moment_ZZ'
+KEY_DISP_RESISTANCE_MOMENT_YY = 'Moment (y-y)'
+KEY_DISP_RESISTANCE_MOMENT_ZZ = 'Moment (z-z)'
+KEY_BUCKLING_CLASS = "Buckling Class"
+KEY_DISP_BUCKLING_CLASS = "Buckling Class"
KEY_DISP_DESIGN_TYPE_FLEXURE = 'Laterally Supported'
KEY_DESIGN_TYPE_FLEXURE = 'Flexure.Type'
@@ -581,9 +655,14 @@ def is_valid_custom(self):
KEY_DISP_SUPPORT = 'End Conditions'
KEY_DISP_SUPPORT1 = 'Simply Supported'
KEY_DISP_SUPPORT2 = 'Cantilever'
-KEY_DISP_SUPPORT_LIST = list((KEY_DISP_SUPPORT1, KEY_DISP_SUPPORT2)) #[KEY_DISP_SUPPORT1, KEY_DISP_SUPPORT2]
+KEY_DISP_SUPPORT3 = 'Purlins'
+KEY_DISP_SUPPORT_LIST = list((KEY_DISP_SUPPORT1, KEY_DISP_SUPPORT2, KEY_DISP_SUPPORT3)) #[KEY_DISP_SUPPORT1, KEY_DISP_SUPPORT2]
# KEY_SUPPORT1 = 'SimpSupport.Torsional'
# KEY_SUPPORT2 = 'SimpSupport.Warping'
+KEY_CLADDING_TYPE1 = 'Brittle Cladding'
+KEY_CLADDING_TYPE2 = 'Elastic Cladding'
+KEY_CLADDING = 'Cladding.type'
+VALUES_CLADDING = list((KEY_CLADDING_TYPE1, KEY_CLADDING_TYPE2))
KEY_DISP_LENGTH_BEAM = 'Effective Span (m)*'
KEY_LOAD = 'Loading.Condition'
KEY_DISP_LOAD = 'Loading Condition'
@@ -591,17 +670,17 @@ def is_valid_custom(self):
KEY_DISP_LOAD2 = 'Destabilizing'
KEY_DISP_LOAD_list = list((KEY_DISP_LOAD1, KEY_DISP_LOAD2))
KEY_TORSIONAL_RES = 'Torsion.restraint'
-DISP_TORSIONAL_RES = 'Torsional restraint *'
+DISP_TORSIONAL_RES = 'Torsional Restraint *'
Torsion_Restraint1 = 'Fully Restrained'
Torsion_Restraint2 = 'Partially Restrained-support connection'
Torsion_Restraint3 = 'Partially Restrained-bearing support'
Torsion_Restraint_list = list(( Torsion_Restraint1, Torsion_Restraint2, Torsion_Restraint3))
KEY_WARPING_RES = 'Warping.restraint'
-DISP_WARPING_RES = 'Warping restraint *'
+DISP_WARPING_RES = 'Warping Restraint *'
Warping_Restraint1 = 'Both flanges fully restrained'
Warping_Restraint2 = 'Compression flange fully restrained'
# Warping_Restraint3 = 'Both flanges fully restrained'
-Warping_Restraint4 = 'Compressicm flange partially restrained'
+Warping_Restraint4 = 'Compression flange partially restrained'
Warping_Restraint5 = 'Warping not restrained in both flanges'
Warping_Restraint_list = list(( Warping_Restraint1, Warping_Restraint2, Warping_Restraint4, Warping_Restraint5))
DISP_SUPPORT_RES = 'Support restraint *'
@@ -646,7 +725,8 @@ def is_valid_custom(self):
# Plate Girder
###################################
KEY_PLATE_GIRDER_MAIN_MODULE = 'PLATE GIRDER'
-KEY_DISP_PLATE_GIRDER_WELDED = 'PLATE GIRDER - WELDED'
+KEY_DISP_PLATE_GIRDER_WELDED = 'PLATE GIRDER'
+KEY_DISP_PG_SectionDetail = 'Section Details'
KEY_tf = 'TF.Data'
KEY_tw = 'TW.Data'
KEY_dw = 'DW.Data'
@@ -660,6 +740,91 @@ def is_valid_custom(self):
KEY_DISP_Plate_Girder_PROFILE = 'Section Profile'
KEY_IntermediateStiffener_spacing = 'IntermediateStiffener.Spacing'
KEY_DISP_IntermediateStiffener_spacing = 'Intermediate Stiffener Spacing'
+KEY_LongitudnalStiffener = 'LongitudnalStiffener.Data'
+KEY_LongitudnalStiffener_thickness = 'LongitudnalStiffner.Thickness'
+KEY_DISP_LongitudnalStiffener = 'Longitudnal Stiffener'
+KEY_DISP_LongitudnalStiffener_thickness = 'Longitudnal Stiffener Thickness'
+KEY_IntermediateStiffener_thickness = 'IntermediateStiffener.Thickness'
+KEY_DISP_IntermediateStiffener_thickness = 'Intermediate Stiffener Thickness'
+KEY_WeldWebtoflange= 'WeldWebtoflange.Data'
+KEY_DISP_WeldWebtoflange= 'Weld for Web to Flange'
+KEY_WeldStiffenertoweb= 'WeldStiffenertoweb.Data'
+KEY_DISP_WeldStiffenertoweb= 'Weld for Stiffener to Web'
+KEY_IS_IT_SYMMETRIC = 'Girder.Symmetry'
+KEY_DISP_IS_IT_SYMMETRIC = 'Symmetry'
+KEY_DISP_SYM = 'Symmetric Girder'
+KEY_DISP_UNSYM = 'Unsymmetric Girder'
+KEY_DISP_SYMMETRIC_list = list((KEY_DISP_SYM, KEY_DISP_UNSYM))
+KEY_TOP_FLANGE_THICKNESS_PG = 'TopFlange.Thickness'
+KEY_DISP_TOP_FLANGE_THICKNESS_PG = 'Top Flange Thickness (mm)'
+KEY_OVERALL_DEPTH_PG = 'Total.Depth'
+KEY_OVERALL_DEPTH_PG_TYPE = 'Total.Design_Type'
+KEY_DISP_OVERALL_DEPTH_PG_TYPE = 'Design Type'
+KEY_DISP_OVERALL_DEPTH_PG = 'Total Depth (mm)'
+KEY_WEB_THICKNESS_PG = 'Web.Thickness'
+KEY_DISP_WEB_THICKNESS_PG = 'Web Thickness (mm)'
+KEY_TOP_Bflange_PG_Type = 'Topflange.Width_Type'
+KEY_DISP_TOP_Bflange_PG_Type = 'Top Flange Width Type'
+KEY_TOP_Bflange_PG = 'Topflange.Width'
+KEY_DISP_TOP_Bflange_PG = 'Width of Top Flange (mm)'
+KEY_BOTTOM_Bflange_PG_Type = 'Bottomflange.Width_Type'
+KEY_DISP_BOTTOM_Bflange_PG_Type = 'Bottom Flange Width Type'
+KEY_BOTTOM_Bflange_PG = 'Bottomflange.Width'
+KEY_DISP_BOTTOM_Bflange_PG = 'Width of Bottom Flange (mm)'
+KEY_BOTTOM_FLANGE_THICKNESS_PG = 'BottomFlange.Thickness'
+KEY_DISP_BOTTOM_FLANGE_THICKNESS_PG = 'Bottom Flange Thickness (mm)'
+KEY_STR_TYPE = 'Structure.Type'
+KEY_DISP_STR_TYPE = 'Type of Structure'
+KEY_WEB_PHILOSOPHY = 'Web.Philosophy'
+KEY_DISP_WEB_PHILOSOPHY = 'Web Philosophy'
+KEY_DISP_SECTION_DATA_PG = 'Design Inputs'
+KEY_LOADING = 'Factored Maximum Loads'
+KEY_DISP_STR_TYP1 = 'Highway Bridge'
+KEY_DISP_STR_TYP2 = 'Railway Bridge'
+KEY_DISP_STR_TYP3 = 'Industrial Structure'
+KEY_DISP_STR_TYP4 = 'Other Building'
+KEY_DISP_STR_TYPE_list = [KEY_DISP_STR_TYP1, KEY_DISP_STR_TYP2, KEY_DISP_STR_TYP3,KEY_DISP_STR_TYP4]
+KEY_DISP_PHILO1 = 'Thin Web with ITS'
+KEY_DISP_PHILO2 = 'Thick Web without ITS'
+WEB_PHILOSOPHY_list = list((KEY_DISP_PHILO1, KEY_DISP_PHILO2))
+KEY_DISP_DESIGN_STIFFER = 'Stiffener Design'
+KEY_DISP_WELD_DESIGN = 'Weld Design'
+KEY_BENDING_MOMENT_SHAPE= 'Bendingmoment.shape'
+KEY_DISP_BENDING_MOMENT_SHAPE='Bending Moment Shape'
+KEY_UDL_PIN_PIN_PG='UDLPINPIN.Data'
+KEY_DISP_UDL_PIN_PIN_PG='Uniform Loading with pinned-pinned support'
+KEY_UDL_FIX_FIX_PG= 'UDLFIXFIX.Data'
+KEY_DISP_UDL_FIX_FIX_PG= 'Uniform Loading with fixed-fixed support'
+KEY_PL_PIN_PIN_PG= 'PLPINPIN.Data'
+KEY_DISP_PL_PIN_PIN_PG='Concentrate Load with pinned-pinned support'
+KEY_PL_FIX_FIX_PG= 'PLFIXFIX.Data'
+KEY_DISP_PL_FIX_FIX_PG= 'Concentrate load with fixed-fixed support'
+KEY_DISP_GIRDERSEC = 'Girder Properties'
+Bending_moment_shape_list= list((KEY_DISP_UDL_PIN_PIN_PG, KEY_DISP_UDL_FIX_FIX_PG, KEY_DISP_PL_PIN_PIN_PG,KEY_DISP_PL_FIX_FIX_PG))
+VALUES_DEPTH_PG = ['Customized','Optimized']
+VALUES_OPT = ['All']
+KEY_DESIGN_LOAD = 'Design.Load'
+KEY_DISP_DESIGN_LOAD = 'Design Load'
+VALUE_DESIGN_LOAD_list = ['Live load','Dead load', 'Crane Load(Manual operation)', 'Crane load(Electric operation up to 50t)', 'Crane load(Electric operation over 50t)']
+KEY_MEMBER_OPTIONS = 'Member.Options'
+KEY_DISP_MEMBER_OPTIONS = 'Member Options'
+# VALUES_MEMBER_OPTIONS_INDUS = ['Purlin and Girts', 'Simple span', 'Cantilever span', 'Rafter Supporting', 'Gantry']
+# VALUES_MEMBER_OPTIONS_OTHER = ['Floor and roof', 'Cantilever']
+# VALUES_MEMBER_OPTIONS_BRIDGE = ['Simple span', 'Cantilever span']
+VALUES_MEMBER_OPTIONS = [['Simple Span', 'Cantilever Span'],['Purlin and Girts', 'Simple span', 'Cantilever span', 'Rafter Supporting', 'Gantry'], ['Floor and roof', 'Cantilever']]
+KEY_SUPPORTING_OPTIONS = 'Supporting.Options'
+KEY_DISP_SUPPORTING_OPTIONS = 'Supporting Options'
+VALUES_SUPPORTING_OPTIONS_PSC = ['Elastic cladding', 'Brittle cladding']
+VALUES_SUPPORTING_OPTIONS_RS = ['Profiled Metal sheeting', 'Plastered sheeting']
+VALUES_SUPPORTING_OPTIONS_GNT = ['Crane']
+VALUES_SUPPORTING_OPTIONS_FRC = ['Elements not susceptible to cracking', 'Element susceptible to cracking']
+VALUES_SUPPORTING_OPTIONS_DEF = ['NA']
+KEY_MAX_DEFL = 'Deflection.Max'
+KEY_DISP_MAX_DEFL = 'Maximum Deflection'
+VALUES_MAX_DEFL = ['Span/600','Span/800','Span/400','Span/300','Span/360','Span/150','Span/180','Span/240','Span/120','Span/500','Span/750','Span/1000']
+KEY_SUPPORT_WIDTH = 'Support.Width'
+KEY_DISP_SUPPORT_WIDTH = 'Support Width (mm)'
+
###################################
# All Input Keys
###################################
@@ -702,8 +867,12 @@ def is_valid_custom(self):
KEY_SEC_TYPE = 'Member.Type'
KEY_SHEAR = 'Load.Shear'
+KEY_SHEAR_YY = 'Load.Shear.YY'
+KEY_SHEAR_ZZ = 'Load.Shear.ZZ'
KEY_AXIAL = 'Load.Axial'
KEY_MOMENT = 'Load.Moment'
+KEY_MOMENT_YY = 'Load.Moment_YY'
+KEY_MOMENT_ZZ = 'Load.Moment_ZZ'
KEY_D = 'Bolt.Diameter'
KEY_TYP = 'Bolt.Type'
@@ -758,7 +927,7 @@ def is_valid_custom(self):
KEY_DP_DETAILING_EDGE_TYPE = 'Detailing.Edge_type'
KEY_DP_DETAILING_GAP = 'Detailing.Gap'
KEY_DP_DETAILING_CORROSIVE_INFLUENCES = 'Detailing.Corrosive_Influences'
-
+KEY_DP_DETAILING_PACKING_PLATE = 'Detailing.Packing_Plate'
KEY_DP_DESIGN_METHOD = 'Design.Design_Method'
###################
@@ -777,6 +946,7 @@ def is_valid_custom(self):
# VALUES_CONN_BP = ['Welded Column Base', 'Welded+Bolted Column Base', 'Moment Base Plate', 'Hollow/Tubular Column Base']
VALUES_CONN_BP = ['Welded Column Base', 'Moment Base Plate', 'Hollow/Tubular Column Base']
VALUES_LOCATION = ['Select Location','Long Leg', 'Short Leg', 'Web']
+VALUES_COVER_PLATE = ['Single-Cover', 'Double-Cover']
# TODO: Every one is requested to use VALUES_ALL_CUSTOMIZED key instead of all other keys
VALUES_ALL_CUSTOMIZED = ['All', 'Customized']
@@ -793,6 +963,7 @@ def is_valid_custom(self):
VALUES_MEMBERS = ['2', '3', '4', '5', '6', '7', '8']
ALL_WELD_SIZES = [3, 4, 5, 6, 8, 10, 12, 14, 16]
+
VALUES_TYP_ANCHOR = ['End Plate Type', 'IS 5624-Type A', 'IS 5624-Type B']
VALUES_GRD_FOOTING = ['Select Grade', 'M10', 'M15', 'M20', 'M25', 'M30', 'M35', 'M40', 'M45', 'M50', 'M55']
VALUES_TYP = [TYP_BEARING, TYP_FRICTION_GRIP]
@@ -830,7 +1001,11 @@ def is_valid_custom(self):
VALUES_DIAM = connectdb("Bolt")
# VALUES_DIAM = ['Select diameter','12','16','20','24','30','36']
-
+VALUES_IMAGE_PLATEGIRDER = [str(files("osdag.data.ResourceFiles.images").joinpath("ULPPS_PG.png")),
+ str(files("osdag.data.ResourceFiles.images").joinpath("ULFFS_PG.png")),
+ str(files("osdag.data.ResourceFiles.images").joinpath("CLPPS_PG.png")),
+ str(files("osdag.data.ResourceFiles.images").joinpath("CLFFS_PG.png")),
+ str(files("osdag.data.ResourceFiles.images").joinpath("CLPPSPB_PG.png"))]
VALUES_IMG_TENSIONBOLTED = [str(files("osdag.data.ResourceFiles.images").joinpath("bA.png")),str(files("osdag.data.ResourceFiles.images").joinpath("bBBA.png")),str(files("osdag.data.ResourceFiles.images").joinpath("bSA.png")),str(files("osdag.data.ResourceFiles.images").joinpath("bC.png")),str(files("osdag.data.ResourceFiles.images").joinpath("bBBC.png"))]
VALUES_IMG_TENSIONWELDED = [str(files("osdag.data.ResourceFiles.images").joinpath("wA.png")),str(files("osdag.data.ResourceFiles.images").joinpath("wBBA.png")),str(files("osdag.data.ResourceFiles.images").joinpath("wSA.png")),str(files("osdag.data.ResourceFiles.images").joinpath("wC.png")),str(files("osdag.data.ResourceFiles.images").joinpath("wBBC.png"))]
VALUES_IMG_TENSIONBOLTED_DF01 = [str(files("osdag.data.ResourceFiles.images").joinpath("equaldp.png")),str(files("osdag.data.ResourceFiles.images").joinpath("bblequaldp.png")),str(files("osdag.data.ResourceFiles.images").joinpath("bbsequaldp.png")),str(files("osdag.data.ResourceFiles.images").joinpath("salequaldp.png")),str(files("osdag.data.ResourceFiles.images").joinpath("sasequaldp.png"))]
@@ -885,6 +1060,7 @@ def is_valid_custom(self):
DISP_MAX_CLEAT_HEIGHT = 'Max. Cleat Angle Height'
DISP_MIN_CLEAT_THK = 'Min. Cleat Angle Thickness (mm)'
DISP_MIN_WIDTH = 'Minimum Width (mm)'
+
DISP_MIN_PLATE_THICK = 'Min. Plate Thickness (mm)'
######### Minimun for Flange####
@@ -938,6 +1114,19 @@ def is_valid_custom(self):
# VALUES_CONN_BP = ['Welded-Slab Base', 'Bolted-Slab Base', 'Gusseted Base Plate', 'Hollow Section']
+#lapjointbolted
+KEY_PLATE1_THICKNESS = "Plate1Thickness"
+KEY_PLATE2_THICKNESS = "Plate2Thickness"
+KEY_PLATE_WIDTH = "PlateWidth"
+KEY_DISP_PLATE1_THICKNESS = "Thickness of Plate-1 (mm) *"
+KEY_DISP_PLATE2_THICKNESS = "Thickness of Plate-2 (mm) *"
+KEY_DISP_PLATE_WIDTH = "Width of Plate (mm) *"
+KEY_TENSILE_FORCE = "TensileForce*"
+KEY_DISP_TENSILE_FORCE = "Tensile Force (kN) *"
+
+KEY_COVER_PLATE = "ButtJoint.CoverPlate"
+KEY_DISP_COVER_PLATE = "Cover Plate"
+
KEY_DISP_LENGTH = 'Length (mm) *'
KEY_DISP_LOCATION = 'Conn_Location *'
KEY_DISP_LOCATION_STRUT = 'Connection *'
@@ -954,6 +1143,8 @@ def is_valid_custom(self):
KEY_DISP_SECBM = 'Secondary Beam *'
DISP_TITLE_FSL = 'Factored Loads'
KEY_DISP_MOMENT = 'Bending Moment (kNm) *'
+KEY_DISP_MOMENT_ZZ = 'Bending Moment (z-z) (kNm)'
+KEY_DISP_MOMENT_YY = 'Bending Moment (y-y) (kNm)'
KEY_DISP_TOP_ANGLE = 'Top Angle'
@@ -999,6 +1190,8 @@ def is_valid_custom(self):
KEY_DISP_D = 'Diameter (mm) *'
KEY_DISP_SHEAR = 'Shear Force (kN) *'
+KEY_DISP_SHEAR_YY = 'Shear Force (y-y) (kN)'
+KEY_DISP_SHEAR_ZZ = 'Shear Force (z-z) (kN)'
KEY_DISP_AXIAL = 'Axial Force (kN)'
KEY_DISP_AXIAL_STAR = 'Axial Force (kN)* '
DISP_TITLE_PLATE = 'Plate'
@@ -1310,6 +1503,7 @@ def is_valid_custom(self):
DISP_TITLE_INTERMITTENT = 'Intermittent Connection'
DISP_TITLE_BOLTD = 'Bolt Details'
+DISP_TITLE_BOLTDS = 'Bolt Design'
DISP_TITLE_PLATED = 'Plate Details'
KEY_DISP_DP_DETAILING_GAP = 'Gap Between Beam and
Support (mm)'
@@ -1319,6 +1513,7 @@ def is_valid_custom(self):
KEY_DISP_DP_DETAILING_CORROSIVE_INFLUENCES_BEAM = 'Are the Members Exposed to Corrosive Influences?'
KEY_DISP_CORR_INFLUENCES = 'Members exposed to corrosive influences?'
KEY_DISP_DP_DESIGN_METHOD = 'Design Method'
+KEY_DISP_DP_DETAILING_PACKING_PLATE = 'Packing Plate'
KEY_DISP_DP_DESIGN_BASE_PLATE = 'Base Plate Analysis'
KEY_DISP_GAP = 'Gap Between Members (mm)'
@@ -1716,6 +1911,11 @@ def is_valid_custom(self):
KEY_WEB_CAPACITY ='section.web_capacities'
KEY_DISP_WEB_CAPACITY ='Capacity'
+
+#SimpleConnection(Tension+Compression)
+KEY_OUT_DESIGN_FOR = "Design For"
+KEY_OUT_DISP_DESIGN_FOR = "Design For"
+
# Web plate
KEY_REDUCTION_FACTOR_WEB ='web_plate.red,factor'
KEY_DISP_REDUCTION_FACTOR_WEB ="Red. Factor"
@@ -1799,6 +1999,8 @@ def is_valid_custom(self):
KEY_OUT_GRD_PROVIDED = 'Bolt.Grade_Provided'
+KEY_OUT_DISP_TYP_PROVIDED = 'Type'
+KEY_OUT_TYP_PROVIDED = 'Bolt.Type_Provided'
KEY_OUT_DISP_GRD_PROVIDED = 'Property Class'
KEY_OUT_INTER_GRD_PROVIDED = 'Bolt.InterGrade'
KEY_OUT_DISP_INTER_GRD_PROVIDED = 'Grade'
@@ -1818,6 +2020,23 @@ def is_valid_custom(self):
KEY_DISP_BOLT_HOLE = 'Hole Diameter (mm)'
KEY_DISP_MIN_BOLT = 'Minimum Bolts (nos)'
+
+KEY_OUT_WELD_CONN_LEN = 'Weld.ConnLength'
+
+
+KEY_OUT_BOLT_CONN_LEN = 'Bolt.ConnLength'
+KEY_UTILIZATION_RATIO = 'Bolt.UtilizationRatio'
+KEY_DISP_UTILIZATION_RATIO = 'Utilization Ratio'
+KEY_OUT_DISP_BOLT_CONN_LEN = 'Length of Connection (mm)'
+KEY_OUT_DISP_WELD_CONN_LEN = 'Length of Connection (mm)'
+KEY_OUT_BOLT_UTILIZATION = 'Bolt.Utilization'
+KEY_OUT_DISP_BOLT_UTILIZATION = 'Bolt Utilization'
+KEY_OUT_BASE_METAL_CAPACITY = 'Plate.BaseCapacity'
+KEY_OUT_DISP_BASE_METAL_CAPACITY = 'Base Metal Capacity (kN)'
+KEY_OUT_BASE_METAL_UTILIZATION = 'Plate.BaseUtilization'
+KEY_OUT_DISP_BASE_METAL_UTILIZATION = 'Base Metal Utilization'
+
+
KEY_DISP_BOLT_AREA = 'Nominal Stress Area (mm2)'
KEY_DISP_KB = 'Kb'
@@ -1836,6 +2055,7 @@ def is_valid_custom(self):
KEY_OUT_BETA_PK = 'Bolt.Betapk'
KEY_OUT_DISP_BETA_PK = 'βpk'
KEY_OUT_DISP_BOLT_SLIP= 'Slip Resistance'
+KEY_OUT_BOLT_SLIP = 'Bolt.Slip'
KEY_OUT_DISP_BOLT_SLIP_DR = 'Slip Resistance (kN)'
KEY_OUT_BOLT_CAPACITY = 'Bolt.Capacity'
KEY_OUT_BOLT_CAPACITY_SPTD = 'Bolt.Capacity_sptd'
@@ -2047,6 +2267,7 @@ def is_valid_custom(self):
KEY_OUT_DISP_WELD_SIZE_STIFFENER1 = 'Weld Size at Stiffener (mm)'
KEY_OUT_WELD_STRENGTH = 'Weld.Strength'
KEY_OUT_DISP_WELD_STRENGTH = 'Strength (N/mm)'
+
KEY_OUT_WELD_STRESS = 'Weld.Stress'
KEY_OUT_DISP_WELD_STRESS = 'Stress (N/mm)'
KEY_OUT_WELD_LENGTH = 'Weld.Length'
@@ -2225,6 +2446,7 @@ def is_valid_custom(self):
VALUES_SEC_PROFILE_2 = ['Angles', 'Back to Back Angles', 'Star Angles', 'Channels', 'Back to Back Channels']
#, 'Channels', 'Back to Back Channels'
VALUES_SEC_PROFILE3 = ['Beams and Columns'] #,'Channels', 'Back to Back Channels'
+VALUES_SEC_PROFILE4 = ['Channels']
KEY_LENZZ = 'Member.Length_zz'
KEY_DISP_LENZZ = 'Length (z-z)(mm)*'
@@ -2278,7 +2500,9 @@ def is_valid_custom(self):
KEY_AXFOR = 'Axial Force'
KEY_DISP_AXFOR = 'Axial Force (kN)*'
KEY_PLTHK = 'Plate thk'
+KEY_PK_PLTHK = 'PackingPlate thk'
KEY_DISP_PLTHK = 'Plate thk (mm)'
+KEY_DISP_PK_PLTHK = 'Packing Plate thickness (mm)'
KEY_PLTHICK = 'Plate thk'
KEY_DISP_PLTHICK = 'Plate Thickness (mm)'
KEY_DISP_PLATE_THICK = 'Plate Thickness (mm)'
@@ -2488,6 +2712,13 @@ def get_leg_lengths(designation):
"Specifying whether the members are exposed to corrosive influences, here, only affects the calculation of the maximum edge distance as per cl. 10.2.4.3
\n"
"