Exemple #1
0
def ansys_remesh(mesh, output_path, filename, size=None):
    s = Structure()
    s.add_nodes_elements_from_mesh(mesh, 'ShellElement')
    s = areas_from_mesh(s, mesh)
    write_preprocess(output_path, filename)
    write_request_mesh_areas(s,
                             output_path,
                             filename,
                             size=size,
                             smart_size=None,
                             div=None)
    ansys_launch_process(s, output_path, filename)
    mesh = mesh_from_ansys_results(output_path)
    return mesh
Exemple #2
0
def weld_meshes_from_layer(layer_input, layer_output):
    """
    Grab meshes on an input layer and weld them onto an output layer.

    Parameters
    ----------
    layer_input : str
        Layer containing the Blender meshes to weld.
    layer_output : str
        Layer to plot single welded mesh.

    Returns
    -------
    None

    """

    print('Welding meshes on layer:{0}'.format(layer_input))

    S = Structure(path=' ')

    add_nodes_elements_from_layers(S,
                                   mesh_type='ShellElement',
                                   layers=layer_input)

    faces = []

    for element in S.elements.values():
        faces.append(element.nodes)

    try:
        clear_layer(layer_output)
    except:
        create_layer(layer_output)

    vertices = S.nodes_xyz()

    xdraw_mesh(name='welded_mesh',
               vertices=vertices,
               faces=faces,
               layer=layer_output)
Exemple #3
0
def ansys_remesh_3d(mesh, output_path, name, size=None, hex=False, div=None):

    s = Structure(output_path, name=name)

    s.add_nodes_elements_from_mesh(mesh, 'ShellElement')
    s = areas_from_mesh(s, mesh)
    filename = name + '.txt.'
    ansys_open_pre_process(output_path, filename)
    write_request_mesh_volume(s,
                              output_path,
                              name,
                              size=size,
                              hex=hex,
                              div=div)
    ansys_launch_process(output_path,
                         name,
                         cpus=4,
                         license='teaching',
                         delete=True)
    mesh = volmesh_from_ansys_results(output_path, name)
    return mesh
Exemple #4
0
def weld_meshes_from_layer(layer_input, layer_output):
    """ Grab meshes on an input layer and weld them onto an output layer.

    Parameters
    ----------
    layer_input : str
        Layer containing the Rhino meshes to weld.
    layer_output : str
        Layer to plot single welded mesh.

    Returns
    -------
    None

    """

    print('Welding meshes on layer:{0}'.format(layer_input))

    mdl = Structure(path=' ')

    add_nodes_elements_from_layers(mdl,
                                   mesh_type='ShellElement',
                                   layers=layer_input)

    faces = []

    for element in mdl.elements.values():
        enodes = element.nodes

        if len(enodes) == 3:
            enodes.append(enodes[-1])

        if len(enodes) == 4:
            faces.append(enodes)

    rs.DeleteObjects(rs.ObjectsByLayer(layer_output))
    rs.CurrentLayer(layer_output)
    rs.AddMesh(mdl.nodes_xyz(), faces)
__author__    = ['Andrew Liew <*****@*****.**>']
__copyright__ = 'Copyright 2018, BLOCK Research Group - ETH Zurich'
__license__   = 'MIT License'
__email__     = '*****@*****.**'


# Local ex

for line in rs.ObjectsByLayer('elset_lines'):
    ez = subtract_vectors(rs.CurveEndPoint(line), rs.CurveStartPoint(line))
    ex = normalize_vector(cross_vectors(ez, [0, 0, 1]))
    rs.ObjectName(line, json.dumps({'ex': ex}))
    
# Structure

mdl = Structure(name='beam_bathe', path='C:/Temp/')

# Elements

rhino.add_nodes_elements_from_layers(mdl, line_type='BeamElement', layers='elset_lines')

# Sets

rhino.add_sets_from_layers(mdl, layers=['nset_support', 'nset_load'])

# Materials

mdl.add_material(ElasticIsotropic(name='mat_elastic', E=10**7, v=0.0001, p=1))

