compas_tno.utilities

Symmetry

apply_radial_symmetry(form[, center, ...])

Apply a radial symmetry based on a center points.

apply_symmetry_from_axis(form[, ...])

Apply a symmetry based on a series of axis of symmetry.

find_sym_axis_in_rect_patterns(data_form)

Find the axis of symmetry in rectangular patterns.

build_symmetry_matrix(form[, printout])

Build a symmetry matrix such as Asym * q = 0, with Asym shape (m - k; m)

build_symmetry_transformation(form[, printout])

Build a symmetry matrix Esym (m, k) such as q = Esym * qsym.

build_vertex_symmetry_transformation(form[, ...])

Build a symmetry matrix Evsym (n, k) such as z = Evsym * zb.

build_symmetry_matrix_supports(form[, printout])

Build a symmetry matrix to the supports.

Constraints

check_envelope_constraints(form[, tol])

Check if the envelope constraints are respected and return a penalty > 0 if not.

distance_target(form)

Returns a measure of the distance among the TN and the target surface.

rectangular_smoothing_constraints(form[, ...])

Constraint for smoothing the form diagram in a rectangular boundary.

assign_cracks(form[, dx, dy, type])

Assign cracks on a form diagram to the nodes desired

rollers_on_openings(form[, xy_span, max_f, ...])

Apply rollers to the rectangular boundaries of the pattern.

set_b_constraint(form[, printout])

Helper to set the b constraint on the reactions of the structure.

set_rollers_constraint(form[, printout])

Helper to constraints on rollers.

Loads

apply_selfweight_from_shape(form, shape[, ...])

Apply selfweight to the nodes of the form diagram based on the shape

apply_selfweight_from_pattern(form, pattern)

Apply selfweight to the nodes considering a different Form Diagram to locate loads.

apply_horizontal_multiplier(form[, lambd, ...])

Modify the applied loads considering a load multiplier.

apply_fill_load(form)

Modify the applied loads considering a fill.

apply_selfweight_from_shape_proxy(formdata, ...)

Apply selfweight to the nodes of the form diagram based on the shape from proxy

apply_selfweight_from_thrust(form[, ...])

Lump the selfweight in the nodes of the thrust network based on their current position.

Envelopes

apply_envelope_from_shape(form, shape)

Apply an envelope (intrados and extrados) to the FormDiagram based on the input shape.

apply_envelope_on_xy(form[, c])

Apply an envelope to the FormDiagram in the plan (x, y) by a given distance.

apply_envelope_on_xy_from_base(form, form_base)

Apply an envelope to the FormDiagram considering a given distance applied to a base form diagram.

apply_bounds_on_q(form[, qmin, qmax])

Apply bounds on the magnitude of the edges'force densities.

project_mesh_to_middle(mesh[, shape])

Project a mesh to the middle surface of the shape.

modify_shapedata_with_spr_angle(datashape)

Modify the Shape data to account for an springing angle.

apply_envelope_from_shape_proxy(formdata, ...)

Apply an envelope (intrados and extrados) to the FormDiagram based on the input shape data

apply_bounds_tub_tlb(form[, tubmax, tlbmax])

Apply bounds on the magnitude of the allowed increase in thickness of the upper-bound (tub), lower-bound (tlb), and of the reaction vector (tub_reacmax).

apply_bounds_reactions(form, shape[, ...])

Apply bounds on the magnitude of the allowed increase in thickness of the upper-bound (tub), lower-bound (tlb), and of the reaction vector (tub_reacmax).

Interpolation

interpolate_from_pointcloud(pointcloud, XY)

get_shape_ub(shape, x, y)

Get the height of the extrados in the point.

get_shape_ub_pattern(shape, XY)

Get the height of the extrados in a list of points.

get_shape_ub_fill(shape, x, y)

Get the height of the fill in the point.

get_shape_lb(shape, x, y)

Get the height of the intrados in the point.

get_shape_lb_pattern(shape, XY)

