diff --git a/.vscode/settings.json b/.vscode/settings.json index 2a6e48ed..bc77f25e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -8,5 +8,15 @@ "python.testing.unittestEnabled": false, "python.testing.nosetestsEnabled": false, "python.testing.pytestEnabled": true, - "python.testing.pytestArgs": ["--html=UnitTests\\report.html","--self-contained-html","--cov=RFEM",] + "python.testing.pytestArgs": [ + "--html=UnitTests\\report.html", + "--self-contained-html", + "--cov=RFEM", + ], + "markdownlint.config": { + "MD028": false, + "MD025": { + "front_matter_title": "" + } + } } \ No newline at end of file diff --git a/Examples/BaseSettings_test.py b/Examples/BaseSettings_test.py new file mode 100644 index 00000000..dab6becc --- /dev/null +++ b/Examples/BaseSettings_test.py @@ -0,0 +1,38 @@ +import sys +sys.path.append(".") +from RFEM.Loads.surfaceLoad import * +from RFEM.Loads.memberLoad import * +from RFEM.Loads.nodalLoad import * +from RFEM.LoadCasesAndCombinations.loadCase import * +from RFEM.LoadCasesAndCombinations.staticAnalysisSettings import * +from RFEM.TypesForMembers.memberHinge import * +from RFEM.TypesForNodes.nodalSupport import * +from RFEM.BasicObjects.solidSet import * +from RFEM.BasicObjects.surfaceSet import * +from RFEM.BasicObjects.memberSet import * +from RFEM.BasicObjects.lineSet import * +from RFEM.BasicObjects.opening import * +from RFEM.BasicObjects.solid import * +from RFEM.BasicObjects.surface import * +from RFEM.BasicObjects.member import * +from RFEM.BasicObjects.line import * +from RFEM.BasicObjects.node import * +from RFEM.BasicObjects.thickness import * +from RFEM.BasicObjects.section import * +from RFEM.BasicObjects.material import * +from RFEM.initModel import * +from RFEM.dataTypes import * +from RFEM.enums import * +from RFEM.baseSettings import * + +if __name__ == '__main__': + + clientModel.service.begin_modification() + + # Set Base Settings + BaseSettings(12, GlobalAxesOrientationType.E_GLOBAL_AXES_ORIENTATION_ZUP, LocalAxesOrientationType.E_LOCAL_AXES_ORIENTATION_ZUP, [0.001, 0.002, 0.003, 0.004]) + + print('Ready!') + + clientModel.service.finish_modification() + diff --git a/RFEM/baseSettings.py b/RFEM/baseSettings.py new file mode 100644 index 00000000..bf7a2cbc --- /dev/null +++ b/RFEM/baseSettings.py @@ -0,0 +1,60 @@ +from RFEM.initModel import * +from RFEM.enums import * +from enum import Enum + +class BaseSettings(): + def __init__(self, + gravitational_acceleration: int = 10, + global_axes_orientation = GlobalAxesOrientationType.E_GLOBAL_AXES_ORIENTATION_ZDOWN, + local_axes_orientation = LocalAxesOrientationType.E_LOCAL_AXES_ORIENTATION_ZDOWN, + tolerances = [0.0005, 0.0005, 0.0005, 0.0005], + member_representatives: bool = False, + member_set_representatives: bool = False): + """ + Args: + gravitational_acceleration (int): Gravitational Acceleration (m/sn2) + global_axes_orientation (enum): Global Axes Orientation Enumeration + local_axes_orientation (Enum): Local Axes Orientation Enumeration + tolerances (list): Tolerances + member_representatives (bool): Member Representatives + member_set_representatives (bool): Member Set Representatives + + tolerances = [tolerance_for_nodes, tolerance_for_lines, tolerance_for_surfaces_and_planes, tolerance_for_directions] + """ + # Client model | Load Case + clientObject = clientModel.factory.create('ns0:model_settings_and_options_type') + + # Clears object atributes | Sets all atributes to None + clearAtributes(clientObject) + + # Gravitational Acceleration + clientObject.gravitational_acceleration = gravitational_acceleration + + # Global Axes Orientation + clientObject.global_axes_orientation = global_axes_orientation.name + + # Local Axes Orientation + clientObject.local_axes_orientation = local_axes_orientation.name + + # Tolerances + if len(tolerances) == 4: + pass + else: + raise Exception("WARNING:Expected size of the array. Kindly check the list correctness.") + + clientObject.tolerance_for_nodes = tolerances[0] + clientObject.tolerance_for_lines = tolerances[1] + clientObject.tolerance_for_surfaces_and_planes = tolerances[2] + clientObject.tolerance_for_directions = tolerances[3] + + # Member Representatives + clientObject.member_representatives_active = member_representatives + + # Member Set Representatives + clientObject.member_set_representatives_active = member_set_representatives + + # Add Base Data Settings to client model + clientModel.service.set_model_settings_and_options(clientObject) + + + diff --git a/RFEM/enums.py b/RFEM/enums.py index 334c8529..e83cce53 100644 --- a/RFEM/enums.py +++ b/RFEM/enums.py @@ -717,6 +717,18 @@ class export_to_ifc_export_type(Enum): E_EXPORT_IFC4_REFERENCE_VIEW, E_EXPORT_IFC4_STRUCTURAL_ANALYSIS_VIEW = range(2) +class GlobalAxesOrientationType(Enum): + ''' + Model Settings and Options Global Axes Orientation Type + ''' + E_GLOBAL_AXES_ORIENTATION_ZDOWN, E_GLOBAL_AXES_ORIENTATION_ZUP = range(2) + +class LocalAxesOrientationType(Enum): + ''' + Model Settings and Local Axes Orientation Type + ''' + E_LOCAL_AXES_ORIENTATION_YUPX, E_LOCAL_AXES_ORIENTATION_YUPZ, E_LOCAL_AXES_ORIENTATION_ZDOWN, E_LOCAL_AXES_ORIENTATION_ZUP = range(4) + class ModelType(Enum): ''' Model Type | Enum diff --git a/UnitTests/report.html b/UnitTests/report.html index be4fce83..d75779c7 100644 --- a/UnitTests/report.html +++ b/UnitTests/report.html @@ -429,7 +429,7 @@ }

report.html

-

Report generated on 26-Oct-2021 at 14:06:15 by pytest-html v3.1.1

+

Report generated on 04-Nov-2021 at 13:51:57 by pytest-html v3.1.1

Environment

@@ -448,8 +448,8 @@

Environment

Python 3.9.7

Summary

-

77 tests ran in 95.88 seconds.

- 67 passed, 7 skipped, 10 failed, 0 errors, 0 expected failures, 0 unexpected passes +

1 tests ran in 2.01 seconds.

+ 1 passed, 1 skipped, 0 failed, 0 errors, 0 expected failures, 0 unexpected passes

Results

@@ -460,761 +460,19 @@

Results

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
('d:\\Sources\\RfemPythonWsClient\\UnitTests\\test_BaseSettings_test.py', 14, 'Skipped: all tests still WIP')
- + diff --git a/UnitTests/test_BaseSettings_test.py b/UnitTests/test_BaseSettings_test.py new file mode 100644 index 00000000..628147b5 --- /dev/null +++ b/UnitTests/test_BaseSettings_test.py @@ -0,0 +1,25 @@ +import sys +sys.path.append(".") +import pytest +from RFEM.enums import * +from RFEM.baseSettings import * + + +def test_base_settings_implemented(): + + exist = method_exists(clientModel,'set_model_settings_and_options') + assert exist == False #test fail once method is in T9 master or GM + + +@pytest.mark.skip("all tests still WIP") +def test_baseSettings(): + + clientModel.service.begin_modification() + + # Set Base Settings + BaseSettings(12, GlobalAxesOrientationType.E_GLOBAL_AXES_ORIENTATION_ZUP, LocalAxesOrientationType.E_LOCAL_AXES_ORIENTATION_ZUP, [0.001, 0.002, 0.003, 0.004]) + + print('Ready!') + + clientModel.service.finish_modification() +
Links
FailedUnitTests/test_MemberLoad_test.py::test_member_loads6.54
-
def test_member_loads():

clientModel.service.begin_modification()

# Create Material
Material(1, 'S235')

# Create Thickness
Section(1, 'IPE 300')
Section(2, 'CHS 100x4')

# Create Nodes
Node(1, 0.0, 0.0, 0.0)
Node(2, 4.0, 0.0, 0.0)

Node(3, 0, 5, 0)
Node(4, 4, 5, 0)

Member(1, MemberType.TYPE_BEAM, '1', '2', 0, 1, 1)
Member(2, MemberType.TYPE_BEAM, '3', '4', 0, 2, 2)

# Create Nodal Supports
NodalSupport(1, '1', NodalSupportType.FIXED)
NodalSupport(2, '2', NodalSupportType.FIXED)
NodalSupport(3, '3', NodalSupportType.FIXED)
NodalSupport(4, '4', NodalSupportType.FIXED)

# Create Static Analysis Settings
StaticAnalysisSettings(1, '1. Ordnung', StaticAnalysisType.GEOMETRICALLY_LINEAR)

# Create Load Case
LoadCase(1, 'DEAD', [True, 0.0, 0.0, 1.0])

## Initial Member Load ##
MemberLoad(1, 1, '1', LoadDirectionType.LOAD_DIRECTION_LOCAL_Z, 5000)

## Force Type Member Load with LOAD_DISTRIBUTION_UNIFORM ##
MemberLoad.Force(0, 2, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_UNIFORM, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[5000])

## Force Type Member Load with LOAD_DISTRIBUTION_UNIFORM with Eccentricity ##
MemberLoad.Force(0, 3, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_UNIFORM, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[5000], force_eccentricity=True, params={'eccentricity_y_at_start' : 0.01, 'eccentricity_z_at_start': 0.02})

## Force Type Member Load with LOAD_DISTRIBUTION_UNIFORM_TOTAL ##
MemberLoad.Force(0, 4, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_UNIFORM_TOTAL, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[5000])

## Force Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_1 ##
MemberLoad.Force(0, 5, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_1, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, 5000, 1.2])

## Force Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_N ##
MemberLoad.Force(0, 6, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_N, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, False, 5000, 2, 1, 2])

## Force Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_2x2 ##
MemberLoad.Force(0, 7, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_2x2, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, False, False, 5000, 1, 2, 3])

## Force Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_2x ##
MemberLoad.Force(0, 8, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_2, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, False, 5000, 6000, 1, 2])

## Force Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_VARYING ##
MemberLoad.Force(0, 9, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_VARYING, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[[1, 1, 4000], [2, 1, 5000]])

## Force Type Member Load with LOAD_DISTRIBUTION_TRAPEZOIDAL ##
MemberLoad.Force(0, 10, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_TRAPEZOIDAL, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, False, 4000, 8000, 1, 2])

## Force Type Member Load with LOAD_DISTRIBUTION_TAPERED ##
MemberLoad.Force(0, 11, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_TAPERED, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, False, 4000, 8000, 1, 2])

## Force Type Member Load with LOAD_DISTRIBUTION_PARABOLIC ##
MemberLoad.Force(0, 12, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_PARABOLIC, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[4000, 8000, 12000])

## Force Type Member Load with LOAD_DISTRIBUTION_VARYING ##
MemberLoad.Force(0, 13, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_VARYING, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[[1, 1, 4000], [2, 1, 5000]])

## Force Type Member Load with LOAD_DISTRIBUTION_VARYING_IN_Z ##
MemberLoad.Force(0, 14, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_VARYING_IN_Z, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[[1, 1, 4000], [2, 1, 5000]])


## Moment Type Member Load with LOAD_DISTRIBUTION_UNIFORM ##
MemberLoad.Moment(0, 15, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_UNIFORM, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[5000])

## Moment Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_1 ##
MemberLoad.Moment(0, 16, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_1, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, 5000, 1.2])

## Moment Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_N ##
MemberLoad.Moment(0, 17, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_N, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, False, 5000, 2, 1, 2])

## Moment Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_2x2 ##
MemberLoad.Moment(0, 18, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_2x2, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, False, False, 5000, 1, 2, 3])

## Moment Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_2x ##
MemberLoad.Moment(0, 19, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_2, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, False, 5000, 6000, 1, 2])

## Moment Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_VARYING ##
MemberLoad.Moment(0, 20, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_VARYING, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[[1, 1, 4000], [2, 1, 5000]])

