Esempio n. 1
0
 def draw(self, layer=None, clear_layer=True, settings=None):
     from compas_tna.rhino import FormArtist
     artist = FormArtist(self, layer=layer)
     if clear_layer:
         artist.clear_layer()
     if not settings:
         settings = {}
     if settings.get('show.vertices', True):
         vertexcolor = {}
         vertexcolor.update({
             key: '#00ff00'
             for key in self.vertices_where({'is_fixed': True})
         })
         vertexcolor.update({
             key: '#0000ff'
             for key in self.vertices_where({'is_external': True})
         })
         vertexcolor.update({
             key: '#ff0000'
             for key in self.vertices_where({'is_anchor': True})
         })
         artist.draw_vertices(color=vertexcolor)
     if settings.get('show.edges', True):
         artist.draw_edges(keys=list(self.edges_where({'is_edge': True})))
     if settings.get('show.faces', True):
         artist.draw_faces(keys=list(self.faces_where({'is_loaded': True})))
     if settings.get('show.forces', False):
         artist.draw_forces(scale=settings.get('scale.forces', 0.1))
     if settings.get('show.reactions', False):
         artist.draw_reactions(scale=settings.get('scale.reactions', 0.01))
     artist.redraw()
    def draw(self, layer=None, clear_layer=True, settings=None):
        """Draw the form diagram in Rhino.

        Parameters
        ----------
        layer : str, optional
            The layer in which the drawing should be contained.
        clear_layer : bool, optional
            Clear the layer if ``True``.
            Default is ``True``.
        settings : dict, optional
            A dictionary of settings overwriting the default settings of the artist.
        """
        from compas_tna.rhino import FormArtist
        artist = FormArtist(self, layer=layer, settings=settings)
        if clear_layer:
            artist.clear_layer()
        artist.draw()
Esempio n. 3
0
 def draw(self, layer=None, clear_layer=True):
     from compas_tna.rhino import FormArtist
     artist = FormArtist(self, layer=layer)
     if clear_layer:
         artist.clear_layer()
     vertexcolor = {}
     vertexcolor.update({
         key: '#00ff00'
         for key in self.vertices_where({'is_fixed': True})
     })
     vertexcolor.update({
         key: '#0000ff'
         for key in self.vertices_where({'is_external': True})
     })
     vertexcolor.update({
         key: '#ff0000'
         for key in self.vertices_where({'is_anchor': True})
     })
     artist.draw_vertices(color=vertexcolor)
     artist.draw_edges(keys=list(self.edges_where({'is_edge': True})))
     artist.draw_faces(keys=list(self.faces_where({'is_loaded': True})))
     artist.redraw()
Esempio n. 4
0
interior = boundaries[1:]

form.set_vertices_attribute('is_anchor', True, keys=exterior)

form.update_exterior(exterior, feet=1)
form.update_interior(interior)

# create the force diagram

force = ForceDiagram.from_formdiagram(form)

# compute equilibrium

horizontal(form, force, kmax=20, display=True)
vertical_from_formforce(form, force, density=form.init_scale(), kmax=100)

# visualise result

artist = FormArtist(form, layer='FormDiagram')

artist.clear_layer()

artist.draw_vertices(keys=list(form.vertices_where({'is_external': False})))
artist.draw_edges(keys=list(form.edges_where({'is_edge': True, 'is_external': False})))
artist.draw_faces(fkeys=list(form.faces_where({'is_loaded': True})), join_faces=True)

artist.draw_reactions(scale=1.0)
artist.draw_forces(scale=0.05)

artist.redraw()