# Sections
Exemple #6
0
from compas_fea.cad import rhino
from compas_fea.structure import ElasticIsotropic
from compas_fea.structure import ElementProperties as Properties
from compas_fea.structure import GeneralStep
from compas_fea.structure import PointLoad
from compas_fea.structure import PinnedDisplacement
from compas_fea.structure import RollerDisplacementX
from compas_fea.structure import ShellSection
from compas_fea.structure import Structure

# Author(s): Andrew Liew (github.com/andrewliew)

# Structure

mdl = Structure(name='mesh_plate', path='C:/Temp/')

# Elements

rhino.add_nodes_elements_from_layers(mdl,
                                     mesh_type='ShellElement',
                                     layers='elset_mesh')

# Sets

rhino.add_sets_from_layers(mdl,
                           layers=['nset_load', 'nset_left', 'nset_right'])

# Materials

mdl.add(ElasticIsotropic(name='mat_elastic', E=75 * 10**9, v=0.3, p=2700))
from compas_fea.structure import PointLoad
from compas_fea.structure import Structure
from compas_fea.structure import Set

from math import pi

import compas_vibro

from compas.datastructures import Network

for i in range(60):
    print()

# Structure

mdl = Structure(name='beam_simple', path=compas_vibro.TEMP + '/')

# Elements

filepath = os.path.join(compas_vibro.DATA, 'network_10x10.json')

network = Network.from_json(filepath)
mdl.add_nodes_elements_from_network(network=network,
                                    element_type='BeamElement',
                                    elset='elset_lines',
                                    axes={'ex': [0, 0, 1]})

# Materials

mdl.add(ElasticIsotropic(name='mat_elastic', E=20 * 10**9, v=0.3, p=1500))
Exemple #8
0
from compas_fea.cad import rhino
from compas_fea.structure import Structure
from compas_fea.structure import ElasticIsotropic
from compas_fea.structure import SolidSection
from compas_fea.structure import ElementProperties
from compas_fea.structure import PinnedDisplacement
from compas_fea.structure import PointLoad
from compas_fea.structure import GeneralStep

import rhinoscriptsyntax as rs

# Author(s): Andrew Liew (github.com/andrewliew)

mdl = Structure(name='example_tets', path='C:/Temp/')

# Triangles

guid = rs.ObjectsByLayer('mesh')[0]
rhino.discretise_mesh(mesh=guid,
                      layer='mesh_discretised',
                      target=0.300,
                      min_angle=15)

# Weld

rhino.weld_meshes_from_layer(layer_input='mesh_discretised',
                             layer_output='mesh_welded')

# Tetrahedrons

mesh = rs.ObjectsByLayer('mesh_welded')[0]
Exemple #9
0
from compas_fea.cad import rhino
from compas_fea.structure import ElasticIsotropic
from compas_fea.structure import ElementProperties as Properties
from compas_fea.structure import GeneralStep
from compas_fea.structure import PinnedDisplacement
from compas_fea.structure import PointLoad
from compas_fea.structure import SolidSection
from compas_fea.structure import Structure

import rhinoscriptsyntax as rs

# Author(s): Andrew Liew (github.com/andrewliew)

# Structure

mdl = Structure(name='block_tets', path='C:/Temp/')

# Tetrahedrons

mesh = rs.ObjectsByLayer('base_mesh')[0]
rhino.add_tets_from_mesh(mdl, name='elset_tets', mesh=mesh, volume=10**(-4))

# Sets

rhino.add_sets_from_layers(mdl, layers=['nset_base', 'nset_top'])

# Materials

mdl.add(ElasticIsotropic(name='mat_elastic', E=10 * 10**9, v=0.3, p=1))

# Sections
Exemple #10
0
from compas_fea.structure import CircularSection
from compas_fea.structure import ElasticIsotropic
from compas_fea.structure import ElementProperties as Properties
from compas_fea.structure import GeneralDisplacement
from compas_fea.structure import GeneralStep
from compas_fea.structure import PinnedDisplacement
from compas_fea.structure import PointLoad
from compas_fea.structure import Structure

from math import pi

# Author(s): Andrew Liew (github.com/andrewliew)

# Structure

mdl = Structure(name='beam_simple', path='C:/Temp/')

