compas-cem 0.8.4__py2.py3-none-any.whl → 0.8.6__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. compas_cem/__init__.py +1 -1
  2. compas_cem/diagrams/form.py +64 -1
  3. compas_cem/ghpython/components/ghuser/CompasCem_ArtistColors.ghuser +0 -0
  4. compas_cem/ghpython/components/ghuser/CompasCem_ArtistForm.ghuser +0 -0
  5. compas_cem/ghpython/components/ghuser/CompasCem_ArtistTopology.ghuser +0 -0
  6. compas_cem/ghpython/components/ghuser/CompasCem_ConstrainedFormFinding.ghuser +0 -0
  7. compas_cem/ghpython/components/ghuser/CompasCem_ConstraintDeviationEdgeLength.ghuser +0 -0
  8. compas_cem/ghpython/components/ghuser/CompasCem_ConstraintEdgeDirection.ghuser +0 -0
  9. compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodeLine.ghuser +0 -0
  10. compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodePlane.ghuser +0 -0
  11. compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodePoint.ghuser +0 -0
  12. compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodePolyline.ghuser +0 -0
  13. compas_cem/ghpython/components/ghuser/CompasCem_ConstraintReactionForce.ghuser +0 -0
  14. compas_cem/ghpython/components/ghuser/CompasCem_ConstraintTrailEdgeForce.ghuser +0 -0
  15. compas_cem/ghpython/components/ghuser/CompasCem_DisassembleForm.ghuser +0 -0
  16. compas_cem/ghpython/components/ghuser/CompasCem_DisassembleTopology.ghuser +0 -0
  17. compas_cem/ghpython/components/ghuser/CompasCem_EdgeDeviation.ghuser +0 -0
  18. compas_cem/ghpython/components/ghuser/CompasCem_EdgeTrail.ghuser +0 -0
  19. compas_cem/ghpython/components/ghuser/CompasCem_FormFinding.ghuser +0 -0
  20. compas_cem/ghpython/components/ghuser/CompasCem_Info.ghuser +0 -0
  21. compas_cem/ghpython/components/ghuser/CompasCem_JSONExportDiagram.ghuser +0 -0
  22. compas_cem/ghpython/components/ghuser/CompasCem_JSONImportForm.ghuser +0 -0
  23. compas_cem/ghpython/components/ghuser/CompasCem_JSONImportTopology.ghuser +0 -0
  24. compas_cem/ghpython/components/ghuser/CompasCem_NodeLoad.ghuser +0 -0
  25. compas_cem/ghpython/components/ghuser/CompasCem_NodeSupport.ghuser +0 -0
  26. compas_cem/ghpython/components/ghuser/CompasCem_OriginNodesMove.ghuser +0 -0
  27. compas_cem/ghpython/components/ghuser/CompasCem_ParameterDeviationEdge.ghuser +0 -0
  28. compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeLoadX.ghuser +0 -0
  29. compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeLoadY.ghuser +0 -0
  30. compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeLoadZ.ghuser +0 -0
  31. compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeOriginX.ghuser +0 -0
  32. compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeOriginY.ghuser +0 -0
  33. compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeOriginZ.ghuser +0 -0
  34. compas_cem/ghpython/components/ghuser/CompasCem_ParameterTrailEdge.ghuser +0 -0
  35. compas_cem/ghpython/components/ghuser/CompasCem_Proxy.ghuser +0 -0
  36. compas_cem/ghpython/components/ghuser/CompasCem_ResultsEdges.ghuser +0 -0
  37. compas_cem/ghpython/components/ghuser/CompasCem_ResultsSupportNodes.ghuser +0 -0
  38. compas_cem/ghpython/components/ghuser/CompasCem_SearchEdgeKey.ghuser +0 -0
  39. compas_cem/ghpython/components/ghuser/CompasCem_SearchNodeKey.ghuser +0 -0
  40. compas_cem/ghpython/components/ghuser/CompasCem_TopologyDiagram.ghuser +0 -0
  41. compas_cem/ghpython/components/ghuser/CompasCem_TrailsShift.ghuser +0 -0
  42. {compas_cem-0.8.4.dist-info → compas_cem-0.8.6.dist-info}/METADATA +3 -3
  43. {compas_cem-0.8.4.dist-info → compas_cem-0.8.6.dist-info}/RECORD +47 -47
  44. {compas_cem-0.8.4.dist-info → compas_cem-0.8.6.dist-info}/AUTHORS.rst +0 -0
  45. {compas_cem-0.8.4.dist-info → compas_cem-0.8.6.dist-info}/LICENSE +0 -0
  46. {compas_cem-0.8.4.dist-info → compas_cem-0.8.6.dist-info}/WHEEL +0 -0
  47. {compas_cem-0.8.4.dist-info → compas_cem-0.8.6.dist-info}/top_level.txt +0 -0
