1111import compas_rhino .objects
1212from compas .datastructures import Mesh
1313from compas_masonry .session import MasonrySession as Session
14+ from compas_rui import feedback
1415from compas_tna .diagrams import FormDiagram
15-
16- # from compas_rui import feedback
1716from compas_tna .envelope import CrossVaultEnvelope
1817from compas_tna .envelope import DomeEnvelope
1918from compas_tna .envelope import Envelope
@@ -299,17 +298,48 @@ def RunCommand():
299298 obj = compas_rhino .objects .find_object (guid )
300299 mesh_middle = compas_rhino .conversions .mesh_to_compas (obj .Geometry , cls = Mesh )
301300
301+ guid = compas_rhino .objects .select_mesh ("Select fill mesh (Optional)" )
302+ rs .UnselectAllObjects ()
303+ if not guid :
304+ mesh_fill = None
305+ else :
306+ guids_bounds .append (guid )
307+ obj = compas_rhino .objects .find_object (guid )
308+ mesh_fill = compas_rhino .conversions .mesh_to_compas (obj .Geometry , cls = Mesh )
309+
302310 rs .HideObjects (guids_bounds )
303311
304312 envelope = MeshEnvelope .from_meshes (mesh_intrados , mesh_extrados , mesh_middle )
305313
314+ if mesh_fill :
315+ envelope .fill = mesh_fill
316+
306317 # =============================================================================
307318 # Not supported
308319 # =============================================================================
309320
310321 else :
311322 raise NotImplementedError
312323
324+ # =============================================================================
325+ # Commom parameters
326+ # =============================================================================
327+
328+ if not envelope :
329+ feedback .warn ("Error creating Envelope. Try again." )
330+ return
331+
332+ rho = rs .GetInteger ("Density masonry (rho)" , envelope .rho , 0 , 200 )
333+ if not rho :
334+ return
335+ envelope .rho = rho
336+
337+ if envelope .fill :
338+ rho_fill = rs .GetInteger ("Density masonry fill (rho_fill)" , envelope .rho_fill , 0 , 200 )
339+ if not rho_fill :
340+ return
341+ envelope .rho_fill = rho_fill
342+
313343 # =============================================================================
314344 # Update scene
315345 # =============================================================================
@@ -324,10 +354,13 @@ def RunCommand():
324354 show_intrados = session .settings .envelope .show_intrados
325355 show_middle = session .settings .envelope .show_middle
326356 show_extrados = session .settings .envelope .show_extrados
357+ show_fill = session .settings .envelope .show_extrados
327358
328359 session .scene .add (envelope .intrados , disjoint = True , show = show_intrados , name = "Intrados" , layer = "Masonry::TNA::Envelope" ) # type: ignore
329360 session .scene .add (envelope .middle , disjoint = True , show = show_middle , name = "Middle" , layer = "Masonry::TNA::Envelope" ) # type: ignore
330361 session .scene .add (envelope .extrados , disjoint = True , show = show_extrados , name = "Extrados" , layer = "Masonry::TNA::Envelope" ) # type: ignore
362+ if envelope .fill :
363+ session .scene .add (envelope .fill , disjoint = True , show = show_fill , name = "Fill" , layer = "Masonry::TNA::Envelope" ) # type: ignore
331364
332365 session .scene .redraw ()
333366 rs .Redraw ()
0 commit comments