## Moment Type Member Load with LOAD_DISTRIBUTION_TRAPEZOIDAL ##
MemberLoad.Moment(0, 21, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_TRAPEZOIDAL, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, False, 4000, 8000, 1, 2])

## Moment Type Member Load with LOAD_DISTRIBUTION_TAPERED ##
MemberLoad.Moment(0, 22, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_TAPERED, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, False, 4000, 8000, 1, 2])

## Moment Type Member Load with LOAD_DISTRIBUTION_PARABOLIC ##
MemberLoad.Moment(0, 23, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_PARABOLIC, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[4000, 8000, 12000])

## Moment Type Member Load with LOAD_DISTRIBUTION_VARYING ##
MemberLoad.Moment(0, 24, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_VARYING, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[[1, 1, 4000], [2, 1, 5000]])


## Mass Type Member Load ##
MemberLoad.Mass(0, 25, 1, mass_components=[1000])


## Temperature Type Member Load with LOAD_DISTRIBUTION_UNIFORM ##
MemberLoad.Temperature(0, 26, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_UNIFORM, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[18, 2])

## Temperature Type Member Load with LOAD_DISTRIBUTION_TRAPEZOIDAL ##
MemberLoad.Temperature(0, 27, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_TRAPEZOIDAL, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[12, 16, 18, 20, False, False, 1, 2])

## Temperature Type Member Load with LOAD_DISTRIBUTION_TAPERED ##
MemberLoad.Temperature(0, 28, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_TAPERED, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[12, 16, 18, 20, False, False, 1, 2])

## Temperature Type Member Load with LOAD_DISTRIBUTION_PARABOLIC ##
MemberLoad.Temperature(0, 29, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_PARABOLIC, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[1, 2, 3, 4, 5, 6])

## Temperature Type Member Load with LOAD_DISTRIBUTION_VARYING ##
MemberLoad.Temperature(0, 30, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_VARYING, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[[1, 1, 285, 289], [2, 1, 293, 297]])


## TemperatureChange Type Member Load with LOAD_DISTRIBUTION_UNIFORM ##
MemberLoad.TemperatureChange(0, 31, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_UNIFORM, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[18, 2])

## TemperatureChange Type Member Load with LOAD_DISTRIBUTION_TRAPEZOIDAL ##
MemberLoad.TemperatureChange(0, 32, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_TRAPEZOIDAL, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[12, 16, 18, 20, False, False, 1, 2])

## TemperatureChange Type Member Load with LOAD_DISTRIBUTION_TAPERED ##
MemberLoad.TemperatureChange(0, 33, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_TAPERED, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[12, 16, 18, 20, False, False, 1, 2])

## TemperatureChange Type Member Load with LOAD_DISTRIBUTION_PARABOLIC ##
MemberLoad.TemperatureChange(0, 34, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_PARABOLIC, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[1, 2, 3, 4, 5, 6])

## TemperatureChange Type Member Load with LOAD_DISTRIBUTION_VARYING ##
MemberLoad.TemperatureChange(0, 35, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_VARYING, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[[1, 1, 285, 289], [2, 1, 293, 297]])

## AxialStrain Type Member Load with LOAD_DISTRIBUTION_UNIFORM ##
MemberLoad.AxialStrain(0, 36, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_UNIFORM, MemberLoadDirection.LOAD_DIRECTION_LOCAL_X, load_parameter=[0.005])

## AxialStrain Type Member Load with LOAD_DISTRIBUTION_TRAPEZOIDAL ##
MemberLoad.AxialStrain(0, 37, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_TRAPEZOIDAL, MemberLoadDirection.LOAD_DIRECTION_LOCAL_X, load_parameter=[12, 16, False, False, 1, 2])

## AxialStrain Type Member Load with LOAD_DISTRIBUTION_TAPERED ##
MemberLoad.AxialStrain(0, 38, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_TAPERED, MemberLoadDirection.LOAD_DIRECTION_LOCAL_X, load_parameter=[12, 16, False, False, 1, 2])

## AxialStrain Type Member Load with LOAD_DISTRIBUTION_PARABOLIC ##
MemberLoad.AxialStrain(0, 39, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_PARABOLIC, MemberLoadDirection.LOAD_DIRECTION_LOCAL_X, load_parameter=[1, 2, 3])

## AxialStrain Type Member Load with LOAD_DISTRIBUTION_VARYING ##
MemberLoad.AxialStrain(0, 40, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_VARYING, MemberLoadDirection.LOAD_DIRECTION_LOCAL_X, load_parameter=[[1, 1, 285, 289], [2, 1, 293, 297]])


## AxialDisplacement Type Member Load ##
MemberLoad.AxialDisplacement(0, 41, 1, '1', MemberLoadDirection.LOAD_DIRECTION_LOCAL_X, 0.05)


## Precamber Type Member Load with LOAD_DISTRIBUTION_UNIFORM ##
MemberLoad.Precamber(0, 42, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_UNIFORM, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[0.005])

## Precamber Type Member Load with LOAD_DISTRIBUTION_TRAPEZOIDAL ##
MemberLoad.Precamber(0, 43, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_TRAPEZOIDAL, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[12, 16, False, False, 1, 2])

## Precamber Type Member Load with LOAD_DISTRIBUTION_TAPERED ##
MemberLoad.Precamber(0, 44, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_TAPERED, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[12, 16, False, False, 1, 2])

## Precamber Type Member Load with LOAD_DISTRIBUTION_PARABOLIC ##
MemberLoad.Precamber(0, 45, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_PARABOLIC, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[1, 2, 3])

## Precamber Type Member Load with LOAD_DISTRIBUTION_VARYING ##
MemberLoad.Precamber(0, 46, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_VARYING, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[[1, 1, 285], [2, 1, 293]])


## InitialPrestress Type Member Load ##
MemberLoad.InitialPrestress(0, 47, 1, '1', MemberLoadDirection.LOAD_DIRECTION_LOCAL_X, 50)


## Displacement Type Member Load with LOAD_DISTRIBUTION_UNIFORM ##
MemberLoad.Displacement(0, 48, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_UNIFORM, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, [0.5])

## Displacement Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_1 ##
MemberLoad.Displacement(0, 49, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_1, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, [0.5, False, 1])

## Displacement Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_N ##
MemberLoad.Displacement(0, 50, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_N, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, [0.5, False, False, 1, 2])

## Displacement Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_2x2 ##
MemberLoad.Displacement(0, 51, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_2x2, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, [0.5, False, False, False, 1, 2, 3])

## Displacement Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_2 ##
MemberLoad.Displacement(0, 52, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_2, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, [0.5, 0.6, False, False, 1, 2])

## Displacement Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_VARYING ##
MemberLoad.Displacement(0, 53, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_VARYING, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, [[0.001, 1, 1], [0.002, 2, 1]])

## Displacement Type Member Load with LOAD_DISTRIBUTION_TRAPEZOIDAL ##
MemberLoad.Displacement(0, 54, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_TRAPEZOIDAL, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[12, 16, False, False, 1, 2])

## Displacement Type Member Load with LOAD_DISTRIBUTION_TAPERED ##
MemberLoad.Displacement(0, 55, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_TAPERED, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[12, 16, False, False, 1, 2])

## Displacement Type Member Load with LOAD_DISTRIBUTION_PARABOLIC ##
MemberLoad.Displacement(0, 56, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_PARABOLIC, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[1, 2, 3])

## Displacement Type Member Load with LOAD_DISTRIBUTION_VARYING ##
MemberLoad.Displacement(0, 57, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_VARYING, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[[1, 1, 285], [2, 1, 293]])


## Rotation Type Member Load with LOAD_DISTRIBUTION_UNIFORM ##
MemberLoad.Rotation(0, 58, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_UNIFORM, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, [0.5])

## Rotation Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_1 ##
MemberLoad.Rotation(0, 59, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_1, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, [0.5, False, 1])

## Rotation Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_N ##
MemberLoad.Rotation(0, 60, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_N, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, [0.5, False, False, 1, 2])

## Rotation Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_2x2 ##
MemberLoad.Rotation(0, 61, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_2x2, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, [0.5, False, False, False, 1, 2, 3])

## Rotation Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_2 ##
MemberLoad.Rotation(0, 62, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_2, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, [0.5, 0.6, False, False, 1, 2])

## Rotation Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_VARYING ##
MemberLoad.Rotation(0, 63, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_VARYING, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, [[1, 1, 285], [2, 1, 293]])

## Rotation Type Member Load with LOAD_DISTRIBUTION_TRAPEZOIDAL ##
MemberLoad.Rotation(0, 64, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_TRAPEZOIDAL, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[12, 16, False, False, 1, 2])

## Rotation Type Member Load with LOAD_DISTRIBUTION_TAPERED ##
MemberLoad.Rotation(0, 65, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_TAPERED, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[12, 16, False, False, 1, 2])

## Rotation Type Member Load with LOAD_DISTRIBUTION_PARABOLIC ##
MemberLoad.Rotation(0, 66, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_PARABOLIC, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[1, 2, 3])

## Rotation Type Member Load with LOAD_DISTRIBUTION_VARYING ##
MemberLoad.Rotation(0, 67, 1, '1', MemberLoadDistribution.LOAD_DISTRIBUTION_VARYING, MemberLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[[1, 1, 285], [2, 1, 293]])

## PipeContentFull Type Member Load ##
MemberLoad.PipeContentFull(0, 68, 1, '2', MemberLoadDirectionOrientation.LOAD_DIRECTION_FORWARD, 50)

> Calculate_all()

UnitTests\test_MemberLoad_test.py:273:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
RFEM\initModel.py:187: in Calculate_all
clientModel.service.calculate_all(generateXmlSolverInput)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:566: in __call__
return client.invoke(args, kwargs)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:708: in invoke
result = self.send(soapenv, timeout=timeout)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:756: in send
return self.process_reply(reply.message, None, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <suds.client._SoapClient object at 0x0000023F0307E520>
reply = b'<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:so...ultcode><faultstring>Plausibility error</faultstring><faultactor/><detail/></soap:Fault></soap:Body></soap:Envelope>\n'
status = <HTTPStatus.OK: 200>, description = None

def process_reply(self, reply, status, description):
"""
Process a web service operation SOAP reply.

Depending on how the ``retxml`` option is set, may return the SOAP
reply XML or process it and return the Python object representing the
returned value.

@param reply: The SOAP reply envelope.
@type reply: I{bytes}
@param status: The HTTP status code (None indicates httplib.OK).
@type status: int|I{None}
@param description: Additional status description.
@type description: str
@return: The invoked web service operation return value.
@rtype: I{builtin}|I{subclass of} L{Object}|I{bytes}|I{None}

"""
if status is None:
status = http.client.OK
debug_message = "Reply HTTP status - %d" % (status,)
if status in (http.client.ACCEPTED, http.client.NO_CONTENT):
log.debug(debug_message)
return
#TODO: Consider whether and how to allow plugins to handle error,
# httplib.ACCEPTED & httplib.NO_CONTENT replies as well as successful
# ones.
if status == http.client.OK:
log.debug("%s\n%s", debug_message, reply)
else:
log.debug("%s - %s\n%s", debug_message, description, reply)

plugins = PluginContainer(self.options.plugins)
ctx = plugins.message.received(reply=reply)
reply = ctx.reply

# SOAP standard states that SOAP errors must be accompanied by HTTP
# status code 500 - internal server error:
#
# From SOAP 1.1 specification:
# In case of a SOAP error while processing the request, the SOAP HTTP
# server MUST issue an HTTP 500 "Internal Server Error" response and
# include a SOAP message in the response containing a SOAP Fault
# element (see section 4.4) indicating the SOAP processing error.
#
# From WS-I Basic profile:
# An INSTANCE MUST use a "500 Internal Server Error" HTTP status code
# if the response message is a SOAP Fault.
replyroot = None
if status in (http.client.OK, http.client.INTERNAL_SERVER_ERROR):
replyroot = _parse(reply)
plugins.message.parsed(reply=replyroot)
fault = self.__get_fault(replyroot)
if fault:
if status != http.client.INTERNAL_SERVER_ERROR:
log.warning("Web service reported a SOAP processing fault "
"using an unexpected HTTP status code %d. Reporting "
"as an internal server error.", status)
if self.options.faults:
> raise WebFault(fault, replyroot)
E suds.WebFault: Server raised fault: 'Plausibility error'

C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:817: WebFault
-------------------------------Captured log call--------------------------------
WARNING suds.client:client.py:813 Web service reported a SOAP processing fault using an unexpected HTTP status code 200. Reporting as an internal server error.
FailedUnitTests/test_MemberSetLoad_test.py::test_member_set_load6.00
-
def test_member_set_load():
clientModel.service.begin_modification()

# Create Material
Material(1, 'S235')

# Create Section
Section(1, 'IPE 300')

# Create Nodes
Node(1, 0.0, 0.0, 0.0)
Node(2, 2, 0.0, 0.0)
Node(3, 4, 0, 0)

# Create Member
Member(1, MemberType.TYPE_BEAM, '1', '2', 0, 1, 1)
Member(2, MemberType.TYPE_BEAM, '2', '3', 0, 1, 1)

# Create Member Set
MemberSet(1, '1 2', SetType.SET_TYPE_CONTINUOUS)

# Create Nodal Supports
NodalSupport(1, '1', NodalSupportType.FIXED)
NodalSupport(2, '3', NodalSupportType.FIXED)

# Create Static Analysis Settings
StaticAnalysisSettings(1, '1. Order', StaticAnalysisType.GEOMETRICALLY_LINEAR)

# Create Load Case
LoadCase(1, 'DEAD', [True, 0.0, 0.0, 1.0])

## Initial Member Set Load ##
MemberSetLoad(1, 1, '1', LoadDirectionType.LOAD_DIRECTION_LOCAL_Z, 5000)

## Force Type Member Set Load with LOAD_DISTRIBUTION_UNIFORM ##
MemberSetLoad.Force(0, 2, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_UNIFORM, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[5000])

## Force Type Member Load with LOAD_DISTRIBUTION_UNIFORM with Eccentricity ##
MemberSetLoad.Force(0, 3, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_UNIFORM, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[5000], force_eccentricity=True, params={'eccentricity_y_at_start' : 0.01, 'eccentricity_z_at_start': 0.02})


## Force Type Member Load with LOAD_DISTRIBUTION_UNIFORM_TOTAL ##
MemberSetLoad.Force(0, 4, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_UNIFORM_TOTAL, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[5000])

## Force Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_1 ##
MemberSetLoad.Force(0, 5, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_1, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, 5000, 1.2])