compas_cem/__init__.py CHANGED
@@ -27,7 +27,7 @@ __author__ = ["Rafael Pastrana"]
27
27
  __copyright__ = "Copyright 2020 - Princeton University"
28
28
  __license__ = "MIT License"
29
29
  __email__ = "arpj@princeton.edu"
30
- __version__ = "0.8.4"
30
+ __version__ = "0.8.6"
31
31
 
32
32
 
33
33
  # Directories
@@ -1,3 +1,6 @@
1
+ from compas_cem.elements import Node
2
+ from compas_cem.elements import Edge
3
+
1
4
  from compas_cem.diagrams import Diagram
2
5
 
3
6
 
@@ -34,7 +37,7 @@ class FormDiagram(Diagram):
34
37
  @classmethod
35
38
  def from_topology_diagram(cls, topology):
36
39
  """
37
- Construct the base of a form diagram from a topology diagram.
40
+ Construct a form diagram from a topology diagram.
38
41
  """
39
42
  form = topology.copy(cls=cls)
40
43
 
@@ -45,6 +48,66 @@ class FormDiagram(Diagram):
45
48
 
46
49
  return form
47
50
 
51
+ @classmethod
52
+ def from_equilibrium_state(cls, eq_state, structure):
53
+ """
54
+ Build a form diagram from an equilibrium state.
55
+ """
56
+ return form_from_eqstate(eq_state, structure, cls)
57
+
58
+
59
+ # ==============================================================================
60
+ # Helpers
61
+ # ==============================================================================
62
+
63
+ def form_from_eqstate(eqstate, structure, cls=None):
64
+ """
65
+ Generate a form diagram from an equilibrium state calculated with JAX CEM.
66
+ """
67
+ if cls is None:
68
+ cls = FormDiagram
69
+ form = cls()
70
+
71
+ # Add nodes
72
+ for node in structure.nodes:
73
+ form.add_node(Node(int(node)))
74
+
75
+ # Assign support nodes
76
+ for node in structure.support_nodes:
77
+ form.node_attribute(int(node), "type", "support")
78
+
79
+ # Add edges
80
+ for u, v in structure.edges:
81
+ form.add_edge(Edge(int(u), int(v), {}))
82
+
83
+ # Update form attributes
84
+ form_update(form, eqstate, structure)
85
+
86
+ return form
87
+
88
+
89
+ def form_update(form, eqstate, structure):
90
+ """
91
+ Update in-place the attributes of a form diagram with an equilibrium state.
92
+ """
93
+ xyz = eqstate.xyz.tolist()
94
+ loads = eqstate.loads.tolist()
95
+ reactions = eqstate.reactions.tolist()
96
+ lengths = eqstate.lengths.tolist()
97
+ forces = eqstate.forces.tolist()
98
+
99
+ # Update q values and lengths on edges
100
+ for edge in structure.edges:
101
+ idx = structure.edge_index[tuple(edge)]
102
+ form.edge_attribute(edge, name="force", value=forces[idx].pop())
103
+ form.edge_attribute(edge, name="lengths", value=lengths[idx].pop())
104
+
105
+ # Update residuals on nodes
106
+ for node in structure.nodes:
107
+ form.node_attributes(node, "xyz", xyz[node])
108
+ form.node_attributes(node, ["rx", "ry", "rz"], reactions[node])
109
+ form.node_attributes(node, ["qx", "qy", "qz"], loads[node])
110
+
48
111
  # ==============================================================================
