@@ -60,14 +60,28 @@ def drx_numpy(network, factor=1.0, tol=0.1, steps=10000, refresh=0, update=False
6060 from compas.numerical import drx_numpy
6161 from compas.utilities import i_to_rgb
6262
63- network = Network.from_obj(compas.get('lines.obj'))
64- network.update_default_vertex_attributes({'is_fixed': False, 'P': [1, 1, 0]})
65- network.update_default_edge_attributes({'E': 10, 'A': 1, 'ct': 't'})
66- network.set_vertices_attributes(network.leaves(), {'B': [0, 0, 0], 'is_fixed': True})
63+ from numpy import linspace
6764
68- drx_numpy(network=network, tol=0.001, refresh=5, update=True)
65+ L0 = 1
66+ L = 1.5
67+ n = 40
68+ EI = 0.2
69+ pins = [0, 5, 20, n - 5]
6970
70- plotter = NetworkPlotter(network)
71+ # Network
72+
73+ vertices = [[i, i, 0] for i in list(linspace(0, L0, n))]
74+ edges = [[i, i + 1] for i in range(n - 1)]
75+
76+ network = Network.from_vertices_and_edges(vertices=vertices, edges=edges)
77+ network.update_default_vertex_attributes({'is_fixed': False, 'P': [1, -2, 0], 'EIx': EI, 'EIy': EI})
78+ network.update_default_edge_attributes({'E': 50, 'A': 1, 'l0': L / n})
79+ network.set_vertices_attributes(pins, {'B': [0, 0, 0], 'is_fixed': True})
80+ network.beams = {'beam': {'nodes': list(range(n))}}
81+
82+ # Plotter
83+
84+ plotter = NetworkPlotter(network, figsize=(10, 7))
7185 lines = []
7286 for u, v in network.edges():
7387 lines.append({
@@ -76,13 +90,12 @@ def drx_numpy(network, factor=1.0, tol=0.1, steps=10000, refresh=0, update=False
7690 'color': '#cccccc',
7791 'width': 1.0})
7892 plotter.draw_lines(lines)
79- plotter.draw_vertices(facecolor={key: '#ff0000' for key in network.vertices_where({'is_fixed': True})})
93+ plotter.draw_vertices(radius=0.005, facecolor={key: '#ff0000' for key in network.vertices_where({'is_fixed': True})})
94+ plotter.draw_edges()
8095
81- fmax = max(network.get_edges_attribute('f'))
96+ # Solver
8297
83- plotter.draw_edges(
84- color={(u, v): i_to_rgb(attr['f'] / fmax) for u, v, attr in network.edges(True)},
85- width={(u, v): 10 * attr['f'] / fmax for u, v, attr in network.edges(True)})
98+ drx_numpy(network=network, tol=0.01, refresh=10, factor=30, update=True)
8699
87100 plotter.show()
88101
0 commit comments