## Force Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_N ##
MemberSetLoad.Force(0, 6, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_N, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, False, 5000, 2, 1, 2])

## Force Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_2x2 ##
MemberSetLoad.Force(0, 7, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_2x2, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, False, False, 5000, 1, 2, 3])

## Force Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_2x ##
MemberSetLoad.Force(0, 8, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_2, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, False, 5000, 6000, 1, 2])

## Force Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_VARYING ##
MemberSetLoad.Force(0, 9, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_VARYING, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[[1, 1, 4000], [2, 1, 5000]])

## Force Type Member Load with LOAD_DISTRIBUTION_TRAPEZOIDAL ##
MemberSetLoad.Force(0, 10, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_TRAPEZOIDAL, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, False, 4000, 8000, 1, 2])

## Force Type Member Load with LOAD_DISTRIBUTION_TAPERED ##
MemberSetLoad.Force(0, 11, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_TAPERED, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, False, 4000, 8000, 1, 2])

## Force Type Member Load with LOAD_DISTRIBUTION_PARABOLIC ##
MemberSetLoad.Force(0, 12, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_PARABOLIC, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[4000, 8000, 12000])

## Force Type Member Load with LOAD_DISTRIBUTION_VARYING ##
MemberSetLoad.Force(0, 13, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_VARYING, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[[1, 1, 4000], [2, 1, 5000]])

## Force Type Member Load with LOAD_DISTRIBUTION_VARYING_IN_Z ##
MemberSetLoad.Force(0, 14, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_VARYING_IN_Z, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[[1, 1, 4000], [2, 1, 5000]])


## Moment Type Member Load with LOAD_DISTRIBUTION_UNIFORM ##
MemberSetLoad.Moment(0, 15, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_UNIFORM, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[5000])

## Moment Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_1 ##
MemberSetLoad.Moment(0, 16, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_1, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, 5000, 1.2])

## Moment Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_N ##
MemberSetLoad.Moment(0, 17, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_N, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, False, 5000, 2, 1, 2])

## Moment Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_2x2 ##
MemberSetLoad.Moment(0, 18, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_2x2, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, False, False, 5000, 1, 2, 3])

## Moment Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_2x ##
MemberSetLoad.Moment(0, 19, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_2, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, False, 5000, 6000, 1, 2])

## Moment Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_VARYING ##
MemberSetLoad.Moment(0, 20, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_VARYING, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[[1, 1, 4000], [2, 1, 5000]])

## Moment Type Member Load with LOAD_DISTRIBUTION_TRAPEZOIDAL ##
MemberSetLoad.Moment(0, 21, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_TRAPEZOIDAL, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, False, 4000, 8000, 1, 2])

## Moment Type Member Load with LOAD_DISTRIBUTION_TAPERED ##
MemberSetLoad.Moment(0, 22, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_TAPERED, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[False, False, 4000, 8000, 1, 2])

## Moment Type Member Load with LOAD_DISTRIBUTION_PARABOLIC ##
MemberSetLoad.Moment(0, 23, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_PARABOLIC, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[4000, 8000, 12000])

## Moment Type Member Load with LOAD_DISTRIBUTION_VARYING ##
MemberSetLoad.Moment(0, 24, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_VARYING, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[[1, 1, 4000], [2, 1, 5000]])


## Mass Type Member Load ##
MemberSetLoad.Mass(0, 25, 1, mass_components=[1000])


## Temperature Type Member Load with LOAD_DISTRIBUTION_UNIFORM ##
MemberSetLoad.Temperature(0, 26, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_UNIFORM, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[18, 2])

## Temperature Type Member Load with LOAD_DISTRIBUTION_TRAPEZOIDAL ##
MemberSetLoad.Temperature(0, 27, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_TRAPEZOIDAL, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[12, 16, 18, 20, False, False, 1, 2])

## Temperature Type Member Load with LOAD_DISTRIBUTION_TAPERED ##
MemberSetLoad.Temperature(0, 28, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_TAPERED, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[12, 16, 18, 20, False, False, 1, 2])

## Temperature Type Member Load with LOAD_DISTRIBUTION_PARABOLIC ##
MemberSetLoad.Temperature(0, 29, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_PARABOLIC, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[1, 2, 3, 4, 5, 6])

## Temperature Type Member Load with LOAD_DISTRIBUTION_VARYING ##
MemberSetLoad.Temperature(0, 30, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_VARYING, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[[1, 1, 285, 289], [2, 1, 293, 297]])


## TemperatureChange Type Member Load with LOAD_DISTRIBUTION_UNIFORM ##
MemberSetLoad.TemperatureChange(0, 31, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_UNIFORM, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[18, 2])

## TemperatureChange Type Member Load with LOAD_DISTRIBUTION_TRAPEZOIDAL ##
MemberSetLoad.TemperatureChange(0, 32, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_TRAPEZOIDAL, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[12, 16, 18, 20, False, False, 1, 2])

## TemperatureChange Type Member Load with LOAD_DISTRIBUTION_TAPERED ##
MemberSetLoad.TemperatureChange(0, 33, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_TAPERED, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[12, 16, 18, 20, False, False, 1, 2])

## TemperatureChange Type Member Load with LOAD_DISTRIBUTION_PARABOLIC ##
MemberSetLoad.TemperatureChange(0, 34, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_PARABOLIC, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[1, 2, 3, 4, 5, 6])

## TemperatureChange Type Member Load with LOAD_DISTRIBUTION_VARYING ##
MemberSetLoad.TemperatureChange(0, 35, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_VARYING, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[[1, 1, 285, 289], [2, 1, 293, 297]])


## AxialStrain Type Member Load with LOAD_DISTRIBUTION_UNIFORM ##
MemberSetLoad.AxialStrain(0, 36, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_UNIFORM, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_X, load_parameter=[0.005])

## AxialStrain Type Member Load with LOAD_DISTRIBUTION_TRAPEZOIDAL ##
MemberSetLoad.AxialStrain(0, 37, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_TRAPEZOIDAL, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_X, load_parameter=[12, 16, False, False, 1, 2])

## AxialStrain Type Member Load with LOAD_DISTRIBUTION_TAPERED ##
MemberSetLoad.AxialStrain(0, 38, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_TAPERED, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_X, load_parameter=[12, 16, False, False, 1, 2])

## AxialStrain Type Member Load with LOAD_DISTRIBUTION_PARABOLIC ##
MemberSetLoad.AxialStrain(0, 39, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_PARABOLIC, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_X, load_parameter=[1, 2, 3])

## AxialStrain Type Member Load with LOAD_DISTRIBUTION_VARYING ##
MemberSetLoad.AxialStrain(0, 40, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_VARYING, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_X, load_parameter=[[1, 1, 285, 289], [2, 1, 293, 297]])


## AxialDisplacement Type Member Load ##
MemberSetLoad.AxialDisplacement(0, 41, 1, '1', MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_X, 0.05)


## Precamber Type Member Load with LOAD_DISTRIBUTION_UNIFORM ##
MemberSetLoad.Precamber(0, 42, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_UNIFORM, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[0.005])

## Precamber Type Member Load with LOAD_DISTRIBUTION_TRAPEZOIDAL ##
MemberSetLoad.Precamber(0, 43, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_TRAPEZOIDAL, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[12, 16, False, False, 1, 2])

## Precamber Type Member Load with LOAD_DISTRIBUTION_TAPERED ##
MemberSetLoad.Precamber(0, 44, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_TAPERED, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[12, 16, False, False, 1, 2])

## Precamber Type Member Load with LOAD_DISTRIBUTION_PARABOLIC ##
MemberSetLoad.Precamber(0, 45, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_PARABOLIC, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[1, 2, 3])

## Precamber Type Member Load with LOAD_DISTRIBUTION_VARYING ##
MemberSetLoad.Precamber(0, 46, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_VARYING, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[[1, 1, 285], [2, 1, 293]])


## InitialPrestress Type Member Load ##
MemberSetLoad.InitialPrestress(0, 47, 1, '1', MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_X, 50)


## Displacement Type Member Load with LOAD_DISTRIBUTION_UNIFORM ##
MemberSetLoad.Displacement(0, 48, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_UNIFORM, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, [0.5])

## Displacement Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_1 ##
MemberSetLoad.Displacement(0, 49, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_1, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, [0.5, False, 1])

## Displacement Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_N ##
MemberSetLoad.Displacement(0, 50, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_N, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, [0.5, False, False, 1, 2])

## Displacement Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_2x2 ##
MemberSetLoad.Displacement(0, 51, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_2x2, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, [0.5, False, False, False, 1, 2, 3])

## Displacement Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_2 ##
MemberSetLoad.Displacement(0, 52, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_2, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, [0.5, 0.6, False, False, 1, 2])

## Displacement Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_VARYING ##
MemberSetLoad.Displacement(0, 53, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_VARYING, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, [[0.001, 1, 1], [0.002, 2, 1]])

## Displacement Type Member Load with LOAD_DISTRIBUTION_TRAPEZOIDAL ##
MemberSetLoad.Displacement(0, 54, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_TRAPEZOIDAL, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[12, 16, False, False, 1, 2])

## Displacement Type Member Load with LOAD_DISTRIBUTION_TAPERED ##
MemberSetLoad.Displacement(0, 55, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_TAPERED, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[12, 16, False, False, 1, 2])

## Displacement Type Member Load with LOAD_DISTRIBUTION_PARABOLIC ##
MemberSetLoad.Displacement(0, 56, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_PARABOLIC, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[1, 2, 3])

## Displacement Type Member Load with LOAD_DISTRIBUTION_VARYING ##
MemberSetLoad.Displacement(0, 57, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_VARYING, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[[1, 1, 285], [2, 1, 293]])


## Rotation Type Member Load with LOAD_DISTRIBUTION_UNIFORM ##
MemberSetLoad.Rotation(0, 58, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_UNIFORM, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, [0.5])

## Rotation Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_1 ##
MemberSetLoad.Rotation(0, 59, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_1, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, [0.5, False, 1])

