Skip to content

Commit dd414d1

Browse files
committed
refactor: leverage property in face
1 parent f03b4be commit dd414d1

File tree

6 files changed

+76
-57
lines changed

6 files changed

+76
-57
lines changed

doc/source/cheat_sheet/cheat_sheet_script.qmd

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,9 +177,9 @@ root_part.commit()
177177
body_1 = root_part.create_body(name='TheBodyB1')
178178
body_1.commit()
179179
body_1_face_1 = body_1.create_face(name='TheFaceF1')
180-
body_1_face_1.set_vertices([])
181-
body_1_face_1.set_facets([])
182-
body_1_face_1.set_normals([])
180+
body_1_face_1.vertices = []
181+
body_1_face_1.facets = []
182+
body_1_face_1.normals = []
183183
body_1_face_1.commit()
184184
```
185185

examples/script-part.py

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -61,13 +61,12 @@
6161
# Each triangle/facet is defined by vertices and vertice normals.
6262

6363
# +
64-
face_b1_f1 = (
65-
body_b1.create_face(name="TheFaceF1")
66-
.set_vertices([0, 0, 0, 1, 0, 0, 0, 1, 0])
67-
.set_facets([0, 1, 2])
68-
.set_normals([0, 0, 1, 0, 0, 1, 0, 0, 1])
69-
.commit()
70-
)
64+
face_b1_f1 = body_b1.create_face(name="TheFaceF1")
65+
face_b1_f1.vertices = [0, 0, 0, 1, 0, 0, 0, 1, 0]
66+
face_b1_f1.facets = [0, 1, 2]
67+
face_b1_f1.normals = [0, 0, 1, 0, 0, 1, 0, 0, 1]
68+
face_b1_f1.commit()
69+
7170
print(root_part)
7271
# -
7372

@@ -86,13 +85,11 @@
8685

8786
body_sp1_b1 = sub_part1.create_body(name="TheBodySP1_B1").commit()
8887
print(root_part)
89-
face_sp1_b1_f1 = (
90-
body_sp1_b1.create_face(name="TheFaceSP1_B1_F1")
91-
.set_vertices([0, 1, 0, 0, 2, 0, 1, 2, 0])
92-
.set_facets([0, 1, 2])
93-
.set_normals([0, 0, 1, 0, 0, 1, 0, 0, 1])
94-
.commit()
95-
)
88+
face_sp1_b1_f1 = body_sp1_b1.create_face(name="TheFaceSP1_B1_F1")
89+
face_sp1_b1_f1.vertices = [0, 1, 0, 0, 2, 0, 1, 2, 0]
90+
face_sp1_b1_f1.facets = [0, 1, 2]
91+
face_sp1_b1_f1.normals = [0, 0, 1, 0, 0, 1, 0, 0, 1]
92+
face_sp1_b1_f1.commit()
9693
print(root_part)
9794
# -
9895

examples/script-simulation.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,11 @@
4343

4444
# +
4545
root_part = p.create_root_part()
46-
root_part.create_body(name="Body.1").create_face(name="Face.1").set_vertices([0, 1, 2, 0, 2, 2, 1, 2, 2]).set_facets([0, 1, 2]).set_normals(
47-
[0, 0, 1, 0, 0, 1, 0, 0, 1]
48-
)
46+
body = root_part.create_body(name="Body.1")
47+
face = body.create_face(name="Face.1")
48+
face.vertices = [0, 1, 2, 0, 2, 2, 1, 2, 2]
49+
face.facets = [0, 1, 2]
50+
face.normals = [0, 0, 1, 0, 0, 1, 0, 0, 1]
4951
root_part.commit()
5052
# -
5153

src/ansys/speos/script/face.py

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,13 @@ def __init__(
7272
# Create local Face
7373
self._face = core.Face(name=name, description=description, metadata=metadata)
7474

75-
def set_vertices(self, values: List[float]) -> Face:
75+
@property
76+
def vertices(self):
77+
res = self.face_link.get().vertices
78+
return res
79+
80+
@vertices.setter
81+
def vertices(self, values: List[float])-> Face:
7682
"""Set the face vertices.
7783
7884
Parameters
@@ -88,7 +94,13 @@ def set_vertices(self, values: List[float]) -> Face:
8894
self._face.vertices[:] = values
8995
return self
9096

91-
def set_facets(self, values: List[int]) -> Face:
97+
@property
98+
def facets(self):
99+
res = self.face_link.get().facets
100+
return res
101+
102+
@facets.setter
103+
def facets(self, values: List[int]) -> Face:
92104
"""Set the facets.
93105
94106
Parameters
@@ -104,7 +116,13 @@ def set_facets(self, values: List[int]) -> Face:
104116
self._face.facets[:] = values
105117
return self
106118

107-
def set_normals(self, values: List[float]) -> Face:
119+
@property
120+
def normals(self):
121+
res = self.face_link.get().normals
122+
return res
123+
124+
@normals.setter
125+
def normals(self, values: List[float]) -> Face:
108126
"""Set the face normals.
109127
110128
Parameters

tests/script_tests/test_Part.py

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -84,31 +84,27 @@ def test_create_face(speos: Speos):
8484
assert len(body1.body_link.get().face_guids) == 0
8585

8686
# Add a face
87-
face1 = (
88-
body1.create_face(name="Face.1")
89-
.set_vertices([0, 1, 0, 0, 2, 0, 1, 2, 0])
90-
.set_facets([0, 1, 2])
91-
.set_normals([0, 0, 1, 0, 0, 1, 0, 0, 1])
92-
.commit()
93-
)
94-
assert len(body1._geom_features) == 1
87+
face1 = body1.create_face(name="Face.1")
88+
face1.vertices = [0, 1, 0, 0, 2, 0, 1, 2, 0]
89+
face1.facets = [0, 1, 2]
90+
face1.normals = [0, 0, 1, 0, 0, 1, 0, 0, 1]
91+
face1.commit()
9592

93+
assert len(body1._geom_features) == 1
9694
assert len(body1.body_link.get().face_guids) == 1
9795
assert body1.body_link.get().face_guids[0] == face1.face_link.key
9896
assert face1.face_link.get().vertices == [0, 1, 0, 0, 2, 0, 1, 2, 0]
9997
assert face1.face_link.get().facets == [0, 1, 2]
10098
assert face1.face_link.get().normals == [0, 0, 1, 0, 0, 1, 0, 0, 1]
10199

102100
# Add another face + commit on root part
103-
face2 = (
104-
body1.create_face(name="Face.2")
105-
.set_vertices([0, 0, 0, 1, 0, 0, 0, 1, 0])
106-
.set_facets([0, 2, 1])
107-
.set_normals([0, 0, 1, 0, 0, 1, 0, 0, 1])
108-
.commit()
109-
)
110-
assert len(body1._geom_features) == 2
101+
face2 = body1.create_face(name="Face.2")
102+
face2.vertices = [0, 0, 0, 1, 0, 0, 0, 1, 0]
103+
face2.facets = [0, 2, 1]
104+
face2.normals = [0, 0, 1, 0, 0, 1, 0, 0, 1]
105+
face2.commit()
111106

107+
assert len(body1._geom_features) == 2
112108
assert len(body1.body_link.get().face_guids) == 2
113109
assert body1.body_link.get().face_guids[1] == face2.face_link.key
114110
assert face2.face_link.get().vertices == [0, 0, 0, 1, 0, 0, 0, 1, 0]

tests/script_tests/test_Simulation.py

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -334,9 +334,10 @@ def test_commit(speos: Speos):
334334

335335
# Prerequisites: a source and a sensor are needed (bug also a rootpart and optical property)
336336
root_part = p.create_root_part()
337-
root_part.create_body(name="Body.1").create_face(name="Face.1").set_vertices([0, 1, 0, 0, 2, 0, 1, 2, 0]).set_facets(
338-
[0, 1, 2]
339-
).set_normals([0, 0, 1, 0, 0, 1, 0, 0, 1])
337+
face = root_part.create_body(name="Body.1").create_face(name="Face.1")
338+
face.vertices = [0, 1, 0, 0, 2, 0, 1, 2, 0]
339+
face.facets = [0, 1, 2]
340+
face.normals = [0, 0, 1, 0, 0, 1, 0, 0, 1]
340341
root_part.commit()
341342

342343
opt_prop = p.create_optical_property(name="Material.1")
@@ -388,9 +389,10 @@ def test_reset(speos: Speos):
388389

389390
# Prerequisites: a source and a sensor are needed (bug also a rootpart and optical property)
390391
root_part = p.create_root_part()
391-
root_part.create_body(name="Body.1").create_face(name="Face.1").set_vertices([0, 1, 0, 0, 2, 0, 1, 2, 0]).set_facets(
392-
[0, 1, 2]
393-
).set_normals([0, 0, 1, 0, 0, 1, 0, 0, 1])
392+
face = root_part.create_body(name="Body.1").create_face(name="Face.1")
393+
face.vertices = [0, 1, 0, 0, 2, 0, 1, 2, 0]
394+
face.facets = [0, 1, 2]
395+
face.normals = [0, 0, 1, 0, 0, 1, 0, 0, 1]
394396
root_part.commit()
395397

396398
opt_prop = p.create_optical_property(name="Material.1")
@@ -440,9 +442,10 @@ def test_direct_modify_after_reset(speos: Speos):
440442

441443
# Prerequisites: a source and a sensor are needed (bug also a rootpart and optical property)
442444
root_part = p.create_root_part()
443-
root_part.create_body(name="Body.1").create_face(name="Face.1").set_vertices([0, 1, 0, 0, 2, 0, 1, 2, 0]).set_facets(
444-
[0, 1, 2]
445-
).set_normals([0, 0, 1, 0, 0, 1, 0, 0, 1])
445+
face = root_part.create_body(name="Body.1").create_face(name="Face.1")
446+
face.vertices = [0, 1, 0, 0, 2, 0, 1, 2, 0]
447+
face.facets = [0, 1, 2]
448+
face.normals = [0, 0, 1, 0, 0, 1, 0, 0, 1]
446449
root_part.commit()
447450

448451
opt_prop = p.create_optical_property(name="Material.1")
@@ -494,9 +497,10 @@ def test_inverse_modify_after_reset(speos: Speos):
494497

495498
# Prerequisites: a source and a sensor are needed (bug also a rootpart and optical property)
496499
root_part = p.create_root_part()
497-
root_part.create_body(name="Body.1").create_face(name="Face.1").set_vertices([0, 1, 0, 0, 2, 0, 1, 2, 0]).set_facets(
498-
[0, 1, 2]
499-
).set_normals([0, 0, 1, 0, 0, 1, 0, 0, 1])
500+
face = root_part.create_body(name="Body.1").create_face(name="Face.1")
501+
face.vertices = [0, 1, 0, 0, 2, 0, 1, 2, 0]
502+
face.facets = [0, 1, 2]
503+
face.normals = [0, 0, 1, 0, 0, 1, 0, 0, 1]
500504
root_part.commit()
501505

502506
opt_prop = p.create_optical_property(name="Material.1")
@@ -548,9 +552,10 @@ def test_interactive_modify_after_reset(speos: Speos):
548552

549553
# Prerequisites: a source and a sensor are needed (bug also a rootpart and optical property)
550554
root_part = p.create_root_part()
551-
root_part.create_body(name="Body.1").create_face(name="Face.1").set_vertices([0, 1, 0, 0, 2, 0, 1, 2, 0]).set_facets(
552-
[0, 1, 2]
553-
).set_normals([0, 0, 1, 0, 0, 1, 0, 0, 1])
555+
face = root_part.create_body(name="Body.1").create_face(name="Face.1")
556+
face.vertices = [0, 1, 0, 0, 2, 0, 1, 2, 0]
557+
face.facets = [0, 1, 2]
558+
face.normals = [0, 0, 1, 0, 0, 1, 0, 0, 1]
554559
root_part.commit()
555560

556561
opt_prop = p.create_optical_property(name="Material.1")
@@ -602,9 +607,10 @@ def test_delete(speos: Speos):
602607

603608
# Prerequisites: a source and a sensor are needed (bug also a rootpart and optical property)
604609
root_part = p.create_root_part()
605-
root_part.create_body(name="Body.1").create_face(name="Face.1").set_vertices([0, 1, 0, 0, 2, 0, 1, 2, 0]).set_facets(
606-
[0, 1, 2]
607-
).set_normals([0, 0, 1, 0, 0, 1, 0, 0, 1])
610+
face = root_part.create_body(name="Body.1").create_face(name="Face.1")
611+
face.vertices = [0, 1, 0, 0, 2, 0, 1, 2, 0]
612+
face.facets = [0, 1, 2]
613+
face.normals = [0, 0, 1, 0, 0, 1, 0, 0, 1]
608614
root_part.commit()
609615

610616
opt_prop = p.create_optical_property(name="Material.1")

0 commit comments

Comments
 (0)