49
112
  # Main
50
113
  # ==============================================================================
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: compas-cem
3
- Version: 0.8.4
3
+ Version: 0.8.6
4
4
  Summary: The Combinatorial Equilibrium Modeling framework for COMPAS
5
5
  Home-page: https://github.com/arpastrana/compas_cem
6
6
  Author: Rafael Pastrana
@@ -22,10 +22,10 @@ Requires-Python: >=3.8
22
22
  Description-Content-Type: text/markdown
23
23
  License-File: LICENSE
24
24
  License-File: AUTHORS.rst
25
- Requires-Dist: numpy==1.26.3
25
+ Requires-Dist: numpy<2
26
26
  Requires-Dist: compas==1.17.10
27
27
  Requires-Dist: trimesh==3.20.0
28
- Requires-Dist: autograd==1.5
28
+ Requires-Dist: autograd
29
29
  Requires-Dist: nlopt>2.7
30
30
 
31
31
  ********************************************************************************
@@ -1,9 +1,9 @@
1
- compas_cem/__init__.py,sha256=_F7ZzqKu751JCBc-yWaobBr9jqfQ89fewqgHFcfhWwM,2083
1
+ compas_cem/__init__.py,sha256=-hv9Jmb2e4rA8gYgEGTnaBMI1hTqjIeCuITYkUY0Pzc,2083
2
2
  compas_cem/data/__init__.py,sha256=bi1mgZ9pRnj5gtv1P4149KbjVjnYiBPxrBf8Ldosb18,446
3
3
  compas_cem/data/data.py,sha256=ociRshzFwUcrmXFQzRcXJW6OtzYKujhVN6VKVnlAje0,363
4
4
  compas_cem/diagrams/__init__.py,sha256=LK-jcMF7Lmcj81drGSGSgPqUOtJzG7mjveIw6XrXX4A,591
5
5
  compas_cem/diagrams/diagram.py,sha256=jOfDnPjoBphsMJITiz1aiO7SxiZVX4aUEshoT8tdE4A,8898
6
- compas_cem/diagrams/form.py,sha256=NLL6NesJQl08cFqq1Otcq87QIBC3CJOD4Wubz5GZLto,1470
6
+ compas_cem/diagrams/form.py,sha256=a1ro17WhGtO7EeK9bcELQh3nnWstfhfJq1rwA9kjOVQ,3459
7
7
  compas_cem/diagrams/mixins/__init__.py,sha256=xP5oDLuWiRUwGDM5SkkicNp3KPGUXBw_lkQRWco82RQ,578
8
8
  compas_cem/diagrams/mixins/edge_mixins.py,sha256=t2MYVlkirkBrgj9AGbnKAcbQcNPIp6zUaRxI9eyBUq0,1963
9
9
  compas_cem/diagrams/mixins/node_mixins.py,sha256=-VJhSy-eTvE4FWUsmGBcKU05tn7ghF3n0tuKcKNck20,2003
@@ -140,45 +140,45 @@ compas_cem/ghpython/components/CompasCem_TopologyDiagram/metadata.json,sha256=fX
140
140
  compas_cem/ghpython/components/CompasCem_TrailsShift/code.py,sha256=IKi3j4O4MFm49gE7WKI2q3CPVgEtHk6l_-dxSWKUmIY,677
141
141
  compas_cem/ghpython/components/CompasCem_TrailsShift/icon.png,sha256=Z4db6_cA8h6PLFiX_LSggoEtzsMsKoHq3etLwXlIBqU,2759
