Skip to content

Commit 88ec373

Browse files
committed
TNA commands update
1 parent e8e80b2 commit 88ec373

File tree

3 files changed

+43
-10
lines changed

3 files changed

+43
-10
lines changed

commands/TNA_envelope.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,15 @@ def RunCommand():
2020

2121
session["params"] = {}
2222

23-
session.delete("formdiagram")
2423
session.delete("envelope")
24+
session.delete("formdiagram")
2525
session.delete("analysis")
2626

27-
for obj in session.scene.find_all_by_itemtype(FormDiagram):
27+
for obj in session.scene.find_all_by_itemtype(Envelope):
2828
obj.clear()
2929
session.scene.remove(obj)
3030

31-
for obj in session.scene.find_all_by_itemtype(Envelope):
31+
for obj in session.scene.find_all_by_itemtype(FormDiagram):
3232
obj.clear()
3333
session.scene.remove(obj)
3434

@@ -42,6 +42,10 @@ def RunCommand():
4242
if not option:
4343
return
4444

45+
# =============================================================================
46+
# From a tempalate in the library
47+
# =============================================================================
48+
4549
if option == "FromLibrary":
4650
option = rs.GetString(message="Choose a pattern", strings=["CrossVault", "PointedVault", "PavilionVault", "Dome"])
4751
if not option:
@@ -172,7 +176,7 @@ def RunCommand():
172176
raise NotImplementedError
173177

174178
# =============================================================================
175-
# Middle
179+
# From the middle surface
176180
# =============================================================================
177181

178182
elif option == "FromMiddle":
@@ -182,7 +186,7 @@ def RunCommand():
182186
pass
183187

184188
# =============================================================================
185-
# Intrados
189+
# From the intrados mesh
186190
# =============================================================================
187191

188192
elif option == "FromIntrados":
@@ -192,7 +196,7 @@ def RunCommand():
192196
pass
193197

194198
# =============================================================================
195-
# BoundsMeshes
199+
# From the intrados and extrados meshes
196200
# =============================================================================
197201

198202
elif option == "FromBounds":

commands/TNA_formdiagram.py

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
import rhinoscriptsyntax as rs # type: ignore
66

77
from compas_masonry.session import MasonrySession as Session
8+
from compas_rui import feedback
89
from compas_tna.diagrams import FormDiagram
10+
from compas_tna.envelope import Envelope
911

1012
# Would be better to differentiate between an analysis using a known typology,
1113
# for which both form diagram and envelope can be auto-generated based on a few params,
@@ -21,14 +23,27 @@
2123
def RunCommand():
2224
session = Session()
2325

26+
# =============================================================================
27+
# Remove existing form diagram
28+
# =============================================================================
29+
2430
session.delete("formdiagram")
2531

2632
for obj in session.scene.find_all_by_itemtype(FormDiagram):
2733
obj.clear()
2834
session.scene.remove(obj)
2935

3036
# =============================================================================
31-
# Create a form diagram
37+
# Check for existing envelope
38+
# =============================================================================
39+
40+
envelope: Envelope = session["envelope"]
41+
if not envelope:
42+
feedback.warn("There is no Envelope. Please create one first.")
43+
return
44+
45+
# =============================================================================
46+
# Create a (new) form diagram
3247
# =============================================================================
3348

3449
formdiagram = None
@@ -37,12 +52,24 @@ def RunCommand():
3752
if not option:
3853
return
3954

55+
# =============================================================================
56+
# From Rhino lines
57+
# =============================================================================
58+
4059
if option == "FromLines":
4160
pass
4261

62+
# =============================================================================
63+
# From a Rhino mesh
64+
# =============================================================================
65+
4366
elif option == "FromRhinoMesh":
4467
pass
4568

69+
# =============================================================================
70+
# From a predefined pattern
71+
# =============================================================================
72+
4673
elif option == "FromPattern":
4774
option = rs.GetString(message="From Pattern", strings=["Circular", "Cross", "Fan", "Ortho"])
4875
if not option:
@@ -212,6 +239,8 @@ def RunCommand():
212239

213240
session["formdiagram"] = formdiagram
214241

242+
envelope.apply_bounds_to_formdiagram(formdiagram)
243+
215244
session.scene.add(formdiagram, name="FormDiagram", layer="Masonry::TNA::FormDiagram") # type: ignore
216245
session.scene.redraw()
217246

commands/TNA_supports.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
def RunCommand():
1414
session = Session()
1515

16-
formdiagram = session["formdiagram"]
16+
formdiagram: FormDiagram = session["formdiagram"]
1717

1818
if not formdiagram:
1919
feedback.warn("There is no FormDiagram. Please create one first.")
@@ -62,8 +62,8 @@ def RunCommand():
6262

6363
rs.UnselectAllObjects()
6464

65-
formobject.show_edges = False # type: ignore
66-
formobject.show_faces = True # type: ignore
65+
formobject.show_edges = True # type: ignore
66+
formobject.show_faces = False # type: ignore
6767
formobject.redraw()
6868

6969
rs.Redraw()

0 commit comments

Comments
 (0)