C2.6 Variable Force Densities

Introduction of a cable to create a crease. (by Lotte)

Objectives

We want to learn how to form find the structure towards a design geometry with sufficient geometric stiffness. We can create articulation by introducing a crease: By controlling the force densities with variable magnitudes, we can attract forces in one continuous cable, while keeping the remaining force densities low.

Procedure

The file is exactly the same as in C2.4 External Loads with the following modifications (so default force density 'q' back to 1:

a. Find a Continuous Cable

Find a single continuous cable starting from a starting edge. We will now select the middle one.

The compas mesh edge_loop method finds all edges on the same loop as a given edge. So you must select a starting edge.

To find out the edge key of the starting edge, check its name in Rhino in the Properties: Objects window or check the 01_Geometry Import layer where we lablled the vertex keys.

# ==============================================================================
# Centre Cable through Variable Force Densities 
# ==============================================================================

# a. find center cable to create crease
center_start = (24, 33)
center_cable = mesh.edge_loop(center_start)
# ==============================================================================
# Visualize > NEW
# ==============================================================================

# color the starting edge in red and the rest of the edge loop in green
edgecolor = {}
for edge in center_cable:
    if edge not in mesh.edges():
        edge = (edge[1], edge[0])
    if edge == center_start:
        edgecolor[edge] = (255, 0, 0)
    else:
        edgecolor[edge] = (0, 255, 0)


baselayer = "DF21_C2::06 Variable Force Densities"

artist = MeshArtist(mesh, layer=baselayer+"::Mesh with Cable")
artist.clear_layer()

artist.draw_vertices(color={vertex: (255, 0, 0) for vertex in mesh.vertices_where({'is_anchor': True})})  # noqa: E501
artist.draw_edges(color=edgecolor)
artist.draw_faces()

b. Introduce the Crease

Increase the force densities in the middle cable to introduce the crease. Play with different magnitudes.

# ==============================================================================
# Centre Cable through Variable Force Densities > NEW
# ==============================================================================

...

# b. increase the force densities > NEW
mesh.edges_attribute('q', 10, keys=center_cable)

Same here, visualise the new geometry in a new layer, so that you can compare the difference. use the typical visualisation as in the previous steps, e.g. C2.4 External Loads.

The crease doesn't appear very articulated yet and still leaves wide patches with low geometric stiffness:

So this brings us to our next design iteration in step C2.7 Internal Supports where we will create a proper corrugation.

Last updated