# Elements

network = rhino.network_from_lines(layer='elset_lines')
mdl.add_nodes_elements_from_network(network=network,
                                    element_type='BeamElement',
                                    elset='elset_lines',
                                    axes={'ex': [0, -1, 0]})

# Sets

rhino.add_sets_from_layers(mdl,
                           layers=['nset_left', 'nset_right', 'nset_weights'])

# Materials
Exemple #11
0
from compas_fea.structure import ElementProperties as Properties
from compas_fea.structure import GeneralStep
from compas_fea.structure import PointLoad
from compas_fea.structure import GravityLoad
from compas_fea.structure import PinnedDisplacement
from compas_fea.structure import ElasticIsotropic
from compas_fea.structure import ShellSection
from compas_fea.structure import Structure

import rhinoscriptsyntax as rs

# Author(s): Tomas Mendez Echenagucia (github.com/tmsmendez)

# Structure

mdl = Structure(name='meshpillow_from_rhino', path='C:/Temp/')

# Elements

rhino.add_nodes_elements_from_layers(mdl,
                                     mesh_type='ShellElement',
                                     layers=['mesh'])

# Sets

rhino.add_sets_from_layers(mdl, layers=['supports', 'lpts1', 'lpts2'])

# Materials

mdl.add(ElasticIsotropic(name='mat_elastic', E=20 * 10**9, v=0.3, p=1500))
Exemple #12
0
import rhinoscriptsyntax as rs
import json

# Author(s): Andrew Liew (github.com/andrewliew)

# Local ex

for i in rs.ObjectsByLayer('elset_beams'):
    ez = subtract_vectors(rs.CurveEndPoint(i), rs.CurveStartPoint(i))
    ex = normalize_vector(cross_vectors(ez, [0, 0, 1]))
    rs.ObjectName(i, '_{0}'.format(json.dumps({'ex': ex})))

# Structure

mdl = Structure(name='beam_bathe', path='C:/Temp/')

# Elements

rhino.add_nodes_elements_from_layers(mdl,
                                     line_type='BeamElement',
                                     layers='elset_beams')

# Sets

rhino.add_sets_from_layers(mdl, layers=['nset_support', 'nset_load'])

# Materials

mdl.add(ElasticIsotropic(name='mat_elastic', E=10**7, v=10**(-5), p=1))
Exemple #13
0
    for element in S.elements.values():
        faces.append(element.nodes)

    try:
        clear_layer(layer_output)
    except:
        create_layer(layer_output)

    vertices = S.nodes_xyz()

    xdraw_mesh(name='welded_mesh',
               vertices=vertices,
               faces=faces,
               layer=layer_output)


# ==============================================================================
# Debugging
# ==============================================================================

if __name__ == "__main__":

    from compas_fea.structure import Structure

    # mdl = Structure.load_from_obj(filename='/home/al/compas/compas_fea/data/_workshop/example_tets.obj')
    # plot_voxels(mdl, step='step_load', field='smises', vdx=0.100)

    mdl = Structure.load_from_obj(filename='C:/Temp/block_tets.obj')
    plot_voxels(mdl, step='step_load', field='um', vdx=0.010)
Exemple #14
0
from compas_fea.structure import ElementProperties as Properties
from compas_fea.structure import FixedDisplacement
from compas_fea.structure import GeneralStep
from compas_fea.structure import GravityLoad
from compas_fea.structure import PointLoad
from compas_fea.structure import ShellSection
from compas_fea.structure import Steel
from compas_fea.structure import Structure

import rhinoscriptsyntax as rs

# Author(s): Andrew Liew (github.com/andrewliew)

# Structure

mdl = Structure(name='mesh_mould', path='C:/Temp/')

# Elements

rhino.add_nodes_elements_from_layers(mdl,
                                     mesh_type='ShellElement',
                                     layers=['elset_wall', 'elset_plinth'])

# Sets

rhino.add_sets_from_layers(mdl, layers=['nset_fixed', 'nset_loads'])

# Materials

