box = Mesh.from_shape(box) box.quads_to_triangles() A = box.to_vertices_and_faces() sphere = Sphere(Point(1, 1, 1), 1) sphere = Mesh.from_shape(sphere, u=30, v=30) sphere.quads_to_triangles() B = sphere.to_vertices_and_faces() # ============================================================================== # Remesh the sphere # ============================================================================== proxy.package = 'compas_cgal.meshing' B = proxy.remesh(B, 0.3, 10) # ============================================================================== # Compute the intersections # ============================================================================== proxy.package = 'compas_cgal.intersections' pointsets = proxy.intersection_mesh_mesh(A, B) # ============================================================================== # Process output # ==============================================================================
from compas.rpc import Proxy from compas_rhino.artists import MeshArtist proxy = Proxy() proxy.restart_server() compas_rhino.clear() box = Box.from_width_height_depth(2, 2, 2) box = Mesh.from_shape(box) box.quads_to_triangles() A = box.to_vertices_and_faces() sphere = Sphere(Point(1, 1, 1), 1) sphere = Mesh.from_shape(sphere, u=30, v=30) sphere.quads_to_triangles() B = sphere.to_vertices_and_faces() proxy.package = "compas_cgal.meshing" B = proxy.remesh(B, 0.3, 10) proxy.package = "compas_cgal.booleans" V, F = proxy.boolean_union(A, B) mesh = Mesh.from_vertices_and_faces(V, F) artist = MeshArtist(mesh) artist.draw_faces()
from __future__ import print_function from compas.rpc import Proxy proxy = Proxy() A = [[3, 2, 0], [1, -1, 0], [0, 5, 1]] b = [2, 4, -1] proxy.package = "scipy.linalg" x = proxy.solve(A, b) print(x)
span = 10 depth = 0.5 thickness = 0.7 n = 40 arch = Arch(rise, span, thickness, depth, n) assembly = Assembly.from_geometry(arch) assembly.node_attribute(0, 'is_support', True) assembly.node_attribute(n - 1, 'is_support', True) # ============================================================================== # Identify the interfaces # ============================================================================== proxy.package = 'compas_assembly.datastructures' # make proxy methods into configurable objects # with __call__ for execution # store the method objects in a dict of callables assembly = proxy.assembly_interfaces_numpy(assembly, tmax=0.02) # ============================================================================== # Compute interface forces # ============================================================================== proxy.package = 'compas_rbe.equilibrium' assembly = proxy.compute_interface_forces_cvx(assembly, solver='CPLEX') # ==============================================================================
box = Mesh.from_shape(box) box.quads_to_triangles() A = box.to_vertices_and_faces() sphere = Sphere(Point(1, 1, 1), 1) sphere = Mesh.from_shape(sphere, u=30, v=30) sphere.quads_to_triangles() B = sphere.to_vertices_and_faces() # ============================================================================== # Remesh the sphere # ============================================================================== proxy.package = 'compas_cgal.meshing' B = proxy.remesh(B, 0.3, 100) # ============================================================================== # Compute the boolean mesh # ============================================================================== proxy.package = 'compas_cgal.booleans' V, F = proxy.boolean_union(A, B) mesh = Mesh.from_vertices_and_faces(V, F) # ============================================================================== # Visualize
# proxy.package = 'compas_assembly.datastructures' # data = { # 'assembly': assembly.to_data(), # 'blocks': {str(key): assembly.blocks[key].to_data() for key in assembly.blocks}} # data = proxy.assembly_interfaces_xfunc(data, tmax=0.02) # assembly.data = data['assembly'] # assembly.blocks = {int(key): Block.from_data(data['blocks'][key]) for key in data['blocks']} # ============================================================================== # Compute interface forces # ============================================================================== proxy.package = 'compas_rbe.equilibrium' data = { 'assembly': assembly.to_data(), 'blocks': {str(key): assembly.blocks[key].to_data() for key in assembly.blocks} } data = proxy.compute_interface_forces_xfunc(data, backend='CVX', solver='CPLEX') assembly.data = data['assembly'] assembly.blocks = { int(key): Block.from_data(data['blocks'][key])