Get the height of the intrados in a list of points.

get_shape_middle(shape, x, y)

Get the height of the target/middle surface in the point.

delaunay_mesh_from_points(points)

Construct a Delaunay triangulation of set of vertices.

mesh_from_pointcloud(points)

Construct a Delaunay triangulation of set of vertices.

create_mesh_from_topology_and_pointcloud(...)

Create a mesh based on a given topology and the heights based in a pointcloud.

create_mesh_from_topology_and_basemesh(...)

Create a mesh based on a given topology and the heights based in a base mesh (usually denser).

Stiffness

compute_form_initial_lengths(form)

Compute the length of each edge based on the projection of the pattern onto the middle surface.

compute_edge_stiffness(form[, lengths, area, E])

Compute the stiffness of each edge based on the initial lengths, constant area and Young Modulus E.

compute_average_edge_stiffness(form[, E, Ah])

Compute the stiffness divided by length of each edge (constant thoughout the form diagram) based on the Young Modulus E and the Axial stress Ah.

Blocks

blocks_from_dual(dual, thk)

extended_dual(form[, cls])

Create the extended dual of the mesh, which is the centroid dual added with the faces in the boundary.

Form Modifications

split_intersection_lines(lines[, tol])

Split lines accorting to their intersection

form_add_lines_support(form, loaded_node, ...)

Add direct load paths from a chosen node to the chosen supports

form_parabolic_slide(form, delta[, y0, y1])

Modify the form diagram applying a parabolic displacement profile to the nodes

move_pattern_to_origin(mesh[, corners, ...])

Modify the form diagram to coincide the lower corner of its bounding box with the corners provided.

fix_mesh_corners(mesh[, corners])

Fix the corners of a mesh (FormDiagram)

fix_mesh_boundary(mesh)

Fix the boudnaries along a mesh (FormDiagram)

slide_diagram(form[, delta, y0, y1, tappered])

Apply a parabolic sliding to the nodes towards +x direction.

mesh_remove_two_valent_nodes(mesh[, cls, ...])

Remove 2 valent nodes from a mesh or form diagram

slide_pattern_inwards(form[, delta, y0, y1, ...])

Set parabolic vault heights.

displacement_map_paraboloid(form[, xc, yc, ...])

Create the displacement map based on a paraboloid sliding the structural pattern.

displacement_map_4parabolas(form[, y0, y1, ...])

Create the displacement map based on a paraboloid sliding the structural pattern.

displacement_map_parabola(form[, y0, y1])

Create the displacement map for a 1D parabola sliding of the structural pattern.

move_pattern_inwards(form[, tol])

Move nodes at the boundary slightly inwards or outwards

move_pattern_outwards(form[, tol])

Move nodes at the boundary slightly inwards or outwards

shuffle_diagram(form)

Shuffle the form diagram reordering the edges.

Data Analysis

diagram_of_thrust(thicknesses, solutions[, ...])

Plot a diagram of Thrusts based on the collected data from (n) points.

diagram_of_multiple_thrust(thicknesses, ...)

Plot a diagram of Thrusts based on the collected data on (m) problems each with (n) points.

diagram_of_thrust_load_mult(dimension, ...)

Plot a diagram of Thrusts to the problem of increasing a load multiplier based on the collected data from (n) points.

surface_GSF_load_mult(sizes, mins, maxs, legends)

Plot a diagram of Thrusts based on the collected data on (m) problems each with (n) points.

save_csv_row(thicknesses, solutions[, ...])

Save a CSV file from the routine with several min/max thrust computations

open_csv_row(path[, cut_last, printout])

Open a CSV file from the routine with several min/max thrust computations

interpolate_min_thk(sizes, solutions)

Interpolate min thickness from sizes and solutions computed

filter_min_thk(files_dict[, filters])

Filter structure with minimum thickness in a folder

lookup_folder(folder)

Lookup files in a folder

save_pointcloud(points_lb, points_ub, json_path)

Save pointcloud to a JSON file