Skip to content

Commit 18d48c2

Browse files
author
MichalO
committed
Merge remote-tracking branch 'remotes/origin/main' into OndrejMichal-result_tables_US_3941
2 parents a5c9abe + a9499b3 commit 18d48c2

File tree

103 files changed

+1528
-1056
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

103 files changed

+1528
-1056
lines changed

Examples/Cantilever/demo2.py

-41
This file was deleted.

README.md

+84-41
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,66 @@
1-
# RfemPythonWsClient
2-
![image](https://img.shields.io/badge/RFEM-latest-yellow) ![image](https://img.shields.io/badge/Python-3-blue) ![image](https://img.shields.io/badge/coverage-87%25-green)
1+
<h1 align="center">
2+
<a href="https://www.dlubal.com/en" title="Tutorial 1"><img src="./img/logo.png" width="180" height="180" alt="Dlubal Software" /></a>
3+
4+
Dlubal Software GmbH
5+
6+
[![image](https://img.shields.io/twitter/follow/dlubal_en?style=social)](https://twitter.com/dlubal_en "Twitter Follow")
7+
[![image](https://img.shields.io/badge/GitHub-Dlubal_Software-darkblue?logo=github&amp;)](https://github.com/Dlubal-Software "Github Follow")
8+
[![image](https://img.shields.io/badge/http://-dlubal.com-darkblue)](https://www.dlubal.com/en-US "RFEM Latest")
9+
[![image](https://img.shields.io/badge/docs-API-darkblue?logo=read-the-docs&amp;logoColor=white)](https://dlubal-software.github.io/RFEM_Python_Client/ "RFEM Latest")
10+
11+
[![image](https://img.shields.io/badge/RFEM-v6.0-blue)](https://www.dlubal.com/en/products/rfem-fea-software/what-is-rfem "RFEM")
12+
[![image](https://img.shields.io/badge/RSTAB-v9.0-blue)](https://www.dlubal.com/en/products/rstab-beam-structures/what-is-rstab "RFEM")
13+
[![image](https://img.shields.io/badge/Python-3-blue?logo=python&amp;logoColor=yellow)](https://www.python.org/)
14+
[![Open Source? Yes!](https://badgen.net/badge/Open%20Source%20%3F/Yes%21/blue?icon=github)](https://github.com/Dlubal-Software/RFEM_Python_Client)
15+
![image](https://img.shields.io/badge/coverage-87%25-green)
16+
17+
</h1>
18+
19+
20+
<h2 align="center">
21+
22+
Welcome to RFEM Python High Level Functions
23+
24+
<a href="https://www.dlubal.com/en/products/rfem-fea-software/what-is-rfem" title="Tutorial 1"><img src="./img/2Dtruss.gif" width=550 alt="Tutorial" /></a>
25+
</h2>
326

427
Python client (high-level functions) for [RFEM 6](https://www.dlubal.com/en/products/rfem-fea-software/what-is-rfem) using [Web Services](https://en.wikipedia.org/wiki/Web_service) (WS), [SOAP](https://cs.wikipedia.org/wiki/SOAP) and [WSDL](https://en.wikipedia.org/wiki/Web_Services_Description_Language). Available Python SOAP pkgs can be found on [wiki.python.org](https://wiki.python.org/moin/WebServices#SOAP).
528

6-
![image](https://user-images.githubusercontent.com/37547309/118758788-fe2a5580-b86f-11eb-9eaf-b38862333cd4.png)
7-
8-
### Table of Contents
9-
- [RfemPythonWsClient](#rfempythonwsclient)
10-
* [Description](#description)
11-
* [Architecture](#architecture)
12-
+ [Data Structure](#data-structure)
13-
* [Getting started](#getting-started)
14-
+ [Dependencies](#dependencies)
15-
+ [Step by step](#step-by-step)
16-
+ [Examples](#examples)
17-
+ [Unit Tets](#unit-tests)
18-
* [Documentation](#documentation)
19-
* [Wiki](#wiki)
20-
* [License](#license)
21-
* [Contribute](#contribute)
2229

2330
## Description
24-
This Python project is focused on opening RFEM 6 to all of our customers, enabling them to interact with RFEM 6 on a much higher level. If you are looking for a tool to help you solve parametric models or optimization tasks, you have come to the right place. This community serves as a support portal and base for all of your future projects. The goal is to create an easily expandable Python library, which communicates instructions to RFEM 6 through WebServices (WS). WS enables access to RFEM 6 either via a local instance or a remote internet connection.
25-
26-
**It's open source.** Everybody is welcome to create their own solution, cooperate with us or add suggestions.
31+
This Python project is focused on opening RFEM 6 to all of our customers, enabling them to interact with RFEM 6 on a much higher level. If you are looking for a tool to help you solve parametric models or optimization tasks, you have come to the right place. This community serves as a support portal and base for all of your future projects. The goal is to create an easily expandable Python library, which communicates instructions to RFEM 6 through WebServices (WS). WS enables access to RFEM 6 either via a local instance or a remote internet connection.
2732

2833
## Architecture
29-
![image](https://user-images.githubusercontent.com/37547309/118119185-44a22f00-b3ee-11eb-9d60-3d74a4a96f81.png)
30-
### Data Structure
31-
* [main.py](main.py): setting of individual objects by one line entry
32-
* [window.py](/RFEM/window.py): definition of GUI layer; called first
33-
* [initModel.py](/RFEM/initModel.py): runs after window and initializes suds.Client by connecting to `http://localhost:8081/wsdl` and active model in RFEM. It also evelops esential global functions.
34-
* [enums.py](/RFEM/enums.py): definition of enumerations
35-
* [dataTypes.py](/RFEM/dataTypes.py): definition of special data types
36-
* [RFEM](/RFEM): folder following structure of RFEM 6 navigator containing individual types of objects
34+
35+
* [![RFEM](https://img.shields.io/badge/RFEM-blue)](/RFEM): folder following structure of RFEM 6 navigator containing individual types of objects
36+
* [![initModel](https://img.shields.io/badge/initModel.py-blue)](/RFEM/initModel.py): runs after window and initializes suds.Client by connecting to `http://localhost:8081/wsdl` and active model in RFEM. It also evelops esential global functions.
37+
* [![enums](https://img.shields.io/badge/enums.py-blue)](/RFEM/enums.py): definition of enumerations
38+
39+
3740

3841
## Getting started
3942

4043
### Dependencies
4144
Dependency check is implemented inside [initModel.py](/RFEM/initModel.py) with option to install during execution.
42-
* PyPi pkgs: [SUDS](https://github.com/cackharot/suds-py3), [requests](https://docs.python-requests.org/en/master/), [six](https://pypi.org/project/six/), [mock](https://pypi.org/project/mock/), and [xmltodict](https://pypi.org/project/xmltodict/).
43-
* RFEM 6 application. Client is always compatible with the latest version.
45+
* <img align="left" alt="Visual Studio Code" width="26px" src="./img/PyPI.png" style="padding-right:1px;">PyPi pkgs: [SUDS](https://github.com/cackharot/suds-py3), [requests](https://docs.python-requests.org/en/master/), [six](https://pypi.org/project/six/), [mock](https://pypi.org/project/mock/), and [xmltodict](https://pypi.org/project/xmltodict/).
46+
47+
* <img align="left" alt="Visual Studio Code" width="26px" src="./img/RFEM.png" style="padding-right:1px;">RFEM 6 application. Client is always compatible with the latest version.
4448

4549
### Step by step
46-
1) [Clone](https://git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository#:~:text=Cloning%20an%20Existing%20Repository) this repository (if you have GitHub account) or download actual [release](https://github.com/Dlubal-Software/RFEM_Python_Client/releases)
47-
2) Open RFEM 6 application
48-
3) Check if there are no opened dialogues in RFEM and server port range under *Options-Web Services* corresponds to the one set in initModel
49-
4) Run your script. Inspirations can be found in [Examples](/Examples/) or [UnitTests](/UnitTests/).
50+
1) 🌀 [Clone](https://git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository#:~:text=Cloning%20an%20Existing%20Repository) this repository (if you have GitHub account) or download actual [release](https://github.com/Dlubal-Software/RFEM_Python_Client/releases)
51+
2) <img align="left" alt="Visual Studio Code" width="18px" src="./img/RFEM.png"> Open RFEM 6 application
52+
53+
3) ☑️ Check if there are no opened dialogues in RFEM and server port range under *Options-Web Services* corresponds to the one set in initModel
54+
4) 🏃 Run your script. Inspirations can be found in [Examples](/Examples/) or [UnitTests](/UnitTests/).
5055

5156
### Examples
52-
Scripts intended to be used as templates or examples. Also can be used for testing of backward compatibility.
57+
[Scripts](https://github.com/Dlubal-Software/RFEM_Python_Client/tree/heet-readmeUpdate/Examples) intended to be used as templates or examples. Also can be used for testing of backward compatibility.
5358

5459
### Unit Tests
55-
Collection of scripts to support further development.
60+
Collection of [scripts](https://github.com/Dlubal-Software/RFEM_Python_Client/tree/heet-readmeUpdate/UnitTests) to support further development.
5661

57-
## Documentation
58-
For complete description of classes and functions visit our [GitHub page](https://dlubal-software.github.io/RFEM_Python_Client/).
62+
## Documentation 📚
63+
For complete description of classes and functions visit our [![image](https://img.shields.io/badge/GitHub-page-darkblue?logo=github&amp;)](https://dlubal-software.github.io/RFEM_Python_Client/).
5964

6065
## Wiki
6166
If you run into problems see our [Wiki](https://github.com/Dlubal-Software/RFEM_Python_Client/wiki). We are slowly but surely expanding the solutions to the problems found in the Issues section.
@@ -64,7 +69,7 @@ If you run into problems see our [Wiki](https://github.com/Dlubal-Software/RFEM_
6469
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6570

6671
## Contribute
67-
Contributions are always welcome! Please ensure your pull request adheres to the following guidelines:
72+
Contributions are always welcome!🙂 Please ensure your pull request adheres to the following guidelines:
6873

6974
* Alphabetize your entry.
7075
* Search previous suggestions before making a new one, as yours may be a duplicate.
@@ -77,4 +82,42 @@ Contributions are always welcome! Please ensure your pull request adheres to the
7782
* Make sure your text editor is set to remove trailing whitespace.
7883
* Use the #readme anchor for GitHub READMEs to link them directly
7984

80-
NOTE: Development is in early stages so please respect that. There will be broken objects or adjustments affecting backward compatibility. Use Issues section to point out any problems. Thank you for your understanding.
85+
⚠️NOTE: Development is in early stages so please respect that. There will be broken objects or adjustments affecting backward compatibility. Use Issues section to point out any problems. Thank you for your understanding.
86+
87+
88+
## Connect with us 🤝
89+
90+
[![website](./img/globe-light.svg)](https://www.dlubal.com/en)
91+
&nbsp;&nbsp;
92+
[![website](./img/youtube-light.svg)](https://www.youtube.com/c/DlubalEN)
93+
&nbsp;&nbsp;
94+
[![website](./img/twitter-light.svg)](https://twitter.com/dlubal_en)
95+
&nbsp;&nbsp;
96+
[![website](./img/linkedin-light.svg)](https://de.linkedin.com/company/dlubal-software)
97+
&nbsp;&nbsp;
98+
[![website](./img/instagram-light.svg)](https://www.instagram.com/dlubal_software/)
99+
&nbsp;&nbsp;
100+
[![website](./img/github-light.svg)](https://github.com/Dlubal-Software)
101+
102+
## Languages and Tools 🛠️
103+
104+
[<img align="left" alt="Visual Studio Code" width="26px" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/vscode/vscode-original.svg" style="padding-right:15px;" />](https://code.visualstudio.com/)
105+
[<img align="left" alt="Visual Studio Code" width="26px" src="./img/Python.png" style="padding-right:15px;" />](https://www.python.org/)
106+
[<img align="left" alt="Visual Studio Code" width="26px" src="./img/RFEM.png" style="padding-right:15px;" />](https://www.dlubal.com/en/products/rfem-fea-software/what-is-rfem)
107+
[<img align="left" alt="Visual Studio Code" width="26px" src="./img/RSTAB.png" style="padding-right:15px;" />](https://www.dlubal.com/en/products/rstab-beam-structures/what-is-rstab)
108+
[<img align="left" alt="GitHub" width="26px" src="https://user-images.githubusercontent.com/3369400/139448065-39a229ba-4b06-434b-bc67-616e2ed80c8f.png" style="padding-right:15px;" />](https://github.com/Dlubal-Software)
109+
<img align="left" alt="Terminal" width="26px" src="./img/terminal-light.svg" style="padding-right:15px;" />
110+
</br>
111+
</br>
112+
113+
## GitHub Stargazers over time
114+
115+
[![Star History Chart](https://api.star-history.com/svg?repos=Dlubal-Software/RFEM_Python_Client&type=Date)](https://star-history.com/#Dlubal-Software/RFEM_Python_Client&Date)
116+
117+
118+
## Contributors
119+
120+
</br>
121+
122+
[![Contributors](https://contrib.rocks/image?repo=Dlubal-Software/RFEM_Python_Client)](https://github.com/Dlubal-Software/RFEM_Python_Client/graphs/contributors)
123+

RFEM/BasicObjects/line.py

+12-3
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ def __init__(self,
1515
nodes_no (str): Nodes Defining Line
1616
comment (str, optional): Comments
1717
params (dict, optional): Any WS Parameter relevant to the object and its value in form of a dictionary
18+
model (RFEM Class, optional): Model to be edited
1819
'''
1920

2021
# Client model | Line
@@ -54,6 +55,7 @@ def Polyline(
5455
nodes_no (str): Nodes Defining Polyline
5556
comment (str, optional): Comments
5657
params (dict, optional): Any WS Parameter relevant to the object and its value in form of a dictionary
58+
model (RFEM Class, optional): Model to be edited
5759
'''
5860

5961
# Client model | Line
@@ -100,6 +102,7 @@ def Arc(
100102
alpha_adjustment_target (enum): Line Arc Alpha Adjustment Target Enumeration
101103
comment (str, optional): Comments
102104
params (dict, optional): Any WS Parameter relevant to the object and its value in form of a dictionary
105+
model (RFEM Class, optional): Model to be edited
103106
'''
104107

105108
# Client model | Line
@@ -146,12 +149,12 @@ def Circle(
146149
'''
147150
Args:
148151
no (int): Line Tag
149-
nodes_no (str): Nodes on Line of Circle
150152
center_of_circle (list): Cartesian Co-Ordinates of Circle Centre [X, Y, Z]
151153
circle_radius (float): Magnitude of Circle Radius
152154
point_of_normal_to_circle_plane (list): Vector from Circle Centre to this Point [X, Y, Z] defines Vector Normal to Circle Plane
153155
comment (str, optional): Comments
154156
params (dict, optional): Any WS Parameter relevant to the object and its value in form of a dictionary
157+
model (RFEM Class, optional): Model to be edited
155158
'''
156159

157160
# Client model | Line
@@ -210,6 +213,7 @@ def EllipticalArc(
210213
arc_angle_beta (float): Beta Arc Angle (in Radians)
211214
comment (str, optional): Comments
212215
params (dict, optional): Any WS Parameter relevant to the object and its value in form of a dictionary
216+
model (RFEM Class, optional): Model to be edited
213217
'''
214218

215219
# Client model | Line
@@ -266,6 +270,7 @@ def Ellipse(
266270
ellipse_control_point (list): Ellipse Control Point [X, Y, Z]
267271
comment (str, optional): Comments
268272
params (dict, optional): Any WS Parameter relevant to the object and its value in form of a dictionary
273+
model (RFEM Class, optional): Model to be edited
269274
'''
270275

271276
# Client model | Line
@@ -304,7 +309,7 @@ def Ellipse(
304309
@staticmethod
305310
def Parabola(
306311
no: int = 1,
307-
nodes_no: str = [3,8],
312+
nodes_no: list = [3,8],
308313
parabola_control_point: list = [10,-3,0],
309314
parabola_alpha: float = 0,
310315
comment: str = '',
@@ -318,6 +323,7 @@ def Parabola(
318323
parabola_alpha (float): Alpha Angle (in Radians)
319324
comment (str, optional): Comments
320325
params (dict, optional): Any WS Parameter relevant to the object and its value in form of a dictionary
326+
model (RFEM Class, optional): Model to be edited
321327
'''
322328

323329
# Client model | Line
@@ -368,6 +374,7 @@ def Spline(
368374
nodes_no (str): Node Tags on Line of Spline
369375
comment (str, optional): Comments
370376
params (dict, optional): Any WS Parameter relevant to the object and its value in form of a dictionary
377+
model (RFEM Class, optional): Model to be edited
371378
'''
372379

373380
# Client model | Line
@@ -409,12 +416,13 @@ def NURBS(
409416
'''
410417
Args:
411418
no (int): Line Tag
412-
nodes_no (str): Nodes creating the curve. By default theese are taken as control points.
419+
nodes_no (str): Nodes creating the curve. By default these are taken as control points.
413420
control_points (list of lists, optional): Nested List of Respective Control Point's Cartesian Co-Ordinates
414421
weights (list, optional): Control points weights e.g. [1,1,1]
415422
order (int, optional): Order of the curve with 3 as default value
416423
comment (str, optional): Comments
417424
params (dict, optional): Any WS Parameter relevant to the object and its value in form of a dictionary
425+
model (RFEM Class, optional): Model to be edited
418426
'''
419427

420428
# Client model | Line
@@ -467,6 +475,7 @@ def DeleteLine(lines_no: str = '1 2', model = Model):
467475
'''
468476
Args:
469477
lines_no (str): Numbers of Lines to be deleted
478+
model (RFEM Class, optional): Model to be edited
470479
'''
471480

472481
# Delete from client model

RFEM/BasicObjects/lineSet.py

+3
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ def __init__(self,
1717
line_set_type (enum): Line Set Type Enumeration
1818
comment (str, optional): Comments
1919
params (dict, optional): Any WS Parameter relevant to the object and its value in form of a dictionary
20+
model (RFEM Class, optional): Model to be edited
2021
'''
2122

2223
# Client model | Line Set
@@ -59,6 +60,7 @@ def ContinuousLines(
5960
lines_no (str): Numbers of Lines Contained Within Continuous Line Set
6061
comment (str, optional): Comments
6162
params (dict, optional): Any WS Parameter relevant to the object and its value in form of a dictionary
63+
model (RFEM Class, optional): Model to be edited
6264
'''
6365

6466
# Client model | Line Set
@@ -101,6 +103,7 @@ def GroupOfLines(
101103
lines_no (str): Numbers of Lines Contained Within Group of Lines Line Set
102104
comment (str, optional): Comments
103105
params (dict, optional): Any WS Parameter relevant to the object and its value in form of a dictionary
106+
model (RFEM Class, optional): Model to be edited
104107
'''
105108

106109
# Client model | Line Set

RFEM/BasicObjects/material.py

+2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ def __init__(self,
1616
name (str): Name of Desired Material (As Named in RFEM Database)
1717
comment (str, optional): Comments
1818
params (dict, optional): Any WS Parameter relevant to the object and its value in form of a dictionary
19+
model (RFEM Class, optional): Model to be edited
1920
'''
2021

2122
# Client model | Material
@@ -47,6 +48,7 @@ def DeleteMaterial(materials_no: str = '1 2', model = Model):
4748
'''
4849
Args:
4950
materials_no (str): Numbers of Materials to be deleted
51+
model (RFEM Class, optional): Model to be edited
5052
'''
5153

5254
# Delete from client model

0 commit comments

Comments
 (0)