Closed Beberger closed 2 years ago
Hello! - Could you please share the script you wrote to generate this frame? and also the rhino
file. thx!
Hi thank you for the answer. I drew it directly in rhino, then I ran the following script:
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 PointLoad
from compas_fea.structure import PinnedDisplacement
from compas_fea.structure import RollerDisplacementX
from compas_fea.structure import RollerDisplacementY
from compas_fea.structure import RollerDisplacementXY
from compas_fea.structure import ShellSection
from compas_fea.structure import Structure
import sandwichmodel_main as SMM
# Author(s): Andrew Liew (github.com/andrewliew), Benjamin Berger (github.com/Beberger)
#Allgemein
thickness_wall = 200 #mm
thickness_deck = 500 #mm
name = 'Rahmen'
path = 'C:/Temp/'
# Structure
mdl = Structure(name=name, path=path)
# Elements
rhino.add_nodes_elements_from_layers(mdl, mesh_type='ShellElement', layers=['elset_deck','elset_wall_left','elset_wall_right'])
mdl.elements[250].axes.update({'ex': [0, 0, 1], 'ey': [0, -1, 0], 'ez': [1, 0, 0]})
mdl.elements[1].axes.update({'ex': [1, 0, 0], 'ey': [0, -1, 0], 'ez': [0, 0, -1]})
mdl.elements[300].axes.update({'ex': [0, 0, -1], 'ey': [0, -1, 0], 'ez': [-1, 0, 0]})
# Sets
rhino.add_sets_from_layers(mdl, layers=['nset_pinned'])
# Materials
mdl.add(ElasticIsotropic(name='mat_elastic', E=33700, v=0.2, p=2500/10**9)) #E[N/mm2], p[kg/mm3]
# Sections
mdl.add(ShellSection(name='sec_deck', t=thickness_deck))#[mm]
mdl.add(ShellSection(name='sec_wall_left', t=thickness_wall))#[mm]
mdl.add(ShellSection(name='sec_wall_right', t=thickness_wall))#[mm]
# Properties
mdl.add(Properties(name='ep_deck', material='mat_elastic', section='sec_deck', elset='elset_deck'))
mdl.add(Properties(name='ep_wall_left', material='mat_elastic', section='sec_wall_left', elset='elset_wall_left'))
mdl.add(Properties(name='ep_wall_right', material='mat_elastic', section='sec_wall_right', elset='elset_wall_right'))
# Displacements
mdl.add([
PinnedDisplacement(name='disp_pinned', nodes='nset_pinned')
])
# Loads
mdl.add(GravityLoad(name='load_gravity', elements=['elset_deck','elset_wall_left','elset_wall_right']))
#mdl.add(PointLoad(name='load_point', nodes='nset_middle', y=0, z=-60000, x = 0))
# Steps
mdl.add([
GeneralStep(name='step_bc', displacements=['disp_pinned'], nlgeom=False),
GeneralStep(name='step_load', loads=['load_gravity'], nlgeom=False)
])
mdl.steps_order = ['step_bc','step_load']
# Summary
mdl.summary()
# Run
mdl.analyse_and_extract(software='abaqus', fields=['u','sf','sm'])
rhino.plot_data(mdl, step='step_load', field='sm1')
rhino.plot_data(mdl, step='step_load', field='sm2')
rhino.plot_data(mdl, step='step_load', field='sm3')
rhino.plot_data(mdl, step='step_load', field='sf4')
rhino.plot_data(mdl, step='step_load', field='sf5')
rhino.plot_data(mdl, step='step_load', field='sf1')
rhino.plot_data(mdl, step='step_load', field='sf2')
rhino.plot_data(mdl, step='step_load', field='sf3')
rhino.plot_data(mdl, step='step_load', field='um')
I works with me...
this is the rhino file (rename it to .3dm
)
you need to make sure that these points are the same:
Thank you very much for the model it works perfectly at my place aswell. Is there a special command/way to bring those points togheter? I tried to do that at my model and it didn't work...
One thing you can do is to weld
the meshes in Rhino. I think you can set the tolerance or something like that and it should move the points together.
In general, you can avoid this problem if you discretize the elements using the same min length: check this example to see how to discretize a rhino object using compas_fea
.
I will close this issue now, but feel free to reopen it or to open a new one if you encounter a problem with the discretization.
Ciao, F
Hello everyone,
For my master's thesis i am implementing some new features for compas FEA. For the verification i need to model a frame-structure consiting of two walls and a deck over it. The properties of the walls and the deck are not the same.
Running this file with compas FEA the deck's displacements seems only to be restrained by the wall's corners and not continiously.
Is there a way to model this correctly?
Best regards! Ben