142
142
  compas_cem/ghpython/components/CompasCem_TrailsShift/metadata.json,sha256=HXblUM7_ySpRKv1EGdM6VKs_oWz8Y57m7m0-bRqNScI,1125
143
- compas_cem/ghpython/components/ghuser/CompasCem_ArtistColors.ghuser,sha256=ma24PBLrCTbnKLm2HBGAag-H3kew4MwidrJJotYb33Y,3280
144
- compas_cem/ghpython/components/ghuser/CompasCem_ArtistForm.ghuser,sha256=sNABacKS1XHT2o73AUnLcblGvBRwaA7yCnOqDGftNiY,3470
145
- compas_cem/ghpython/components/ghuser/CompasCem_ArtistTopology.ghuser,sha256=_SVyhhx_zsdOpnzO_Q_rQb8LcokD1t72JVye2r10988,3612
146
- compas_cem/ghpython/components/ghuser/CompasCem_ConstrainedFormFinding.ghuser,sha256=68AeZe9Vnh3PnRv1jVBmMDBesDtokvFoITFzLl9RYhU,4717
147
- compas_cem/ghpython/components/ghuser/CompasCem_ConstraintDeviationEdgeLength.ghuser,sha256=FshE3fsPgzbivxcBuT8JrD0aG1_s83wMHAKMRtSBcMo,3029
148
- compas_cem/ghpython/components/ghuser/CompasCem_ConstraintEdgeDirection.ghuser,sha256=sg_tPgzuZfrcxhL-bAyqTzKH7nbSGzkNVdvJTXe0u2Q,3109
149
- compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodeLine.ghuser,sha256=0SwAqHogztnZ0hDEBiiKM7WVChhvm1jILa6g21KXmMQ,3062
150
- compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodePlane.ghuser,sha256=7E9S-3_vAn2aDrHSjA2b5W00RSp9HFaP9VP9afYmDFs,3062
151
- compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodePoint.ghuser,sha256=0IQGN6NyxzSC49VGwJIPjow3qsjHsNFWaEsi0cnh0CM,3054
152
- compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodePolyline.ghuser,sha256=q6BquvHTXRRX7y4QJlf1TWonvsThAhczUNxdI4BAkkE,3055
153
- compas_cem/ghpython/components/ghuser/CompasCem_ConstraintReactionForce.ghuser,sha256=16P3uuGLpgDyyh8cwl34H3zz3FT6cmhTg3dEkPlmc5E,3094
154
- compas_cem/ghpython/components/ghuser/CompasCem_ConstraintTrailEdgeForce.ghuser,sha256=u1i8UyKJIxCfyZiTI54pmTjKQKEOLjDb-4UHi4xzu00,3034
155
- compas_cem/ghpython/components/ghuser/CompasCem_DisassembleForm.ghuser,sha256=5sNYDLd6DXiOmvmilP2uL7H0tPXRwrXdMjnBAQg0FqI,2929
156
- compas_cem/ghpython/components/ghuser/CompasCem_DisassembleTopology.ghuser,sha256=aBKNjSzw2JFwB0H0OtgjrJDBOlijmtFrHt9uw7WY77A,3329
157
- compas_cem/ghpython/components/ghuser/CompasCem_EdgeDeviation.ghuser,sha256=GtPevbn6wpoWGVxYS-FjKpmmaShhDsNiqZg0bHTpl5k,2958
158
- compas_cem/ghpython/components/ghuser/CompasCem_EdgeTrail.ghuser,sha256=pVRllVgn7W_Fh4FF8mkTa5WEMq1U8VCpvEVEM87zTXc,3189
159
- compas_cem/ghpython/components/ghuser/CompasCem_FormFinding.ghuser,sha256=w5-k5aUWljvxWWiTSIesdyQKP0ULlukwsyxt6iyj8wA,3120
160
- compas_cem/ghpython/components/ghuser/CompasCem_Info.ghuser,sha256=JPJV7FR3LyxSeaGJmmys7P5TSWUJEKCIsix0woF4TZA,2654
161
- compas_cem/ghpython/components/ghuser/CompasCem_JSONExportDiagram.ghuser,sha256=RVxIG4ItdJEftVkRSIdptT29uitxcs-it-V-oU92h58,2959
162
- compas_cem/ghpython/components/ghuser/CompasCem_JSONImportForm.ghuser,sha256=y7Iy90GFLdqaUhigCkqFLwQEfN3bordSMO7vussMI6c,2872
163
- compas_cem/ghpython/components/ghuser/CompasCem_JSONImportTopology.ghuser,sha256=j_tLTmeqzg7Y6wVj4O2Uf32ike69ysQP4kloRDc_w_4,2885
164
- compas_cem/ghpython/components/ghuser/CompasCem_NodeLoad.ghuser,sha256=mpufG0IsAsige9oLH2co_VDRlzgSdJipYH51PnLShYY,2948
165
- compas_cem/ghpython/components/ghuser/CompasCem_NodeSupport.ghuser,sha256=3yA8VIdIhuWNaPvhp8w6XqpP0hQ12oAIn5jNzVQCOms,2818
166
- compas_cem/ghpython/components/ghuser/CompasCem_OriginNodesMove.ghuser,sha256=RCvqPMvyBxuZ1T7bgcdac49HxsvxFj7yOoLFv6tlA10,3130
167
- compas_cem/ghpython/components/ghuser/CompasCem_ParameterDeviationEdge.ghuser,sha256=VppaU1r--QRhpdbnCkaqtTFFgCgVjucaQC2Ke5YIcJ0,3051
168
- compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeLoadX.ghuser,sha256=hEj70kCsaJW3oif6F45mbWaaKkFMq2pCubcSkbY0Q68,3050
169
- compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeLoadY.ghuser,sha256=_JIoEb44sLs5zKaCDgVuiHC13Ijjrz3HTQSbR6kvJC0,3049
170
- compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeLoadZ.ghuser,sha256=mBc7clSN7K4tCGf0ugpTjlNwRLuqj3KW5rvwWq-Jsd4,3050
171
- compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeOriginX.ghuser,sha256=EsBccIoerAFv5ThxuRb7z8yzAL6nWNto6cfYbvNJxPE,3048
172
- compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeOriginY.ghuser,sha256=ALv-yPanGF816HAjTDmZE0FMe1LuzS5d0Xtk06j5WzE,3046
173
- compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeOriginZ.ghuser,sha256=l1w6Oa7SGJcRdhDco-zAwcJ53btjlTOrW_4XF_fCjDo,3038
174
- compas_cem/ghpython/components/ghuser/CompasCem_ParameterTrailEdge.ghuser,sha256=vGQtSzHSZXCo9PDMViw86dkkopFa7BPNMt_ihUjuhRI,3045
175
- compas_cem/ghpython/components/ghuser/CompasCem_Proxy.ghuser,sha256=eYnkFCiVtAAIBbf7rtB4xqFVRcejlcTh_oP4UwLCUyY,2987
176
- compas_cem/ghpython/components/ghuser/CompasCem_ResultsEdges.ghuser,sha256=nwhMHN4HuWqAYZnfApZPXrl2pTaux2gjLRE90ZLcOe0,2995
177
- compas_cem/ghpython/components/ghuser/CompasCem_ResultsSupportNodes.ghuser,sha256=m9OTlzSz_9Um1IgxW2ZkBjvLsnaKY828En6k0b1LP2g,2951
178
- compas_cem/ghpython/components/ghuser/CompasCem_SearchEdgeKey.ghuser,sha256=3_wC88BxnH6VmJp324zdzYX750nvu5yfPH7fNm3PmkA,3050
179
- compas_cem/ghpython/components/ghuser/CompasCem_SearchNodeKey.ghuser,sha256=yrzufWLEBZdgM8Jq74st1FFRNvaYe82rd1Ju--aT7zU,2986
180
- compas_cem/ghpython/components/ghuser/CompasCem_TopologyDiagram.ghuser,sha256=NsF9VfwCyl-2dsqsFaLjjDAIx8EZDpiSy5WEuNyYxck,3229
181
- compas_cem/ghpython/components/ghuser/CompasCem_TrailsShift.ghuser,sha256=VdUGDgT3wCXzwIHNkeCX7F6wLRFV8DMWYdJq3ugbDDo,3038
143
+ compas_cem/ghpython/components/ghuser/CompasCem_ArtistColors.ghuser,sha256=aN-HgIItJMe61tu0h0-Xu6RprgGLhGjSMwfjQ-VVfXo,3278
144
+ compas_cem/ghpython/components/ghuser/CompasCem_ArtistForm.ghuser,sha256=b70swYe1znfXF0kD2AMtObKglsCoGWuHKF7Llg0va8c,3474
145
+ compas_cem/ghpython/components/ghuser/CompasCem_ArtistTopology.ghuser,sha256=PQ3M_54Joy4KGpp8PAe9HM3ncocMgpLn18bCNzTFy7I,3625
146
+ compas_cem/ghpython/components/ghuser/CompasCem_ConstrainedFormFinding.ghuser,sha256=y1XnxXjI44-1G2Qy57WiUrv0YLW31kT2ovH8MVKj8Ic,4711
147
+ compas_cem/ghpython/components/ghuser/CompasCem_ConstraintDeviationEdgeLength.ghuser,sha256=qposPW6FYLpbz1VvcWwRCA56BmhzuGhnU4tEs3joQ5Y,3033
148
+ compas_cem/ghpython/components/ghuser/CompasCem_ConstraintEdgeDirection.ghuser,sha256=4DimWKy3VdRC5hNO4yamye3z_zCQcpOKnW1UlDB96EU,3094
149
+ compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodeLine.ghuser,sha256=a8Sw9U1hZMgC-uJXLUekLmWxIOHcU5wEflVwwCHvCrM,3057
150
+ compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodePlane.ghuser,sha256=kXLiVCekycqf0rMBppJoL8WI6lVOl60uUrfTlWnkAgY,3064
151
+ compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodePoint.ghuser,sha256=zYEIkkjqL78aSb9mZ8gtmfrL2fHrEgpY5GASMGOxDZs,3045
152
+ compas_cem/ghpython/components/ghuser/CompasCem_ConstraintNodePolyline.ghuser,sha256=29QKxLkmUKJHF08xneBe_x91m2E5w3sPuI_1VDW3uDQ,3051
153
+ compas_cem/ghpython/components/ghuser/CompasCem_ConstraintReactionForce.ghuser,sha256=Fhb6urR_7ap5s_7qOykZ5vtPRYp92CzZ-LEgqU52HR0,3095
154
+ compas_cem/ghpython/components/ghuser/CompasCem_ConstraintTrailEdgeForce.ghuser,sha256=aBefl8Zn6oWR4gwymoT_w1-l17N7CrIQmqntIM9WdWc,3039
155
+ compas_cem/ghpython/components/ghuser/CompasCem_DisassembleForm.ghuser,sha256=IGL-CTUdBHw3dd16RUoqA1iwazU2e-grUKdxlhlZwE0,2931
156
+ compas_cem/ghpython/components/ghuser/CompasCem_DisassembleTopology.ghuser,sha256=ykyGUafw0-jNIGAeNRzCmKWVPDg_tV2_hPawxJY34sE,3330
157
+ compas_cem/ghpython/components/ghuser/CompasCem_EdgeDeviation.ghuser,sha256=swsKOcGv3vp78rqDT3ldJeP5wH6LIDikiRGrqMSNH3Q,2957
158
+ compas_cem/ghpython/components/ghuser/CompasCem_EdgeTrail.ghuser,sha256=pjUDjx8Aczso6WAh54FLV_dZH8q6sd8B1wJ_Zp7yDeQ,3185
159
+ compas_cem/ghpython/components/ghuser/CompasCem_FormFinding.ghuser,sha256=-B78_0BQoH-iX2x9F_aK0qwL9ADVL-HRZWWa5R6k43w,3117
160
+ compas_cem/ghpython/components/ghuser/CompasCem_Info.ghuser,sha256=aCbzDMnFDSMcFnG39YiX1x55XsWOkJ4C2ygFAp0NNsk,2651
161
+ compas_cem/ghpython/components/ghuser/CompasCem_JSONExportDiagram.ghuser,sha256=xVdBznhWOAvKCGsSYzKRSAH4YqNX47G8BxrDEbZTn1E,2962
162
+ compas_cem/ghpython/components/ghuser/CompasCem_JSONImportForm.ghuser,sha256=6Bh2bkFzN898_hxO55ijnAfPYV8qTCllwGKB9-x7naQ,2868
163
+ compas_cem/ghpython/components/ghuser/CompasCem_JSONImportTopology.ghuser,sha256=sFV8uv6BuNnWYsgIdko-gaQfYwQMu-_WJc169xaNoyY,2879
164
+ compas_cem/ghpython/components/ghuser/CompasCem_NodeLoad.ghuser,sha256=cl8-UoGOK_gfr13MwYY54JIaIG7wOEGSBAzfDoBj38E,2953
165
+ compas_cem/ghpython/components/ghuser/CompasCem_NodeSupport.ghuser,sha256=0Lj6yfQX1fKp9b-aEB0EK4_HggVgusKoKOsYv330CrA,2822
166
+ compas_cem/ghpython/components/ghuser/CompasCem_OriginNodesMove.ghuser,sha256=9mGfr00-SUhqjDCT6tDQ-JXnKv4RjegKIKoWt3kzAqM,3130
167
+ compas_cem/ghpython/components/ghuser/CompasCem_ParameterDeviationEdge.ghuser,sha256=dq3kmgzmrahhVVwugBJEyvbdDMRqG3UAnItMmbpzeWg,3053
168
+ compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeLoadX.ghuser,sha256=Hn0751HZZtQKhUxTQ9vZPOehnwfe4bFYU5gv9exqkv4,3043
169
+ compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeLoadY.ghuser,sha256=FkHn8ZrBXhGSItOisXa_ELMKTfTPj3vW28IgIAvdiLU,3049
170
+ compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeLoadZ.ghuser,sha256=TogaJP1GzxqFxxLXXBQImP_OLR7_7wyA0u7ov8WZLKo,3042
171
+ compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeOriginX.ghuser,sha256=zORPRonMgluwLyBgUrxrEVrNSuAMWF8_H7a8LUvaxR4,3046
172
+ compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeOriginY.ghuser,sha256=elYZHCLM1JbQuskJhhwinbvM5KxBfp_VJIuN0XnwOuk,3045
173
+ compas_cem/ghpython/components/ghuser/CompasCem_ParameterNodeOriginZ.ghuser,sha256=HIv89bv7l3diSqSwmsFNA-u1eWTsO56x7t9BSjT9Xe0,3046
174
+ compas_cem/ghpython/components/ghuser/CompasCem_ParameterTrailEdge.ghuser,sha256=IM3Cbd3LIIpxobjQwWUq4ghGK_KcKqzG4THpZfzLADs,3053
175
+ compas_cem/ghpython/components/ghuser/CompasCem_Proxy.ghuser,sha256=6mdPExjx3dfHldLyf9F2PVBg3w84FOjg27Yb20GdDK8,2993
176
+ compas_cem/ghpython/components/ghuser/CompasCem_ResultsEdges.ghuser,sha256=IYxnRx-R9M6HteRUZM8DQyfrfRCVLdu5XR0JgS6Vitg,2996
177
+ compas_cem/ghpython/components/ghuser/CompasCem_ResultsSupportNodes.ghuser,sha256=ekykacF9USeIFcTj_ZQa6ujvu4nYNisVAG4gFgxgTwY,2947
178
+ compas_cem/ghpython/components/ghuser/CompasCem_SearchEdgeKey.ghuser,sha256=ODj8qN2cNfpkF2DV7XcGHtmjw1K3XS7N-_FDEgWh0Z0,3038
179
+ compas_cem/ghpython/components/ghuser/CompasCem_SearchNodeKey.ghuser,sha256=YrP5bJ02cnB6ZQBN3jOZE2qsaxcXfiWpW-sn2h-K2KE,2982
180
+ compas_cem/ghpython/components/ghuser/CompasCem_TopologyDiagram.ghuser,sha256=TBkbsVAtsTfbfAPGG9In0TYrvoBxTrX_dAzM4--64Rw,3224
181
+ compas_cem/ghpython/components/ghuser/CompasCem_TrailsShift.ghuser,sha256=6JIbgincxFt8SUbm_wJqMLFqkFESKt41AOYjE6HbJ20,3047
182
182
  compas_cem/loads/__init__.py,sha256=2c5bC8Tg6PRXhHx0UYIjfX-zQK0tqg7QuurhJs-Qft8,442
