-
Notifications
You must be signed in to change notification settings - Fork 39
Expand file tree
/
Copy pathtest_MembraneWithoutTensionSurface_Test.py
More file actions
89 lines (70 loc) · 2.65 KB
/
test_MembraneWithoutTensionSurface_Test.py
File metadata and controls
89 lines (70 loc) · 2.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import os
PROJECT_ROOT = os.path.abspath(os.path.join(
os.path.dirname(__file__),
os.pardir)
)
sys.path.append(PROJECT_ROOT)
# Import the relevant Libraries
from RFEM.enums import SurfaceGeometry
from RFEM.initModel import Model
from RFEM.BasicObjects.material import Material
from RFEM.BasicObjects.thickness import Thickness
from RFEM.BasicObjects.node import Node
from RFEM.BasicObjects.line import Line
from RFEM.BasicObjects.surface import Surface
if Model.clientModel is None:
Model()
def test_membrane_without_tension_surface():
Model.clientModel.service.delete_all()
Model.clientModel.service.begin_modification()
# 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(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(9, '9 10 11')
Line.NURBS(10, '12 13 14')
Line.NURBS(11, '9 15 12')
Line.NURBS(12, '11 16 14')
# Surfaces Definition
Surface.WithoutMemberaneTension(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(13, [17, 18], [5, 15, -2])
Line.Arc(14, [19, 20], [5, 20, -2])
Line(15, '17 19')
Line(16, '18 20')
# Quadrangle Defintion
Surface.WithoutMemberaneTension(4, SurfaceGeometry.GEOMETRY_QUADRANGLE, [17, 18, 19, 20], '13 14 15 16')
Model.clientModel.service.finish_modification()
sur = Model.clientModel.service.get_surface(2)
assert sur.type == 'TYPE_WITHOUT_MEMBRANE_TENSION'
assert sur.geometry == 'GEOMETRY_PLANE'
sur = Model.clientModel.service.get_surface(3)
assert sur.type == 'TYPE_WITHOUT_MEMBRANE_TENSION'
assert sur.nurbs_control_point_count_in_direction_v == 3
assert Model.clientModel.service.get_surface(4).type == 'TYPE_WITHOUT_MEMBRANE_TENSION'