proxy = Proxy('compas_assembly.datastructures')

# load meshes

FILE = os.path.join(os.path.dirname(__file__), 'armadillo.json')
meshes = compas.json_load(FILE)

# construct assembly

assembly = Assembly()
for mesh in meshes:
    block = mesh.copy(cls=Block)
    assembly.add_block(block)

# identify interfaces

assembly = proxy.assembly_interfaces_numpy(assembly, tmax=0.02, amin=0.0001)

# ==============================================================================
# Visualization
# ==============================================================================

artist = AssemblyArtist(assembly, layer="Armadillo")
artist.clear_layer()

artist.draw_nodes()
artist.draw_blocks()
artist.draw_edges()
artist.draw_interfaces()
Beispiel #2
0
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')

# ==============================================================================
# Visualize
# ==============================================================================

artist = AssemblyArtist(assembly, layer="Arch")
artist.clear_layer()