def load_session(session): print("loading session") scene = get_scene() scene.clear() if 'settings' in session: scene.settings = session['settings'] if 'data' in session: data = session['data'] if 'form' in data and data['form']: form = FormNetwork.from_data(data['form']) scene.add(form, name="form") if 'force' in data and data['force']: force = ForceVolMesh.from_data(data['force']) force.primal = form form.dual = force force.update_angle_deviations() scene.add(force, name="force") scene.update()
compas.raise_if_ironpython() __author__ = 'Juney Lee' __copyright__ = 'Copyright 2019, BLOCK Research Group - ETH Zurich' __license__ = 'MIT License' __email__ = '*****@*****.**' # ------------------------------------------------------------------------------ # 1. make vomesh from rhino polysurfaces (force diagram) # ------------------------------------------------------------------------------ layer = 'volmesh' guids = rs.GetObjects("select polysurfaces", filter=rs.filter.polysurface) rs.HideObjects(guids) volmesh = ForceVolMesh() volmesh = volmesh_from_polysurfaces(volmesh, guids) volmesh.layer = layer volmesh.attributes['name'] = layer # ------------------------------------------------------------------------------ # 2. make dual network (form diagram) # ------------------------------------------------------------------------------ dual_layer = 'dual_network' dual_network = volmesh_dual_network(volmesh, cls=FormNetwork) dual_network.layer = dual_layer dual_network.attributes['name'] = dual_layer # move dual_network offset = 3
compas.raise_if_ironpython() __author__ = 'Juney Lee' __copyright__ = 'Copyright 2019, BLOCK Research Group - ETH Zurich' __license__ = 'MIT License' __email__ = '*****@*****.**' # ------------------------------------------------------------------------------ # 1. make vomesh from rhino polysurfaces # ------------------------------------------------------------------------------ layer = 'force_volmesh' guids = rs.GetObjects("select polysurfaces", filter=rs.filter.polysurface) rs.HideObjects(guids) forcediagram = ForceVolMesh() forcediagram = volmesh_from_polysurfaces(forcediagram, guids) forcediagram.layer = layer forcediagram.attributes['name'] = layer # ------------------------------------------------------------------------------ # 2. make dual network from volmesh (form diagram) # ------------------------------------------------------------------------------ layer = 'form_network' formdiagram = volmesh_dual_network(forcediagram, cls=FormNetwork) formdiagram.layer = layer formdiagram.attributes['name'] = layer x_move = formdiagram.bounding_box()[0] * 2 for vkey in formdiagram.vertex:
from compas_3gs.rhino import draw_vertex_fixities try: import rhinoscriptsyntax as rs except ImportError: compas.raise_if_ironpython() # ------------------------------------------------------------------------------ # 1. make vomesh from rhino polysurfaces # ------------------------------------------------------------------------------ layer_force = 'force_volmesh' guids = rs.GetObjects("select polysurfaces", filter=rs.filter.polysurface) rs.HideObjects(guids) forcediagram = ForceVolMesh() forcediagram = volmesh_from_polysurfaces(forcediagram, guids) forcediagram.layer = layer_force forcediagram.attributes['name'] = layer_force forcediagram.draw_faces() forcediagram.draw_edges() forcediagram.draw_vertices() # ------------------------------------------------------------------------------ # 2. modify volmesh vertices # ------------------------------------------------------------------------------ while True: rs.EnableRedraw(True)
__author__ = 'Juney Lee' __copyright__ = 'Copyright 2019, BLOCK Research Group - ETH Zurich' __license__ = 'MIT License' __email__ = '*****@*****.**' # ------------------------------------------------------------------------------ # 1. make vomesh from rhino polysurfaces # ------------------------------------------------------------------------------ layer = 'force_volmesh' guids = rs.GetObjects("select polysurfaces", filter=rs.filter.polysurface) rs.HideObjects(guids) forcediagram = ForceVolMesh() forcediagram = volmesh_from_polysurfaces(forcediagram, guids) forcediagram.layer = layer forcediagram.attributes['name'] = layer forcediagram.draw(layer=layer) # ------------------------------------------------------------------------------ # 2. pick vertices to fix # ------------------------------------------------------------------------------ vkeys = VertexSelector.select_vertices(forcediagram, message='Select vertices to fix:')
from compas_3gs.rhino import rhino_volmesh_pull_halffaces try: import rhinoscriptsyntax as rs except ImportError: compas.raise_if_ironpython() # ------------------------------------------------------------------------------ # 1. make vomesh from rhino polysurfaces # ------------------------------------------------------------------------------ layer_force = 'force_volmesh' guids = rs.GetObjects("select polysurfaces", filter=rs.filter.polysurface) rs.HideObjects(guids) forcediagram = ForceVolMesh() forcediagram = volmesh_from_polysurfaces(forcediagram, guids, '2f') forcediagram.layer = layer_force forcediagram.attributes['name'] = layer_force forcediagram.draw() # -------------------------------------------------------------------------- # 1. display boundary halffaces # -------------------------------------------------------------------------- boundary_halffaces = forcediagram.halffaces_on_boundaries() forcediagram.clear() forcediagram.draw_edges() forcediagram.draw_faces(faces=boundary_halffaces)
def RunCommand(is_interactive): if '3GS' not in sc.sticky: compas_rhino.display_message('3GS has not been initialised yet.') return system = sc.sticky['3GS']['system'] scene = sc.sticky['3GS']['scene'] filepath = compas_rhino.select_file(folder=system['session.dirname'], filter=system['session.extension']) if not filepath: return if not os.path.exists(filepath): return if not os.path.isfile(filepath): return if not filepath.endswith(".{}".format(system['session.extension'])): return dirname, basename = os.path.split(filepath) filename, extension = os.path.splitext(basename) system['session.dirname'] = dirname system['session.filename'] = filename with open(filepath, "r") as f: session = json.load(f, cls=DataDecoder) if not session['data']['force']: compas_rhino.display_message('The session file has no force diagram.') forcediagram = ForceVolMesh.from_data(session['data']['force']) force_id = scene.add_forcevolmesh(forcediagram, name='force', layer='3GS::ForceDiagram') force = scene.find(force_id) if 'settings' in session['scene']['force']: force.settings.update(session['scene']['force']['settings']) if 'anchor' in session['scene']['force']: force.anchor = session['scene']['force']['anchor'] if 'location' in session['scene']['force']: force.location = session['scene']['force']['location'] if 'scale' in session['scene']['form']: force.scale = session['scene']['force']['scale'] if session['data']['form']: formdiagram = FormNetwork.from_data(session['data']['form']) form_id = scene.add_formnetwork(formdiagram, name='form', layer='3GS::FormDiagram') form = scene.find(form_id) forcediagram.primal = formdiagram formdiagram.dual = forcediagram if 'settings' in session['scene']['form']: form.settings.update(session['scene']['form']['settings']) if 'anchor' in session['scene']['form']: form.anchor = session['scene']['form']['anchor'] if 'location' in session['scene']['form']: form.location = session['scene']['form']['location'] if 'scale' in session['scene']['form']: form.scale = session['scene']['form']['scale'] scene.update() scene.save()
from compas_3gs.utilities import get_force_colors_hf try: import rhinoscriptsyntax as rs except ImportError: compas.raise_if_ironpython() # ------------------------------------------------------------------------------ # 1. make vomesh from rhino polysurfaces # ------------------------------------------------------------------------------ layer = 'force_volmesh' guids = rs.GetObjects("select polysurfaces", filter=rs.filter.polysurface) rs.HideObjects(guids) forcediagram = ForceVolMesh() forcediagram = volmesh_from_polysurfaces(forcediagram, guids) forcediagram.layer = layer forcediagram.attributes['name'] = layer # ------------------------------------------------------------------------------ # 2. make dual network from volmesh (form diagram) # ------------------------------------------------------------------------------ layer = 'form_network' formdiagram = volmesh_dual_network(forcediagram, cls=FormNetwork) formdiagram.layer = layer formdiagram.attributes['name'] = layer # move dual_network offset = 2
from compas_rhino.artists import VolMeshArtist try: import rhinoscriptsyntax as rs except ImportError: compas.raise_if_ironpython() # ------------------------------------------------------------------------------ # 1. make vomesh from rhino polysurfaces (force diagram) # ------------------------------------------------------------------------------ layer = 'volmesh' guids = rs.GetObjects("select polysurfaces", filter=rs.filter.polysurface) rs.HideObjects(guids) volmesh = ForceVolMesh() volmesh = volmesh_from_polysurfaces(volmesh, guids) volmesh.layer = layer volmesh.attributes['name'] = layer # ------------------------------------------------------------------------------ # 2. make dual volmesh (form diagram) # ------------------------------------------------------------------------------ dual_layer = 'dual_volmesh' dual_volmesh = volmesh_dual_volmesh(volmesh, cls=FormVolMesh) dual_volmesh.layer = dual_layer dual_volmesh.attributes['name'] = dual_layer # move dual_network offset = 3