## Rotation Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_N ##
MemberSetLoad.Rotation(0, 60, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_N, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, [0.5, False, False, 1, 2])

## Rotation Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_2x2 ##
MemberSetLoad.Rotation(0, 61, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_2x2, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, [0.5, False, False, False, 1, 2, 3])

## Rotation Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_2 ##
MemberSetLoad.Rotation(0, 62, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_2, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, [0.5, 0.6, False, False, 1, 2])

## Rotation Type Member Load with LOAD_DISTRIBUTION_CONCENTRATED_VARYING ##
MemberSetLoad.Rotation(0, 63, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_CONCENTRATED_VARYING, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, [[1, 1, 285], [2, 1, 293]])

## Rotation Type Member Load with LOAD_DISTRIBUTION_TRAPEZOIDAL ##
MemberSetLoad.Rotation(0, 64, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_TRAPEZOIDAL, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[12, 16, False, False, 1, 2])

## Rotation Type Member Load with LOAD_DISTRIBUTION_TAPERED ##
MemberSetLoad.Rotation(0, 65, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_TAPERED, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[12, 16, False, False, 1, 2])

## Rotation Type Member Load with LOAD_DISTRIBUTION_PARABOLIC ##
MemberSetLoad.Rotation(0, 66, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_PARABOLIC, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[1, 2, 3])

## Rotation Type Member Load with LOAD_DISTRIBUTION_VARYING ##
MemberSetLoad.Rotation(0, 67, 1, '1', MemberSetLoadDistribution.LOAD_DISTRIBUTION_VARYING, MemberSetLoadDirection.LOAD_DIRECTION_LOCAL_Z, load_parameter=[[1, 1, 285], [2, 1, 293]])

> Calculate_all()