183
183
  compas_cem/loads/node.py,sha256=LLwOgKBiUrzjx11usPsuTahyknwtQPAXaHHXgaq7yWE,1703
184
184
  compas_cem/optimization/__init__.py,sha256=MN6EDOppSMH_JrJ8yDjw79Jw5nVepTTNCGkNSJ8pWaQ,1371
@@ -219,9 +219,9 @@ compas_cem/viewers/formobject.py,sha256=99X_8YM7UY577qyXrgmyStheNgqB0RcoDZFb6cMy
219
219
  compas_cem/viewers/register.py,sha256=QVBpOzAApXbF61kEsd8WC8Mkn73_sbHI5r9pS3TzHrc,386
220
220
  compas_cem/viewers/topologyobject.py,sha256=JhyBlFznJ3sve0KcDjc07pIaRIJJDoQqnNcDmq10IDM,4021
221
221
  compas_cem/viewers/viewer.py,sha256=Bv0E7SyJ4ECMORVseJWU-0kH3uKjCy6O7VxE1tgsVHM,1414
222
- compas_cem-0.8.4.dist-info/AUTHORS.rst,sha256=-OpKl0OpTQVw6EIT68zWlqNgHxNiT4jcWglorf4sdrs,1799
223
- compas_cem-0.8.4.dist-info/LICENSE,sha256=GvaxOoSt0SbcZBdaYBSPeWjyowWtO47cNtD1Z_Dw2K0,1098
224
- compas_cem-0.8.4.dist-info/METADATA,sha256=48nEc8xPEJGK2ctj2nvabEAxS75XQjyQQhkK_8bkGps,7587
225
- compas_cem-0.8.4.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
226
- compas_cem-0.8.4.dist-info/top_level.txt,sha256=MFhp-uQuMkg2A7bc0xz9h7CFiq-92Vdi-gZSaFlGb1s,11
227
- compas_cem-0.8.4.dist-info/RECORD,,
222
+ compas_cem-0.8.6.dist-info/AUTHORS.rst,sha256=-OpKl0OpTQVw6EIT68zWlqNgHxNiT4jcWglorf4sdrs,1799
223
+ compas_cem-0.8.6.dist-info/LICENSE,sha256=GvaxOoSt0SbcZBdaYBSPeWjyowWtO47cNtD1Z_Dw2K0,1098
224
+ compas_cem-0.8.6.dist-info/METADATA,sha256=JdBjyRLiDXFJd9DSBF4FgEBOnZwKhRxW89xThCIP9bM,7576
225
+ compas_cem-0.8.6.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
226
+ compas_cem-0.8.6.dist-info/top_level.txt,sha256=MFhp-uQuMkg2A7bc0xz9h7CFiq-92Vdi-gZSaFlGb1s,11
227
+ compas_cem-0.8.6.dist-info/RECORD,,