コード例 #1
0
def horizontal_nodal_proxy(formdata, forcedata, *args, **kwargs):
    """RPC proxy for node-per-node calculation of horizontal equilibrium.

    Parameters
    ----------
    formdata : dict
        The data dictionary of a :class:`FormDiagram`.
    forcedata : dict
        The data dictionary of a :class:`ForceDiagram`.

    Additional Parameters
    ---------------------
    alpha : int, optional
        Weighting factor for computing target vectors for parallelisation
        of corresponding edges of Form and ForceDiagram.
        Default is `100` which means that the target vectors are equal to the
        FormDiagram edges.
    kmax : int, optional
        Maximum number of iterartions.
        Default is `100`.
    display : bool, optional
        Display all messages generated by the solver.
        Default is `True`.

    Returns
    -------
    tuple
        0. The updated data dict of the FormDiagram.
        1. The updated data dict of the ForceDiagram.

    """
    form = FormDiagram.from_data(formdata)
    force = ForceDiagram.from_data(forcedata)
    horizontal_nodal(form, force, *args, **kwargs)
    return form.to_data(), force.to_data()
コード例 #2
0
ファイル: helpers.py プロジェクト: tkmmark/compas-RV2
def load_session(session):
    print("loading session")
    scene = get_scene()
    scene.clear()
    if 'settings' in session:
        scene.settings = session['settings']
    if 'data' in session:
        data = session['data']
        if 'pattern' in data and data['pattern']:
            pattern = Pattern.from_data(data['pattern'])
            scene.add(pattern, name="pattern")
        else:
            if 'form' in data and data['form']:
                form = FormDiagram.from_data(data['form'])
                thrust = form.copy(
                    cls=ThrustDiagram)  # this is not a good idea
                scene.add(form, name="form")
                scene.add(thrust, name="thrust")

            if 'force' in data and data['force']:
                force = ForceDiagram.from_data(data['force'])
                force.primal = form
                form.dual = force
                force.update_angle_deviations()
                scene.add(force, name="force")
    scene.update()