UnitTests\test_MemberSetLoad_test.py:271:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
RFEM\initModel.py:187: in Calculate_all
clientModel.service.calculate_all(generateXmlSolverInput)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:566: in __call__
return client.invoke(args, kwargs)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:708: in invoke
result = self.send(soapenv, timeout=timeout)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:756: in send
return self.process_reply(reply.message, None, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <suds.client._SoapClient object at 0x0000023F0338B100>
reply = b'<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:so...ultcode><faultstring>Plausibility error</faultstring><faultactor/><detail/></soap:Fault></soap:Body></soap:Envelope>\n'
status = <HTTPStatus.OK: 200>, description = None

def process_reply(self, reply, status, description):
"""
Process a web service operation SOAP reply.

Depending on how the ``retxml`` option is set, may return the SOAP
reply XML or process it and return the Python object representing the
returned value.

@param reply: The SOAP reply envelope.
@type reply: I{bytes}
@param status: The HTTP status code (None indicates httplib.OK).
@type status: int|I{None}
@param description: Additional status description.
@type description: str
@return: The invoked web service operation return value.
@rtype: I{builtin}|I{subclass of} L{Object}|I{bytes}|I{None}

"""
if status is None:
status = http.client.OK
debug_message = "Reply HTTP status - %d" % (status,)
if status in (http.client.ACCEPTED, http.client.NO_CONTENT):
log.debug(debug_message)
return
#TODO: Consider whether and how to allow plugins to handle error,
# httplib.ACCEPTED & httplib.NO_CONTENT replies as well as successful
# ones.
if status == http.client.OK:
log.debug("%s\n%s", debug_message, reply)
else:
log.debug("%s - %s\n%s", debug_message, description, reply)

plugins = PluginContainer(self.options.plugins)
ctx = plugins.message.received(reply=reply)
reply = ctx.reply

# SOAP standard states that SOAP errors must be accompanied by HTTP
# status code 500 - internal server error:
#
# From SOAP 1.1 specification:
# In case of a SOAP error while processing the request, the SOAP HTTP
# server MUST issue an HTTP 500 "Internal Server Error" response and
# include a SOAP message in the response containing a SOAP Fault
# element (see section 4.4) indicating the SOAP processing error.
#
# From WS-I Basic profile:
# An INSTANCE MUST use a "500 Internal Server Error" HTTP status code
# if the response message is a SOAP Fault.
replyroot = None
if status in (http.client.OK, http.client.INTERNAL_SERVER_ERROR):
replyroot = _parse(reply)
plugins.message.parsed(reply=replyroot)
fault = self.__get_fault(replyroot)
if fault:
if status != http.client.INTERNAL_SERVER_ERROR:
log.warning("Web service reported a SOAP processing fault "
"using an unexpected HTTP status code %d. Reporting "
"as an internal server error.", status)
if self.options.faults:
> raise WebFault(fault, replyroot)
E suds.WebFault: Server raised fault: 'Plausibility error'

C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:817: WebFault
-------------------------------Captured log call--------------------------------
WARNING suds.client:client.py:813 Web service reported a SOAP processing fault using an unexpected HTTP status code 200. Reporting as an internal server error.
FailedUnitTests/test_MembraneWithoutTensionSurface_Test.py::test_membrane_without_tension_surface1.48
-
def test_membrane_without_tension_surface():

clientModel.service.begin_modification('new')

# Testing the standard surface function
Node(1, 0, -30, 0), Node(2, 10, -30, 0), Node(3, 10, -20, 0), Node(4, 0, -20, 0)
Line(1, '1 2'), Line(2, '2 3'), Line(3, '3 4'), Line(4, '4 1')
Material(name='C30/37')
Thickness()
Surface()

# Standard planar Surface
Node(5, 0, -15, 0), Node(6, 10, -15, 0), Node(7, 10, -5, 0), Node(8, 0, -5, 0)
Line(5, '5 6'), Line(6, '6 7'), Line(7, '7 8'), Line(8, '8 5')
Surface.WithoutMemberaneTension(Surface, 2, SurfaceGeometry.GEOMETRY_PLANE, boundary_lines_no= '5 6 7 8')

# Standard NURBS Surface

## Define Nodes
Node(9, 0.0, 0.0, 0.0)
Node(10, 5.0, 0.0, -2.5)
Node(11, 10.0, 0.0, 0.0)
Node(12, 0.0, 10.0, 0.0)
Node(13, 5.0, 10.0, -2.5)
Node(14, 10.0, 10.0, 0.0)
Node(15, 0.0, 5.0, -2,5)
Node(16, 10.0, 5.0, -2.5)

## NURBS-Curve Definition
Line.NURBS(Line, 9, '9 10 11', control_points= [[0, 0, 0], [5, 0, -2.5], [10, 0, 0]], weights= [1, 1, 1],params= {'nurbs_order':3})
Line.NURBS(Line, 10, '12 13 14', control_points= [[0, 10, 0], [5, 10, -2.5], [10, 10, 0]], weights= [1, 1, 1], params= {'nurbs_order':3})
Line.NURBS(Line, 11, '9 15 12', control_points= [[0, 0, 0], [0, 5, -2.5], [0, 10, 0]], weights= [1, 1, 1], params= {'nurbs_order':3})
Line.NURBS(Line, 12, '11 16 14', control_points= [[10, 0, 0], [10, 5, -2.5], [10, 5, -2.5]], weights= [1, 1, 1], params= {'nurbs_order':3})

# Surfaces Definition
Surface.WithoutMemberaneTension(Surface, 3, SurfaceGeometry.GEOMETRY_NURBS, [3,3,3,3], '9 10 11 12')

# Standard Quadrangle

# Define Nodes
Node(17, 0, 15, 0)
Node(18, 10, 15, 0)
Node(19, 0, 20, 0)
Node(20, 10, 20, 0)

# Boundary Lines
Line.Arc(1, 13, [17, 18], [5, 15, -2])
Line.Arc(1, 14, [19, 20], [5, 20, -2])
Line(15, '17 19')
Line(16, '18 20')

# Quadrangle Defintion
> Surface.WithoutMemberaneTension(Surface, 4, SurfaceGeometry.GEOMETRY_QUADRANGLE, [17, 18, 19, 20], '13 14 15 16')

UnitTests\test_MembraneWithoutTensionSurface_Test.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
RFEM\BasicObjects\surface.py:252: in WithoutMemberaneTension
self.__CreateGeometryAndSetToModel(self)
RFEM\BasicObjects\surface.py:375: in __CreateGeometryAndSetToModel
clientModel.service.set_surface(self.clientObject)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:566: in __call__
return client.invoke(args, kwargs)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:708: in invoke
result = self.send(soapenv, timeout=timeout)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:756: in send
return self.process_reply(reply.message, None, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <suds.client._SoapClient object at 0x0000023F03396C10>
reply = b'<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:so...e enter a point that lies in the plane.</faultstring><faultactor/><detail/></soap:Fault></soap:Body></soap:Envelope>\n'
status = <HTTPStatus.OK: 200>, description = None

def process_reply(self, reply, status, description):
"""
Process a web service operation SOAP reply.

Depending on how the ``retxml`` option is set, may return the SOAP
reply XML or process it and return the Python object representing the
returned value.

@param reply: The SOAP reply envelope.
@type reply: I{bytes}
@param status: The HTTP status code (None indicates httplib.OK).
@type status: int|I{None}
@param description: Additional status description.
@type description: str
@return: The invoked web service operation return value.
@rtype: I{builtin}|I{subclass of} L{Object}|I{bytes}|I{None}

"""
if status is None:
status = http.client.OK
debug_message = "Reply HTTP status - %d" % (status,)
if status in (http.client.ACCEPTED, http.client.NO_CONTENT):
log.debug(debug_message)
return
#TODO: Consider whether and how to allow plugins to handle error,
# httplib.ACCEPTED & httplib.NO_CONTENT replies as well as successful
# ones.
if status == http.client.OK:
log.debug("%s\n%s", debug_message, reply)
else:
log.debug("%s - %s\n%s", debug_message, description, reply)

plugins = PluginContainer(self.options.plugins)
ctx = plugins.message.received(reply=reply)
reply = ctx.reply

# SOAP standard states that SOAP errors must be accompanied by HTTP
# status code 500 - internal server error:
#
# From SOAP 1.1 specification:
# In case of a SOAP error while processing the request, the SOAP HTTP
# server MUST issue an HTTP 500 "Internal Server Error" response and
# include a SOAP message in the response containing a SOAP Fault
# element (see section 4.4) indicating the SOAP processing error.
#
# From WS-I Basic profile:
# An INSTANCE MUST use a "500 Internal Server Error" HTTP status code
# if the response message is a SOAP Fault.
replyroot = None
if status in (http.client.OK, http.client.INTERNAL_SERVER_ERROR):
replyroot = _parse(reply)
plugins.message.parsed(reply=replyroot)
fault = self.__get_fault(replyroot)
if fault:
if status != http.client.INTERNAL_SERVER_ERROR:
log.warning("Web service reported a SOAP processing fault "
"using an unexpected HTTP status code %d. Reporting "
"as an internal server error.", status)
if self.options.faults:
> raise WebFault(fault, replyroot)
E suds.WebFault: Server raised fault: 'Object: Surface No. 4
E Attribute: Grid origin
E Error: Please enter a point that lies in the plane.'

C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:817: WebFault
-------------------------------Captured log call--------------------------------
WARNING suds.client:client.py:813 Web service reported a SOAP processing fault using an unexpected HTTP status code 200. Reporting as an internal server error.
FailedUnitTests/test_NodalLoad_test.py::test_nodal_load3.15
-
def test_nodal_load():

clientModel.service.begin_modification()

# Create Material
Material(1, 'S235')

# Create Section
Section(1, 'IPE 300', 1)

# Create Nodes
Node(1, 0, 0, 0)
Node(2, 0, 0, -5)

Node(3, 3, 0, 0)
Node(4, 3, 0, -5)

Node(5, 6, 0, 0)
Node(6, 6, 0, -5)

Node(7, 9, 0, 0)
Node(8, 9, 0, -5)

# Create Nodal Supports
NodalSupport(1, '1', NodalSupportType.FIXED)
NodalSupport(2, '3', NodalSupportType.FIXED)
NodalSupport(3, '5', NodalSupportType.FIXED)
NodalSupport(4, '7', NodalSupportType.FIXED)

# Create Member
Member(1, MemberType.TYPE_BEAM, 1, 2, 0, 1, 1)
Member(2, MemberType.TYPE_BEAM, 3, 4, 0, 1, 1)
Member(3, MemberType.TYPE_BEAM, 5, 6, 0, 1, 1)
Member(4, MemberType.TYPE_BEAM, 7, 8, 0, 1, 1)

# Create Static Analysis Settings
StaticAnalysisSettings(1, 'Linear', StaticAnalysisType.GEOMETRICALLY_LINEAR)

# Create Load Case
LoadCase(1, 'DEAD', [True, 0.0, 0.0, 1.0])

# Initial Nodal Load
NodalLoad(1, 1, '2', LoadDirectionType.LOAD_DIRECTION_LOCAL_X, 5000)

# Force Type Nodal Load
NodalLoad.Force(0, 2, 1, '2', LoadDirectionType.LOAD_DIRECTION_LOCAL_X, 5000)

# Moment Type Nodal Load
NodalLoad.Moment(0, 3, 1, '4', LoadDirectionType.LOAD_DIRECTION_LOCAL_X, 5000)

# Component Type Nodal Load
NodalLoad.Components(0, 4, 1, '6', [5000, 5000, 0, 0, 5000, 0])

#Mass Type Nodal Load
NodalLoad.Mass(0, 5, 1, '8', True, [5000, 5000, 0, 0, 5000, 0])

> Calculate_all()

UnitTests\test_NodalLoad_test.py:84:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
RFEM\initModel.py:187: in Calculate_all
clientModel.service.calculate_all(generateXmlSolverInput)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:566: in __call__
return client.invoke(args, kwargs)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:708: in invoke
result = self.send(soapenv, timeout=timeout)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:756: in send
return self.process_reply(reply.message, None, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <suds.client._SoapClient object at 0x0000023F03707340>
reply = b'<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:so...ultcode><faultstring>Plausibility error</faultstring><faultactor/><detail/></soap:Fault></soap:Body></soap:Envelope>\n'
status = <HTTPStatus.OK: 200>, description = None

def process_reply(self, reply, status, description):
"""
Process a web service operation SOAP reply.

Depending on how the ``retxml`` option is set, may return the SOAP
reply XML or process it and return the Python object representing the
returned value.

@param reply: The SOAP reply envelope.
@type reply: I{bytes}
@param status: The HTTP status code (None indicates httplib.OK).
@type status: int|I{None}
@param description: Additional status description.
@type description: str
@return: The invoked web service operation return value.
@rtype: I{builtin}|I{subclass of} L{Object}|I{bytes}|I{None}

"""
if status is None:
status = http.client.OK
debug_message = "Reply HTTP status - %d" % (status,)
if status in (http.client.ACCEPTED, http.client.NO_CONTENT):
log.debug(debug_message)
return
#TODO: Consider whether and how to allow plugins to handle error,
# httplib.ACCEPTED & httplib.NO_CONTENT replies as well as successful
# ones.
if status == http.client.OK:
log.debug("%s\n%s", debug_message, reply)
else:
log.debug("%s - %s\n%s", debug_message, description, reply)

plugins = PluginContainer(self.options.plugins)
ctx = plugins.message.received(reply=reply)
reply = ctx.reply

# SOAP standard states that SOAP errors must be accompanied by HTTP
# status code 500 - internal server error:
#
# From SOAP 1.1 specification:
# In case of a SOAP error while processing the request, the SOAP HTTP
# server MUST issue an HTTP 500 "Internal Server Error" response and
# include a SOAP message in the response containing a SOAP Fault
# element (see section 4.4) indicating the SOAP processing error.
#
# From WS-I Basic profile:
# An INSTANCE MUST use a "500 Internal Server Error" HTTP status code
# if the response message is a SOAP Fault.
replyroot = None
if status in (http.client.OK, http.client.INTERNAL_SERVER_ERROR):
replyroot = _parse(reply)
plugins.message.parsed(reply=replyroot)
fault = self.__get_fault(replyroot)
if fault:
if status != http.client.INTERNAL_SERVER_ERROR:
log.warning("Web service reported a SOAP processing fault "
"using an unexpected HTTP status code %d. Reporting "
"as an internal server error.", status)
if self.options.faults:
> raise WebFault(fault, replyroot)
E suds.WebFault: Server raised fault: 'Plausibility error'

C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:817: WebFault
-------------------------------Captured log call--------------------------------
WARNING suds.client:client.py:813 Web service reported a SOAP processing fault using an unexpected HTTP status code 200. Reporting as an internal server error.
FailedUnitTests/test_RigidSurface_Test.py::test_rigid_surface1.44
-
def test_rigid_surface():

clientModel.service.begin_modification('new')

# Testing the standard surface function
Node(1, 0, -30, 0), Node(2, 10, -30, 0), Node(3, 10, -20, 0), Node(4, 0, -20, 0)
Line(1, '1 2'), Line(2, '2 3'), Line(3, '3 4'), Line(4, '4 1')
Material(name='C30/37')
Thickness()
Surface()

# Standard planar Surface
Node(5, 0, -15, 0), Node(6, 10, -15, 0), Node(7, 10, -5, 0), Node(8, 0, -5, 0)
Line(5, '5 6'), Line(6, '6 7'), Line(7, '7 8'), Line(8, '8 5')
Surface.Rigid(Surface, 2, SurfaceGeometry.GEOMETRY_PLANE, boundary_lines_no= '5 6 7 8')

# Standard NURBS Surface

## Define Nodes
Node(9, 0.0, 0.0, 0.0)
Node(10, 5.0, 0.0, -2.5)
Node(11, 10.0, 0.0, 0.0)
Node(12, 0.0, 10.0, 0.0)
Node(13, 5.0, 10.0, -2.5)
Node(14, 10.0, 10.0, 0.0)
Node(15, 0.0, 5.0, -2,5)
Node(16, 10.0, 5.0, -2.5)

## NURBS-Curve Definition
Line.NURBS(Line, 9, '9 10 11', control_points= [[0, 0, 0], [5, 0, -2.5], [10, 0, 0]], weights= [1, 1, 1],params= {'nurbs_order':3})
Line.NURBS(Line, 10, '12 13 14', control_points= [[0, 10, 0], [5, 10, -2.5], [10, 10, 0]], weights= [1, 1, 1], params= {'nurbs_order':3})
Line.NURBS(Line, 11, '9 15 12', control_points= [[0, 0, 0], [0, 5, -2.5], [0, 10, 0]], weights= [1, 1, 1], params= {'nurbs_order':3})
Line.NURBS(Line, 12, '11 16 14', control_points= [[10, 0, 0], [10, 5, -2.5], [10, 5, -2.5]], weights= [1, 1, 1], params= {'nurbs_order':3})

# Surfaces Definition
Surface.Rigid(Surface, 3, SurfaceGeometry.GEOMETRY_NURBS, [3,3,3,3], '9 10 11 12')

# Standard Quadrangle

# Define Nodes
Node(17, 0, 15, 0)
Node(18, 10, 15, 0)
Node(19, 0, 20, 0)
Node(20, 10, 20, 0)

# Boundary Lines
Line.Arc(1, 13, [17, 18], [5, 15, -2])
Line.Arc(1, 14, [19, 20], [5, 20, -2])
Line(15, '17 19')
Line(16, '18 20')

# Quadrangle Defintion
> Surface.Rigid(Surface, 4, SurfaceGeometry.GEOMETRY_QUADRANGLE, [17, 18, 19, 20], '13 14 15 16')

UnitTests\test_RigidSurface_Test.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
RFEM\BasicObjects\surface.py:166: in Rigid
self.__CreateGeometryAndSetToModel(self)
RFEM\BasicObjects\surface.py:375: in __CreateGeometryAndSetToModel
clientModel.service.set_surface(self.clientObject)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:566: in __call__
return client.invoke(args, kwargs)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:708: in invoke
result = self.send(soapenv, timeout=timeout)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:756: in send
return self.process_reply(reply.message, None, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <suds.client._SoapClient object at 0x0000023F0381EE80>
reply = b'<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:so...e enter a point that lies in the plane.</faultstring><faultactor/><detail/></soap:Fault></soap:Body></soap:Envelope>\n'
status = <HTTPStatus.OK: 200>, description = None

def process_reply(self, reply, status, description):
"""
Process a web service operation SOAP reply.

Depending on how the ``retxml`` option is set, may return the SOAP
reply XML or process it and return the Python object representing the
returned value.

@param reply: The SOAP reply envelope.
@type reply: I{bytes}
@param status: The HTTP status code (None indicates httplib.OK).
@type status: int|I{None}
@param description: Additional status description.
@type description: str
@return: The invoked web service operation return value.
@rtype: I{builtin}|I{subclass of} L{Object}|I{bytes}|I{None}

"""
if status is None:
status = http.client.OK
debug_message = "Reply HTTP status - %d" % (status,)
if status in (http.client.ACCEPTED, http.client.NO_CONTENT):
log.debug(debug_message)
return
#TODO: Consider whether and how to allow plugins to handle error,
# httplib.ACCEPTED & httplib.NO_CONTENT replies as well as successful
# ones.
if status == http.client.OK:
log.debug("%s\n%s", debug_message, reply)
else:
log.debug("%s - %s\n%s", debug_message, description, reply)

plugins = PluginContainer(self.options.plugins)
ctx = plugins.message.received(reply=reply)
reply = ctx.reply

# SOAP standard states that SOAP errors must be accompanied by HTTP
# status code 500 - internal server error:
#
# From SOAP 1.1 specification:
# In case of a SOAP error while processing the request, the SOAP HTTP
# server MUST issue an HTTP 500 "Internal Server Error" response and
# include a SOAP message in the response containing a SOAP Fault
# element (see section 4.4) indicating the SOAP processing error.
#
# From WS-I Basic profile:
# An INSTANCE MUST use a "500 Internal Server Error" HTTP status code
# if the response message is a SOAP Fault.
replyroot = None
if status in (http.client.OK, http.client.INTERNAL_SERVER_ERROR):
replyroot = _parse(reply)
plugins.message.parsed(reply=replyroot)
fault = self.__get_fault(replyroot)
if fault:
if status != http.client.INTERNAL_SERVER_ERROR:
log.warning("Web service reported a SOAP processing fault "
"using an unexpected HTTP status code %d. Reporting "
"as an internal server error.", status)
if self.options.faults:
> raise WebFault(fault, replyroot)
E suds.WebFault: Server raised fault: 'Object: Surface No. 4
E Attribute: Grid origin
E Error: Please enter a point that lies in the plane.'

C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:817: WebFault
-------------------------------Captured log call--------------------------------
WARNING suds.client:client.py:813 Web service reported a SOAP processing fault using an unexpected HTTP status code 200. Reporting as an internal server error.
FailedUnitTests/test_SolidLoads.py::test_solid_loads0.98
-
def test_solid_loads():
clientModel.service.begin_modification('new')

Material(1, 'S235')

# Solid 1
Node(1, 0.0, 0.0, 0.0)
Node(2, 10.0, 0.0, 0.0)
Node(3, 10.0, 10.0, 0.0)
Node(4, 0.0, 10.0, 0.0)

Node(5, 0.0, 0.0, -5.0)
Node(6, 10.0, 0.0, -5.0)
Node(7, 10.0, 10.0, -5.0)
Node(8, 0.0, 10.0, -5.0)

Line(1, '1 2')
Line(2, '2 3')
Line(3, '3 4')
Line(4, '4 1')

Line(5, '5 6')
Line(6, '6 7')
Line(7, '7 8')
Line(8, '8 5')

Line(9, '1 5')
Line(10, '2 6')
Line(11, '3 7')
Line(12, '4 8')

Thickness(1, 'My Test Thickness', 1, 0.05)

Surface(1, '1-4', 1)
Surface(2, '5-8', 1)
> Surface(3, '1 9 5 10', 1)

UnitTests\test_SolidLoads.py:62:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
RFEM\BasicObjects\surface.py:41: in __init__
clientModel.service.set_surface(clientObject)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:566: in __call__
return client.invoke(args, kwargs)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:708: in invoke
result = self.send(soapenv, timeout=timeout)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:756: in send
return self.process_reply(reply.message, None, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <suds.client._SoapClient object at 0x0000023F037A7760>
reply = b'<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:so...enter an integer value between 2 and 0.</faultstring><faultactor/><detail/></soap:Fault></soap:Body></soap:Envelope>\n'
status = <HTTPStatus.OK: 200>, description = None

def process_reply(self, reply, status, description):
"""
Process a web service operation SOAP reply.

Depending on how the ``retxml`` option is set, may return the SOAP
reply XML or process it and return the Python object representing the
returned value.

@param reply: The SOAP reply envelope.
@type reply: I{bytes}
@param status: The HTTP status code (None indicates httplib.OK).
@type status: int|I{None}
@param description: Additional status description.
@type description: str
@return: The invoked web service operation return value.
@rtype: I{builtin}|I{subclass of} L{Object}|I{bytes}|I{None}

"""
if status is None:
status = http.client.OK
debug_message = "Reply HTTP status - %d" % (status,)
if status in (http.client.ACCEPTED, http.client.NO_CONTENT):
log.debug(debug_message)
return
#TODO: Consider whether and how to allow plugins to handle error,
# httplib.ACCEPTED & httplib.NO_CONTENT replies as well as successful
# ones.
if status == http.client.OK:
log.debug("%s\n%s", debug_message, reply)
else:
log.debug("%s - %s\n%s", debug_message, description, reply)

plugins = PluginContainer(self.options.plugins)
ctx = plugins.message.received(reply=reply)
reply = ctx.reply

# SOAP standard states that SOAP errors must be accompanied by HTTP
# status code 500 - internal server error:
#
# From SOAP 1.1 specification:
# In case of a SOAP error while processing the request, the SOAP HTTP
# server MUST issue an HTTP 500 "Internal Server Error" response and
# include a SOAP message in the response containing a SOAP Fault
# element (see section 4.4) indicating the SOAP processing error.
#
# From WS-I Basic profile:
# An INSTANCE MUST use a "500 Internal Server Error" HTTP status code
# if the response message is a SOAP Fault.
replyroot = None
if status in (http.client.OK, http.client.INTERNAL_SERVER_ERROR):
replyroot = _parse(reply)
plugins.message.parsed(reply=replyroot)
fault = self.__get_fault(replyroot)
if fault:
if status != http.client.INTERNAL_SERVER_ERROR:
log.warning("Web service reported a SOAP processing fault "
"using an unexpected HTTP status code %d. Reporting "
"as an internal server error.", status)
if self.options.faults:
> raise WebFault(fault, replyroot)
E suds.WebFault: Server raised fault: 'Object: Surface No. 3
E Attribute: Order in direction u
E Error: Please enter an integer value between 2 and 0.'

C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:817: WebFault
-------------------------------Captured log call--------------------------------
WARNING suds.client:client.py:813 Web service reported a SOAP processing fault using an unexpected HTTP status code 200. Reporting as an internal server error.
FailedUnitTests/test_StandardSurface_Test.py::test_standard_surface1.48
-
def test_standard_surface():

clientModel.service.begin_modification('new')

# Testing the standard surface function
Node(1, 0, -30, 0), Node(2, 10, -30, 0), Node(3, 10, -20, 0), Node(4, 0, -20, 0)
Line(1, '1 2'), Line(2, '2 3'), Line(3, '3 4'), Line(4, '4 1')
Material(name='C30/37')
Thickness()
Surface()

# Standard planar Surface
Node(5, 0, -15, 0), Node(6, 10, -15, 0), Node(7, 10, -5, 0), Node(8, 0, -5, 0)
Line(5, '5 6'), Line(6, '6 7'), Line(7, '7 8'), Line(8, '8 5')
Surface.Standard(Surface, 2, SurfaceGeometry.GEOMETRY_PLANE, boundary_lines_no= '5 6 7 8')

# Standard NURBS Surface

## Define Nodes
Node(9, 0.0, 0.0, 0.0)
Node(10, 5.0, 0.0, -2.5)
Node(11, 10.0, 0.0, 0.0)
Node(12, 0.0, 10.0, 0.0)
Node(13, 5.0, 10.0, -2.5)
Node(14, 10.0, 10.0, 0.0)
Node(15, 0.0, 5.0, -2,5)
Node(16, 10.0, 5.0, -2.5)

## NURBS-Curve Definition
Line.NURBS(Line, 9, '9 10 11', control_points= [[0, 0, 0], [5, 0, -2.5], [10, 0, 0]], weights= [1, 1, 1],params= {'nurbs_order':3})
Line.NURBS(Line, 10, '12 13 14', control_points= [[0, 10, 0], [5, 10, -2.5], [10, 10, 0]], weights= [1, 1, 1], params= {'nurbs_order':3})
Line.NURBS(Line, 11, '9 15 12', control_points= [[0, 0, 0], [0, 5, -2.5], [0, 10, 0]], weights= [1, 1, 1], params= {'nurbs_order':3})
Line.NURBS(Line, 12, '11 16 14', control_points= [[10, 0, 0], [10, 5, -2.5], [10, 5, -2.5]], weights= [1, 1, 1], params= {'nurbs_order':3})

# Surfaces Definition
Surface.Standard(Surface, 3, SurfaceGeometry.GEOMETRY_NURBS, [3,3,3,3], '9 10 11 12')

# Standard Quadrangle

# Define Nodes
Node(17, 0, 15, 0)
Node(18, 10, 15, 0)
Node(19, 0, 20, 0)
Node(20, 10, 20, 0)

# Boundary Lines
Line.Arc(1, 13, [17, 18], [5, 15, -2])
Line.Arc(1, 14, [19, 20], [5, 20, -2])
Line(15, '17 19')
Line(16, '18 20')

# Quadrangle Defintion
> Surface.Standard(Surface, 4, SurfaceGeometry.GEOMETRY_QUADRANGLE, [17, 18, 19, 20], '13 14 15 16')

UnitTests\test_StandardSurface_Test.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
RFEM\BasicObjects\surface.py:84: in Standard
self.__CreateGeometryAndSetToModel(self)
RFEM\BasicObjects\surface.py:375: in __CreateGeometryAndSetToModel
clientModel.service.set_surface(self.clientObject)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:566: in __call__
return client.invoke(args, kwargs)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:708: in invoke
result = self.send(soapenv, timeout=timeout)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:756: in send
return self.process_reply(reply.message, None, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <suds.client._SoapClient object at 0x0000023F036EDAF0>
reply = b'<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:so...e enter a point that lies in the plane.</faultstring><faultactor/><detail/></soap:Fault></soap:Body></soap:Envelope>\n'
status = <HTTPStatus.OK: 200>, description = None

def process_reply(self, reply, status, description):
"""
Process a web service operation SOAP reply.

Depending on how the ``retxml`` option is set, may return the SOAP
reply XML or process it and return the Python object representing the
returned value.

@param reply: The SOAP reply envelope.
@type reply: I{bytes}
@param status: The HTTP status code (None indicates httplib.OK).
@type status: int|I{None}
@param description: Additional status description.
@type description: str
@return: The invoked web service operation return value.
@rtype: I{builtin}|I{subclass of} L{Object}|I{bytes}|I{None}

"""
if status is None:
status = http.client.OK
debug_message = "Reply HTTP status - %d" % (status,)
if status in (http.client.ACCEPTED, http.client.NO_CONTENT):
log.debug(debug_message)
return
#TODO: Consider whether and how to allow plugins to handle error,
# httplib.ACCEPTED & httplib.NO_CONTENT replies as well as successful
# ones.
if status == http.client.OK:
log.debug("%s\n%s", debug_message, reply)
else:
log.debug("%s - %s\n%s", debug_message, description, reply)

plugins = PluginContainer(self.options.plugins)
ctx = plugins.message.received(reply=reply)
reply = ctx.reply

# SOAP standard states that SOAP errors must be accompanied by HTTP
# status code 500 - internal server error:
#
# From SOAP 1.1 specification:
# In case of a SOAP error while processing the request, the SOAP HTTP
# server MUST issue an HTTP 500 "Internal Server Error" response and
# include a SOAP message in the response containing a SOAP Fault
# element (see section 4.4) indicating the SOAP processing error.
#
# From WS-I Basic profile:
# An INSTANCE MUST use a "500 Internal Server Error" HTTP status code
# if the response message is a SOAP Fault.
replyroot = None
if status in (http.client.OK, http.client.INTERNAL_SERVER_ERROR):
replyroot = _parse(reply)
plugins.message.parsed(reply=replyroot)
fault = self.__get_fault(replyroot)
if fault:
if status != http.client.INTERNAL_SERVER_ERROR:
log.warning("Web service reported a SOAP processing fault "
"using an unexpected HTTP status code %d. Reporting "
"as an internal server error.", status)
if self.options.faults:
> raise WebFault(fault, replyroot)
E suds.WebFault: Server raised fault: 'Object: Surface No. 4
E Attribute: Grid origin
E Error: Please enter a point that lies in the plane.'

C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:817: WebFault
-------------------------------Captured log call--------------------------------
WARNING suds.client:client.py:813 Web service reported a SOAP processing fault using an unexpected HTTP status code 200. Reporting as an internal server error.
FailedUnitTests/test_SurfaceLoad_test.py::test_surface_loads3.00
-
def test_surface_loads():

clientModel.service.begin_modification()

# Create Material
Material(1, 'S235')

# Create Thickness
Thickness(1, '1', 1, 0.1)


# Create Nodes
Node(1, 0.0, 0.0, 0.0)
Node(2, 4, 0.0, 0.0)
Node(3, 0, 4.0, 0.0)
Node(4, 4, 4.0, 0.0)

# Create Lines
Line(1, '1 2')
Line(2, '2 4')
Line(3, '4 3')
Line(4, '3 1')

# Create Surfaces
Surface(1, '1 2 3 4', 1)

# Create Nodal Supports
NodalSupport(1, '1', NodalSupportType.FIXED)
NodalSupport(2, '2', NodalSupportType.FIXED)
NodalSupport(3, '3', NodalSupportType.FIXED)
NodalSupport(4, '4', NodalSupportType.FIXED)

# Create Static Analysis Settings
StaticAnalysisSettings(1, '1. Ordnung', StaticAnalysisType.GEOMETRICALLY_LINEAR)

# Create Load Case
LoadCase(1, 'Eigengewicht')

## Default Surface Load ##
SurfaceLoad(1, 1, '1', 5000)

## Force Type Surface Load with UNIFORM Load Distribution ##
SurfaceLoad.Force(0, 2, 1, '1', SurfaceLoadDirection.LOAD_DIRECTION_GLOBAL_Z_OR_USER_DEFINED_W_TRUE, SurfaceLoadDistribution.LOAD_DISTRIBUTION_UNIFORM, load_parameter=[5000])

## Force Type Surface Load with LINEAR Load Distribution ##
SurfaceLoad.Force(0, 3, 1, '1', SurfaceLoadDirection.LOAD_DIRECTION_GLOBAL_Z_OR_USER_DEFINED_W_TRUE, SurfaceLoadDistribution.LOAD_DISTRIBUTION_LINEAR, load_parameter=[5000, 6000, 7000, 2, 3, 4])

## Force Type Surface Load with LINEAR_X or LINEAR_Y or LINEAR_Z Load Distribution ##
SurfaceLoad.Force(0, 4, 1, '1', SurfaceLoadDirection.LOAD_DIRECTION_GLOBAL_Z_OR_USER_DEFINED_W_TRUE, SurfaceLoadDistribution.LOAD_DISTRIBUTION_LINEAR_IN_X, load_parameter=[5000, 6000, 3, 4])

## Force Type Surface Load with RADIAL Load Distribution ##

#SurfaceLoad.Force(0, 5, 1, '1', SurfaceLoadDirection.LOAD_DIRECTION_GLOBAL_Z_OR_USER_DEFINED_W_TRUE, SurfaceLoadDistribution.LOAD_DISTRIBUTION_RADIAL,
#(5000, 6000, 3, 4, SurfaceLoadAxisDefinitionType.AXIS_DEFINITION_TWO_POINTS, [1,2,3], [4,5,6]))

## Temperature Type Surface Load with UNIFORM Load Distribution ##
SurfaceLoad.Temperature(0, 6, 1, '1', SurfaceLoadDistribution.LOAD_DISTRIBUTION_UNIFORM, load_parameter=[18, 2])

## Temperature Type Surface Load with LINEAR Load Distribution ##
SurfaceLoad.Temperature(0, 7, 1, '1', SurfaceLoadDistribution.LOAD_DISTRIBUTION_LINEAR, load_parameter=[18, 2, 20, 4, 22, 6, 2, 3, 4])

## Temperature Type Surface Load with LINEAR_X or LINEAR_Y or LINEAR_Z Load Distribution ##
SurfaceLoad.Temperature(0, 8, 1, '1', SurfaceLoadDistribution.LOAD_DISTRIBUTION_LINEAR_IN_X, load_parameter=[18, 2, 20, 4, 2, 3])

## Axial Strain Type Surface Load with UNIFORM Load Distribution ##
SurfaceLoad.AxialStrain(0, 9, 1, '1', SurfaceLoadDistribution.LOAD_DISTRIBUTION_UNIFORM, load_parameter=[0.5, 1])

## Axial Strain Type Surface Load with LINEAR Load Distribution ##
SurfaceLoad.AxialStrain(0, 10, 1, '1', SurfaceLoadDistribution.LOAD_DISTRIBUTION_LINEAR, load_parameter=[0.005, 0.006, 0.007, 0.008, 0.009, 0.01, 2, 3, 4])

## Axial Strain Type Surface Load with LINEAR_IN_X Load Distribution ##
SurfaceLoad.AxialStrain(0, 11, 1, '1', SurfaceLoadDistribution.LOAD_DISTRIBUTION_LINEAR_IN_X, load_parameter=[0.005, 0.006, 0.007, 0.008, 2, 3])

## Precamber Type Surface Load ##
SurfaceLoad.Precamber(0, 12, 1, '1', 50)

## Rotary Motion Surface Load ##
#SurfaceLoad.RotaryMotion(0, 13, 1, '1', load_parameter=[1, 2, SurfaceLoadAxisDefinitionType.AXIS_DEFINITION_TWO_POINTS, [1,2,3], [4,5,6]])

## Mass Type Surface Load ##
#SurfaceLoad.Mass(0, 14, 1, '1', individual_mass_components=True, mass_parameter=[500, 600, 700])


> Calculate_all()

UnitTests\test_SurfaceLoad_test.py:111:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
RFEM\initModel.py:187: in Calculate_all
clientModel.service.calculate_all(generateXmlSolverInput)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:566: in __call__
return client.invoke(args, kwargs)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:708: in invoke
result = self.send(soapenv, timeout=timeout)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:756: in send
return self.process_reply(reply.message, None, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <suds.client._SoapClient object at 0x0000023F037D3A00>
reply = b'<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:so...ultcode><faultstring>Plausibility error</faultstring><faultactor/><detail/></soap:Fault></soap:Body></soap:Envelope>\n'
status = <HTTPStatus.OK: 200>, description = None

def process_reply(self, reply, status, description):
"""
Process a web service operation SOAP reply.

Depending on how the ``retxml`` option is set, may return the SOAP
reply XML or process it and return the Python object representing the
returned value.

@param reply: The SOAP reply envelope.
@type reply: I{bytes}
@param status: The HTTP status code (None indicates httplib.OK).
@type status: int|I{None}
@param description: Additional status description.
@type description: str
@return: The invoked web service operation return value.
@rtype: I{builtin}|I{subclass of} L{Object}|I{bytes}|I{None}

"""
if status is None:
status = http.client.OK
debug_message = "Reply HTTP status - %d" % (status,)
if status in (http.client.ACCEPTED, http.client.NO_CONTENT):
log.debug(debug_message)
return
#TODO: Consider whether and how to allow plugins to handle error,
# httplib.ACCEPTED & httplib.NO_CONTENT replies as well as successful
# ones.
if status == http.client.OK:
log.debug("%s\n%s", debug_message, reply)
else:
log.debug("%s - %s\n%s", debug_message, description, reply)

plugins = PluginContainer(self.options.plugins)
ctx = plugins.message.received(reply=reply)
reply = ctx.reply

# SOAP standard states that SOAP errors must be accompanied by HTTP
# status code 500 - internal server error:
#
# From SOAP 1.1 specification:
# In case of a SOAP error while processing the request, the SOAP HTTP
# server MUST issue an HTTP 500 "Internal Server Error" response and
# include a SOAP message in the response containing a SOAP Fault
# element (see section 4.4) indicating the SOAP processing error.
#
# From WS-I Basic profile:
# An INSTANCE MUST use a "500 Internal Server Error" HTTP status code
# if the response message is a SOAP Fault.
replyroot = None
if status in (http.client.OK, http.client.INTERNAL_SERVER_ERROR):
replyroot = _parse(reply)
plugins.message.parsed(reply=replyroot)
fault = self.__get_fault(replyroot)
if fault:
if status != http.client.INTERNAL_SERVER_ERROR:
log.warning("Web service reported a SOAP processing fault "
"using an unexpected HTTP status code %d. Reporting "
"as an internal server error.", status)
if self.options.faults:
> raise WebFault(fault, replyroot)
E suds.WebFault: Server raised fault: 'Plausibility error'

C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:817: WebFault
-------------------------------Captured log call--------------------------------
WARNING suds.client:client.py:813 Web service reported a SOAP processing fault using an unexpected HTTP status code 200. Reporting as an internal server error.
FailedUnitTests/test_SurfaceSetLoad_test.py::test_surface_set_load1.16
-
def test_surface_set_load():

clientModel.service.begin_modification()

# Create Material
Material(1, 'S235')

# Create Thickness
Thickness(1, '1', 1, 0.01)

# Create Nodes
Node(1, 0.0, 0.0, 0.0)
Node(2, 0.0, 2.0, 0.0)
Node(3, 2.0, 2.0, 0.0)
Node(4, 2.0, 0.0, 0.0)
Node(5, 0.0, 4.0, 0.0)
Node(6, 2.0, 4.0, 0.0)

Node(7, 5, 0, 0)
Node(8, 7, 0, 0)
Node(9, 5, 0, 2)
Node(10, 7, 0, 2)
Node(11, 5, 0, -2)
Node(12, 7, 0, -2)

# Create Lines
Line(1, '1 2')
Line(2, '2 3')
Line(3, '3 4')
Line(4, '4 1')
Line(5, '2 5')
Line(6, '5 6')
Line(7, '6 3')

Line(8, '9 7')
Line(9, '7 8')
Line(10, '8 10')
Line(11, '10 9')
Line(12, '8 12')
Line(13, '12 11')
Line(14, '11 7')


# Create Surfaces
Surface(1, '1 2 3 4', 1)
Surface(2, '2 5 6 7', 1)

> Surface(3, '8 9 10 11', 1)

UnitTests\test_SurfaceSetLoad_test.py:76:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
RFEM\BasicObjects\surface.py:41: in __init__
clientModel.service.set_surface(clientObject)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:566: in __call__
return client.invoke(args, kwargs)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:708: in invoke
result = self.send(soapenv, timeout=timeout)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:756: in send
return self.process_reply(reply.message, None, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <suds.client._SoapClient object at 0x0000023F0388BD90>
reply = b'<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:so...enter an integer value between 2 and 0.</faultstring><faultactor/><detail/></soap:Fault></soap:Body></soap:Envelope>\n'
status = <HTTPStatus.OK: 200>, description = None

def process_reply(self, reply, status, description):
"""
Process a web service operation SOAP reply.

Depending on how the ``retxml`` option is set, may return the SOAP
reply XML or process it and return the Python object representing the
returned value.

@param reply: The SOAP reply envelope.
@type reply: I{bytes}
@param status: The HTTP status code (None indicates httplib.OK).
@type status: int|I{None}
@param description: Additional status description.
@type description: str
@return: The invoked web service operation return value.
@rtype: I{builtin}|I{subclass of} L{Object}|I{bytes}|I{None}

"""
if status is None:
status = http.client.OK
debug_message = "Reply HTTP status - %d" % (status,)
if status in (http.client.ACCEPTED, http.client.NO_CONTENT):
log.debug(debug_message)
return
#TODO: Consider whether and how to allow plugins to handle error,
# httplib.ACCEPTED & httplib.NO_CONTENT replies as well as successful
# ones.
if status == http.client.OK:
log.debug("%s\n%s", debug_message, reply)
else:
log.debug("%s - %s\n%s", debug_message, description, reply)

plugins = PluginContainer(self.options.plugins)
ctx = plugins.message.received(reply=reply)
reply = ctx.reply

# SOAP standard states that SOAP errors must be accompanied by HTTP
# status code 500 - internal server error:
#
# From SOAP 1.1 specification:
# In case of a SOAP error while processing the request, the SOAP HTTP
# server MUST issue an HTTP 500 "Internal Server Error" response and
# include a SOAP message in the response containing a SOAP Fault
# element (see section 4.4) indicating the SOAP processing error.
#
# From WS-I Basic profile:
# An INSTANCE MUST use a "500 Internal Server Error" HTTP status code
# if the response message is a SOAP Fault.
replyroot = None
if status in (http.client.OK, http.client.INTERNAL_SERVER_ERROR):
replyroot = _parse(reply)
plugins.message.parsed(reply=replyroot)
fault = self.__get_fault(replyroot)
if fault:
if status != http.client.INTERNAL_SERVER_ERROR:
log.warning("Web service reported a SOAP processing fault "
"using an unexpected HTTP status code %d. Reporting "
"as an internal server error.", status)
if self.options.faults:
> raise WebFault(fault, replyroot)
E suds.WebFault: Server raised fault: 'Object: Surface No. 3
E Attribute: Order in direction u
E Error: Please enter an integer value between 2 and 0.'

C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:817: WebFault
-------------------------------Captured log call--------------------------------
WARNING suds.client:client.py:813 Web service reported a SOAP processing fault using an unexpected HTTP status code 200. Reporting as an internal server error.
FailedUnitTests/test_WithoutThicknessSurface_Test.py::test_without_thickness_surface1.48
-
def test_without_thickness_surface():

clientModel.service.begin_modification('new')

# Testing the standard surface function
Node(1, 0, -30, 0), Node(2, 10, -30, 0), Node(3, 10, -20, 0), Node(4, 0, -20, 0)
Line(1, '1 2'), Line(2, '2 3'), Line(3, '3 4'), Line(4, '4 1')
Material(name='C30/37')
Thickness()
Surface()

# Standard planar Surface
Node(5, 0, -15, 0), Node(6, 10, -15, 0), Node(7, 10, -5, 0), Node(8, 0, -5, 0)
Line(5, '5 6'), Line(6, '6 7'), Line(7, '7 8'), Line(8, '8 5')
Surface.WithoutThickness(Surface, 2, boundary_lines_no= '5 6 7 8')

# Standard NURBS Surface

## Define Nodes
Node(9, 0.0, 0.0, 0.0)
Node(10, 5.0, 0.0, -2.5)
Node(11, 10.0, 0.0, 0.0)
Node(12, 0.0, 10.0, 0.0)
Node(13, 5.0, 10.0, -2.5)
Node(14, 10.0, 10.0, 0.0)
Node(15, 0.0, 5.0, -2,5)
Node(16, 10.0, 5.0, -2.5)

## NURBS-Curve Definition
Line.NURBS(Line, 9, '9 10 11', control_points= [[0, 0, 0], [5, 0, -2.5], [10, 0, 0]], weights= [1, 1, 1],params= {'nurbs_order':3})
Line.NURBS(Line, 10, '12 13 14', control_points= [[0, 10, 0], [5, 10, -2.5], [10, 10, 0]], weights= [1, 1, 1], params= {'nurbs_order':3})
Line.NURBS(Line, 11, '9 15 12', control_points= [[0, 0, 0], [0, 5, -2.5], [0, 10, 0]], weights= [1, 1, 1], params= {'nurbs_order':3})
Line.NURBS(Line, 12, '11 16 14', control_points= [[10, 0, 0], [10, 5, -2.5], [10, 5, -2.5]], weights= [1, 1, 1], params= {'nurbs_order':3})

# Surfaces Definition
Surface.WithoutThickness(Surface, 3, SurfaceGeometry.GEOMETRY_NURBS, [3,3,3,3], '9 10 11 12')

# Standard Quadrangle

# Define Nodes
Node(17, 0, 15, 0)
Node(18, 10, 15, 0)
Node(19, 0, 20, 0)
Node(20, 10, 20, 0)

# Boundary Lines
Line.Arc(1, 13, [17, 18], [5, 15, -2])
Line.Arc(1, 14, [19, 20], [5, 20, -2])
Line(15, '17 19')
Line(16, '18 20')

# Quadrangle Defintion
> Surface.WithoutThickness(Surface, 4, SurfaceGeometry.GEOMETRY_QUADRANGLE, [17, 18, 19, 20], '13 14 15 16')

UnitTests\test_WithoutThicknessSurface_Test.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
RFEM\BasicObjects\surface.py:125: in WithoutThickness
self.__CreateGeometryAndSetToModel(self)
RFEM\BasicObjects\surface.py:375: in __CreateGeometryAndSetToModel
clientModel.service.set_surface(self.clientObject)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:566: in __call__
return client.invoke(args, kwargs)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:708: in invoke
result = self.send(soapenv, timeout=timeout)
C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:756: in send
return self.process_reply(reply.message, None, None)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <suds.client._SoapClient object at 0x0000023F0380EF10>
reply = b'<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:so...e enter a point that lies in the plane.</faultstring><faultactor/><detail/></soap:Fault></soap:Body></soap:Envelope>\n'
status = <HTTPStatus.OK: 200>, description = None

def process_reply(self, reply, status, description):
"""
Process a web service operation SOAP reply.

Depending on how the ``retxml`` option is set, may return the SOAP
reply XML or process it and return the Python object representing the
returned value.

@param reply: The SOAP reply envelope.
@type reply: I{bytes}
@param status: The HTTP status code (None indicates httplib.OK).
@type status: int|I{None}
@param description: Additional status description.
@type description: str
@return: The invoked web service operation return value.
@rtype: I{builtin}|I{subclass of} L{Object}|I{bytes}|I{None}

"""
if status is None:
status = http.client.OK
debug_message = "Reply HTTP status - %d" % (status,)
if status in (http.client.ACCEPTED, http.client.NO_CONTENT):
log.debug(debug_message)
return
#TODO: Consider whether and how to allow plugins to handle error,
# httplib.ACCEPTED & httplib.NO_CONTENT replies as well as successful
# ones.
if status == http.client.OK:
log.debug("%s\n%s", debug_message, reply)
else:
log.debug("%s - %s\n%s", debug_message, description, reply)

plugins = PluginContainer(self.options.plugins)
ctx = plugins.message.received(reply=reply)
reply = ctx.reply

# SOAP standard states that SOAP errors must be accompanied by HTTP
# status code 500 - internal server error:
#
# From SOAP 1.1 specification:
# In case of a SOAP error while processing the request, the SOAP HTTP
# server MUST issue an HTTP 500 "Internal Server Error" response and
# include a SOAP message in the response containing a SOAP Fault
# element (see section 4.4) indicating the SOAP processing error.
#
# From WS-I Basic profile:
# An INSTANCE MUST use a "500 Internal Server Error" HTTP status code
# if the response message is a SOAP Fault.
replyroot = None
if status in (http.client.OK, http.client.INTERNAL_SERVER_ERROR):
replyroot = _parse(reply)
plugins.message.parsed(reply=replyroot)
fault = self.__get_fault(replyroot)
if fault:
if status != http.client.INTERNAL_SERVER_ERROR:
log.warning("Web service reported a SOAP processing fault "
"using an unexpected HTTP status code %d. Reporting "
"as an internal server error.", status)
if self.options.faults:
> raise WebFault(fault, replyroot)
E suds.WebFault: Server raised fault: 'Object: Surface No. 4
E Attribute: Grid origin
E Error: Please enter a point that lies in the plane.'

C:\Users\BrozJ\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\suds\client.py:817: WebFault
-------------------------------Captured log call--------------------------------
WARNING suds.client:client.py:813 Web service reported a SOAP processing fault using an unexpected HTTP status code 200. Reporting as an internal server error.
SkippedUnitTests/test_MeshGenerationStatistics.py::test_generation_of_mesh_statistics0.00
-
('d:\\Sources\\RfemPythonWsClient\\UnitTests\\test_MeshGenerationStatistics.py', 34, 'Skipped: all tests still WIP')
SkippedUnitTests/test_SpectralSettings_test.py::test_spectral_analysis_settings0.00
-
('d:\\Sources\\RfemPythonWsClient\\UnitTests\\test_SpectralSettings_test.py', 36, 'Skipped: all tests still WIP')
SkippedUnitTests/test_modalAnalysis_test.py::test_modal_analysis_settings0.00
-
('d:\\Sources\\RfemPythonWsClient\\UnitTests\\test_modalAnalysis_test.py', 34, 'Skipped: all tests still WIP')
SkippedUnitTests/test_stabilitysettings.py::test_stability_analysis_settings_init0.00
-
('d:\\Sources\\RfemPythonWsClient\\UnitTests\\test_stabilitysettings.py', 9, 'Skipped: all tests still WIP')
SkippedUnitTests/test_stabilitysettings.py::test_stability_analysis_settings_eigenvalue_method0.00
-
('d:\\Sources\\RfemPythonWsClient\\UnitTests\\test_stabilitysettings.py', 32, 'Skipped: all tests still WIP')
SkippedUnitTests/test_stabilitysettings.py::test_stability_analysis_settings_incrementaly_method_with_eigenvalue0.00
-
('d:\\Sources\\RfemPythonWsClient\\UnitTests\\test_stabilitysettings.py', 65, 'Skipped: all tests still WIP')
SkippedUnitTests/test_stabilitysettings.py::test_stability_analysis_settings_incrementaly_method_without_eigenvalue0.00
-
('d:\\Sources\\RfemPythonWsClient\\UnitTests\\test_stabilitysettings.py', 110, 'Skipped: all tests still WIP')
PassedUnitTests/test_DesignSituations.py::test_design_situation0.66
-
No log output captured.
PassedUnitTests/test_Free_Load_Test.py::test_free_load2.44
-
------------------------------Captured stdout call------------------------------
Ready! -
PassedUnitTests/test_GlobalParameters_Test.py::test_global_parameters0.24
-
------------------------------Captured stdout call------------------------------
Ready! -
PassedUnitTests/test_LineLoads_Test.py::test_line_loads2.72
-
------------------------------Captured stdout call------------------------------
Ready! -
PassedUnitTests/test_LoadCases_Test.py::test_load_case0.39
-
No log output captured.
PassedUnitTests/test_LoadDistributionSurface_Test.py::test_load_distribution_surface0.94
-
No log output captured.
PassedUnitTests/test_MembraneSurface_Test.py::test_membrane_surface1.49
-
No log output captured.
PassedUnitTests/test_MeshGenerationStatistics.py::test_generation_mesh_implemented0.00
-
No log output captured.
PassedUnitTests/test_SpectralSettings_test.py::test_spectral_analysis_implemented0.00
-
No log output captured.
PassedUnitTests/test_Thickness_Test.py::test_thickness0.97
-
------------------------------Captured stdout call------------------------------
Ready! -
PassedUnitTests/test_basic_objects.py::test_line_init1.06
-
No log output captured.
PassedUnitTests/test_basic_objects.py::test_line_polyline0.40
-
No log output captured.
PassedUnitTests/test_basic_objects.py::test_line_arc0.42
-
No log output captured.
PassedUnitTests/test_basic_objects.py::test_line_circle0.33
-
No log output captured.
PassedUnitTests/test_basic_objects.py::test_lineSet0.51
-
No log output captured.
PassedUnitTests/test_basic_objects.py::test_material0.33
-
No log output captured.
PassedUnitTests/test_basic_objects.py::test_node_init0.15
-
No log output captured.
PassedUnitTests/test_basic_objects.py::test_memberbyline_init0.88
-
No log output captured.
PassedUnitTests/test_basic_objects.py::test_member_init0.79
-
No log output captured.
PassedUnitTests/test_basic_objects.py::test_member_beam0.78
-
No log output captured.
PassedUnitTests/test_basic_objects.py::test_member_set0.95
-
No log output captured.
PassedUnitTests/test_basic_objects.py::test_opening1.34
-
No log output captured.
PassedUnitTests/test_basic_objects.py::test_section0.54
-
No log output captured.
PassedUnitTests/test_basic_objects.py::test_thickness_init0.52
-
No log output captured.
PassedUnitTests/test_basic_objects.py::test_thickness_uniform0.48
-
No log output captured.
PassedUnitTests/test_basic_objects.py::test_thickness_3nodes0.59
-
No log output captured.
PassedUnitTests/test_basic_objects.py::test_thickness_2nodes0.54
-
No log output captured.
PassedUnitTests/test_basic_objects.py::test_thickness_4corners1.51
-
No log output captured.
PassedUnitTests/test_basic_objects.py::test_thickness_circle0.47
-
No log output captured.
PassedUnitTests/test_basic_objects.py::test_thickness_layers0.48
-
No log output captured.
PassedUnitTests/test_loads.py::test_nodal_load_init0.47
-
No log output captured.
PassedUnitTests/test_loads.py::test_nodal_load_force0.48
-
No log output captured.
PassedUnitTests/test_loads.py::test_nodal_load_moment0.48
-
No log output captured.
PassedUnitTests/test_loads.py::test_nodal_load_components0.48
-
No log output captured.
PassedUnitTests/test_loads.py::test_nodal_load_mass0.49
-
No log output captured.
PassedUnitTests/test_loads.py::test_member_load_init0.90
-
No log output captured.
PassedUnitTests/test_loads.py::test_member_load_force0.98
-
No log output captured.
PassedUnitTests/test_loads.py::test_member_load_moment0.96
-
No log output captured.
PassedUnitTests/test_loads.py::test_member_load_mass0.99
-
No log output captured.
PassedUnitTests/test_loads.py::test_member_load_temperature0.99
-
No log output captured.
PassedUnitTests/test_loads.py::test_member_load_temperature_change0.97
-
No log output captured.
PassedUnitTests/test_loads.py::test_member_load_axial_strain1.01
-
No log output captured.
PassedUnitTests/test_loads.py::test_member_load_axial_displacement1.00
-
No log output captured.
PassedUnitTests/test_loads.py::test_member_load_precamber0.99
-
No log output captured.
PassedUnitTests/test_loads.py::test_member_load_initial_prestress0.99
-
No log output captured.
PassedUnitTests/test_loads.py::test_member_load_displacement1.01
-
No log output captured.
PassedUnitTests/test_loads.py::test_member_load_rotation0.96
-
No log output captured.
PassedUnitTests/test_loads.py::test_member_load_pipecontentfull0.96
-
No log output captured.
PassedUnitTests/test_loads.py::test_member_load_pipecontentpartial0.99
-
No log output captured.
PassedUnitTests/test_loads.py::test_member_load_pipeinternalpressure0.96
-
No log output captured.
PassedUnitTests/test_loads.py::test_surface_load_init1.68
-
No log output captured.
PassedUnitTests/test_loads.py::test_surface_load_force1.66
-
No log output captured.
PassedUnitTests/test_loads.py::test_surface_load_temperature1.61
-
No log output captured.
PassedUnitTests/test_loads.py::test_surface_load_axial_strain1.65
-
No log output captured.
PassedUnitTests/test_loads.py::test_surface_load_precamber1.61
-
No log output captured.
PassedUnitTests/test_loads.py::test_surface_load_mass1.68
-
No log output captured.
PassedUnitTests/test_loads.py::test_line_load_init1.69
-
No log output captured.
PassedUnitTests/test_loads.py::test_line_load_force1.65
-
No log output captured.
PassedUnitTests/test_loads.py::test_line_load_moment1.69
-
No log output captured.
PassedUnitTests/test_loads.py::test_line_load_mass1.68
-
No log output captured.
PassedUnitTests/test_loads.py::test_free_concentrated_load1.79
-
No log output captured.
PassedUnitTests/test_loads.py::test_free_line_load1.83
-
No log output captured.
PassedUnitTests/test_loads.py::test_free_rectangular_load1.75
-
No log output captured.
PassedUnitTests/test_loads.py::test_free_circular_load1.73
-
No log output captured.
PassedUnitTests/test_loads.py::test_free_polygon_load1.73
-
No log output captured.
PassedUnitTests/test_modalAnalysis_test.py::test_modal_analysis_implementedUnitTests/test_BaseSettings_test.py::test_baseSettings 0.00
-
No log output captured.
PassedUnitTests/test_newFunctionalityTesting.py::test_ImportFromUnitTests/test_BaseSettings_test.py::test_base_settings_implemented 0.00