mdl.add([
    Concrete(name='mat_concrete', fck=40),
Exemple #15
0
from compas_fea.cad import rhino
from compas_fea.structure import ElasticIsotropic
from compas_fea.structure import ElementProperties as Properties
from compas_fea.structure import GeneralDisplacement
from compas_fea.structure import GeneralStep
from compas_fea.structure import GravityLoad
from compas_fea.structure import PinnedDisplacement
from compas_fea.structure import RollerDisplacementX
from compas_fea.structure import ShellSection
from compas_fea.structure import Structure

# Author(s): Andrew Liew (github.com/andrewliew)

# Structure

mdl = Structure(name='mesh_strip', path='C:/Temp/')

# Elements

rhino.add_nodes_elements_from_layers(mdl,
                                     mesh_type='ShellElement',
                                     layers='elset_mesh')

# Sets

rhino.add_sets_from_layers(mdl,
                           layers=['nset_left', 'nset_right', 'nset_middle'])

# Materials

mdl.add(ElasticIsotropic(name='mat_elastic', E=75 * 10**9, v=0.3, p=2700))
Exemple #16
0
from compas_fea.structure import ElementProperties as Properties
from compas_fea.structure import GeneralStep
from compas_fea.structure import FixedDisplacement
from compas_fea.structure import ShellSection
from compas_fea.structure import PointLoad
from compas_fea.structure import Steel
from compas_fea.structure import Structure

__author__ = ['Tomas Mendez Echenagucia <*****@*****.**>']
__copyright__ = 'Copyright 2017, BLOCK Research Group - ETH Zurich'
__license__ = 'MIT License'
__email__ = '*****@*****.**'

# Structure

mdl = Structure(name='shell_bench', path=compas_fea.TEMP)

# Nodes and Elements

xyz = [[0, 0, 0], [1, 0, 0], [2, 0, 0], [0, 1, 0], [1, 1, 0], [2, 1, 0],
       [0, 2, 0], [1, 2, 0], [2, 2, 0]]

nodes = mdl.add_nodes(xyz)
shells = [[0, 1, 4, 3], [1, 2, 5, 4], [3, 4, 7, 6], [4, 5, 8, 7]]

shells = [mdl.add_element(shell, 'ShellElement') for shell in shells]

# Sets

elset_shells = mdl.add_set('elset_shells', 'element', shells)
from compas_fea.structure import ElementProperties
from compas_fea.structure import GravityLoad
from compas_fea.structure import GeneralStep

from compas_rhino.helpers import mesh_from_guid

# Author(s): Tomás Méndez Echenagucia (github.com/tmsmendez)

# get mesh from rhino layer ----------------------------------------------------

mesh = mesh_from_guid(Mesh, rs.ObjectsByLayer('mesh')[0])

# add shell elements from mesh -------------------------------------------------

name = 'shell_example'
s = Structure(name=name, path=compas_fea.TEMP)
shell_keys = s.add_nodes_elements_from_mesh(mesh, element_type='ShellElement')
s.add_set('shell', 'element', shell_keys)

# add supports from rhino layer-------------------------------------------------

pts = rs.ObjectsByLayer('pts')
pts = [rs.PointCoordinates(pt) for pt in pts]
nkeys = []
for pt in pts:
    nkeys.append(s.check_node_exists(pt))
s.add_set(name='support_nodes', type='NODE', selection=nkeys)
supppots = FixedDisplacement(name='supports', nodes='support_nodes')
s.add_displacement(supppots)

# add materials and sections -----------------------------------------------
Exemple #18
0
from compas_fea.structure import GravityLoad
from compas_fea.structure import PointLoad
from compas_fea.structure import RollerDisplacementY
from compas_fea.structure import ShellSection
from compas_fea.structure import SolidSection
from compas_fea.structure import Steel
from compas_fea.structure import Structure
from compas_fea.structure import TrussSection

from compas_blender.utilities import get_object_by_name

# Author(s): Andrew Liew (github.com/andrewliew)

# Structure

mdl = Structure(name='block_bridge', path='C:/Temp/')

# Tetrahedrons

blender.add_tets_from_mesh(mdl,
                           name='elset_tets',
                           mesh=get_object_by_name('elset_tets'))

# Elements

blender.add_nodes_elements_from_layers(
    mdl,
    layers=['elset_top_plate', 'elset_bot_plate'],
    mesh_type='ShellElement')
blender.add_nodes_elements_from_layers(mdl,
                                       layers='elset_ties',
from compas_fea.structure import PipeSection
from compas_fea.structure import PointLoad
from compas_fea.structure import RollerDisplacementXZ
from compas_fea.structure import Steel
from compas_fea.structure import Structure


__author__    = ['Andrew Liew <*****@*****.**>']
__copyright__ = 'Copyright 2018, BLOCK Research Group - ETH Zurich'
__license__   = 'MIT License'
__email__     = '*****@*****.**'


# Structure

mdl = Structure(name='beam_frame', path='C:/Temp/')

# Elements

rhino.add_nodes_elements_from_layers(mdl, line_type='BeamElement', layers='elset_lines')

# Sets

layers = ['nset_pins', 'nset_load_v', 'nset_load_h', 'nset_rollers', 'elset_top']
rhino.add_sets_from_layers(mdl, layers=layers)

# Materials

mdl.add_material(Steel(name='mat_steel'))

# Sections
from compas_fea.structure import GeneralStep
from compas_fea.structure import GravityLoad
from compas_fea.structure import PinnedDisplacement
from compas_fea.structure import RectangularSection
from compas_fea.structure import RollerDisplacementZ
from compas_fea.structure import Structure
from compas_fea.structure import TrapezoidalSection

__author__ = ['Andrew Liew <*****@*****.**>']
__copyright__ = 'Copyright 2018, BLOCK Research Group - ETH Zurich'
__license__ = 'MIT License'
__email__ = '*****@*****.**'

# Structure

mdl = Structure(name='beam_tree', path='C:/Temp/')

# Elements

layers = [
    'struts_mushroom', 'struts_bamboo', 'joints_mushroom', 'joints_bamboo',
    'joints_grid'
]
rhino.add_nodes_elements_from_layers(mdl,
                                     line_type='BeamElement',
                                     layers=layers)

# Sets

rhino.add_sets_from_layers(mdl, layers=['supports_bot', 'supports_top'])
Exemple #21
0
                result = postprocess(self.nodes, self.elements, self.ux,
                                     self.uy, self.uz, data, 'element', 1,
                                     cbar, 255, iptype, nodal)
                toc, _, cnodes, *_ = result

                self.update_vertices_colors(
                    {i: j
                     for i, j in enumerate(cnodes)})
                self.update_statusbar('Plotting: {0:.3f} s'.format(toc))

        except:

            pass


# ==============================================================================
# Main
# ==============================================================================

if __name__ == "__main__":

    from compas_fea.structure import Structure

    # fnm = '/home/al/compas/compas_fea/data/_workshop/example_truss.obj'
    # fnm = '/home/al/compas/compas_fea/data/_workshop/example_shell.obj'
    fnm = '/home/al/compas/compas_fea/data/_workshop/example_tets.obj'

    mdl = Structure.load_from_obj(fnm)
    mdl.view()
                 (max_ - min_)) + minthick
        mesh.set_face_attribute(fkey, 'thick', thick)


def assign_structure_property_to_mesh_faces(mesh, name, value):
    for fkey in mesh.faces():
        mesh.set_face_attribute(fkey, name, value)


if __name__ == '__main__':

    filename = 'example_From_mesh'
    path = os.path.dirname(os.path.abspath(__file__)) + '/'
    mesh = Mesh.from_obj('../data/quadmesh_planar.obj')
    minthick = .002
    maxthick = .01
    load = (0, 0, -2000)
    E35 = 35 * 10**9
    v = 0.2
    p = 2400
    pin_all_boundary_vertices(mesh)
    applly_uniform_point_load(mesh, load)
    create_variable_thick_shell(mesh, minthick, maxthick)
    assign_structure_property_to_mesh_faces(mesh, 'E', E35)
    assign_structure_property_to_mesh_faces(mesh, 'v', v)
    assign_structure_property_to_mesh_faces(mesh, 'p', p)
    s = Structure.from_mesh(mesh)
    fnm = path + filename
    ansys.inp_generate(s, filename=fnm, out_path=path)
    print s
from compas_fea.structure import PointLoads
from compas_fea.structure import PinnedDisplacement
from compas_fea.structure import PrestressLoad
from compas_fea.structure import RollerDisplacementX
from compas_fea.structure import ShellSection
from compas_fea.structure import Steel
from compas_fea.structure import TrussSection
from compas_fea.structure import Structure

import rhinoscriptsyntax as rs

# Author(s): Andrew Liew (github.com/andrewliew)

# Structure

mdl = Structure(name='mesh_planar', path='C:/Temp/')

# Elements

rhino.add_nodes_elements_from_layers(mdl,
                                     mesh_type='ShellElement',
                                     layers=['elset_mesh', 'elset_plates'])
rhino.add_nodes_elements_from_layers(mdl,
                                     line_type='TrussElement',
                                     layers=['elset_tie'])

# Sets

rhino.add_sets_from_layers(mdl, layers=['nset_pin', 'nset_roller'])

# Materials
from compas_fea.structure import GeneralStep
from compas_fea.structure import ModalStep
from compas_fea.structure import PinnedDisplacement
from compas_fea.structure import ShellSection
from compas_fea.structure import MassSection
from compas_fea.structure import Structure


# Author(s): 
# Francesco Ranaudo (github.com/nefelogeta)
# Andrew Liew (github.com/andrewliew)


# Structure

mdl = Structure(name='mesh_modal_from_mesh', path='C:/Temp/')

# Elements

rhino.add_nodes_elements_from_layers(mdl, mesh_type='ShellElement', layers='elset_concrete', pA=100)
rhino.add_nodes_elements_from_layers(mdl, mesh_type='MassElement', layers='elset_mass',pA=1000)

# Sets

rhino.add_sets_from_layers(mdl, layers='nset_pins')

# Materials

mdl.add(ElasticIsotropic(name='mat_concrete', E=40*10**9, v=0.2, p=2400))

# Sections
Exemple #25
0
from compas_fea.cad import rhino
from compas_fea.structure import ElasticIsotropic
from compas_fea.structure import ElementProperties as Properties
from compas_fea.structure import GeneralStep
from compas_fea.structure import PinnedDisplacement
from compas_fea.structure import PointLoad
from compas_fea.structure import SolidSection
from compas_fea.structure import Structure

import rhinoscriptsyntax as rs

# Author(s): Andrew Liew (github.com/andrewliew)

# Structure

mdl = Structure(name='block_deepbeam', path='C:/Temp/')

# Extrude

nz = 20
rhino.mesh_extrude(mdl,
                   guid=rs.ObjectsByLayer('base_mesh'),
                   layers=nz,
                   thickness=1. / nz,
                   blocks_name='elset_blocks')

# Sets

rhino.add_sets_from_layers(mdl, layers=['nset_load', 'nset_supports'])

# Materials
Exemple #26
0
from compas_fea.structure import CircularSection
from compas_fea.structure import ElasticIsotropic
from compas_fea.structure import ElementProperties as Properties
from compas_fea.structure import GeneralStep
from compas_fea.structure import GravityLoad
from compas_fea.structure import PinnedDisplacement
from compas_fea.structure import PointLoad
from compas_fea.structure import ShellSection
from compas_fea.structure import Structure

# Author(s): Andrew Liew (github.com/andrewliew)

# Create empty Structure object

mdl = Structure(name='introduction', path='C:/temp/')

# Add nodes

mdl.add_node(xyz=[-5., -5., 0.])
mdl.add_nodes(nodes=[[5., -5., 0.], [5., 5., 0.], [-5., 5., 0.], [0., 0., 5.]])

# print('Node number 3:', mdl.nodes[3])
# print('Node number 3 xyz:', mdl.node_xyz(3))
# print('Node count: ', mdl.node_count())
# print('Node index: ', mdl.node_index)
# print('Check node at [0, 0, 0]: ', mdl.check_node_exists([0, 0, 0]))
# print('Check node at [5, 5, 0]: ', mdl.check_node_exists([5, 5, 0]))
# print('Node bounds: ', mdl.node_bounds())

# Add elements
Exemple #27
0
import rhinoscriptsyntax as rs
import json

# Author: Aryan R. Rad

# Local Coordinate System per each element
for i in rs.ObjectsByLayer('elset_beams'):
    ez = subtract_vectors(rs.CurveEndPoint(i), rs.CurveStartPoint(i))
    ex = normalize_vector(cross_vectors(ez, [0, 0, 1]))
    rs.ObjectName(i, '_{0}'.format(json.dumps({'ex': ex})))
#-------------------------------------------------------------------------------

# Structure
# For the path in the command below, select the location you prefer
mdl = Structure(name='Nexorades', path='C:/TEMP/')
#-------------------------------------------------------------------------------

# Elements
rhino.add_nodes_elements_from_layers(mdl,
                                     line_type='BeamElement',
                                     layers='elset_beams')
#-------------------------------------------------------------------------------

# Sets
rhino.add_sets_from_layers(mdl, layers=['nset_support', 'nset_load'])
#-------------------------------------------------------------------------------

# Materials
mdl.add(ElasticIsotropic(name='mat_elastic', E=11000000, v=10**(-5), p=0.01))
#-------------------------------------------------------------------------------
Exemple #28
0
from compas_fea.structure import RectangularSection
from compas_fea.structure import RollerDisplacementY
from compas_fea.structure import ShellSection
from compas_fea.structure import Steel
from compas_fea.structure import Structure
from compas_fea.structure import TrussSection

from math import pi

import rhinoscriptsyntax as rs

# Author(s): Andrew Liew (github.com/andrewliew)

# Structure

mdl = Structure(name='mesh_bridge', path='C:/Temp/')

# Elements

rhino.add_nodes_elements_from_layers(mdl,
                                     mesh_type='ShellElement',
                                     layers='elset_mesh')
rhino.add_nodes_elements_from_layers(mdl,
                                     line_type='TrussElement',
                                     layers='elset_ties')
rhino.add_nodes_elements_from_layers(mdl,
                                     line_type='BeamElement',
                                     layers='elset_ends')

# Sets
from compas_fea.cad import rhino
from compas_fea.structure import Structure
from compas_fea.structure import Concrete
from compas_fea.structure import ShellSection
from compas_fea.structure import ElementProperties
from compas_fea.structure import PinnedDisplacement
from compas_fea.structure import GravityLoad
from compas_fea.structure import PointLoad
from compas_fea.structure import AreaLoad
from compas_fea.structure import GeneralStep
from compas_fea.structure import BucklingStep
from compas_fea.structure import ModalStep

# Author(s): Andrew Liew (github.com/andrewliew)

mdl = Structure(name='example_shell', path='C:/Temp/')

rhino.add_nodes_elements_from_layers(mdl,
                                     mesh_type='ShellElement',
                                     layers='mesh')
rhino.add_sets_from_layers(mdl, layers=['loads', 'supports', 'area'])

#print(mdl.sets['loads'])
#print(mdl.sets['supports'])
#print(mdl.sets['area'])

mdl.add(Concrete(name='concrete', fck=50))

#print(mdl.materials['concrete'])

mdl.add(ShellSection(name='shell', t=0.100))
Exemple #30
0
from compas_fea.structure import ShellSection
from compas_fea.structure import Steel
from compas_fea.structure import Structure

import rhinoscriptsyntax as rs


__author__    = ['Andrew Liew <*****@*****.**>']
__copyright__ = 'Copyright 2018, BLOCK Research Group - ETH Zurich'
__license__   = 'MIT License'
__email__     = '*****@*****.**'


# Structure 

mdl = Structure(name='mesh_mould', path='C:/Temp/')

# Elements

rhino.add_nodes_elements_from_layers(mdl, mesh_type='ShellElement', layers=['elset_wall', 'elset_plinth'])

# Sets

rhino.add_sets_from_layers(mdl, layers=['nset_fixed'])

# Materials

mdl.add_materials([
    Concrete(name='mat_concrete', fck=40),
    Steel(name='mat_rebar', fy=500, id='r')])