masonry.html 15.7 KB
 mozul committed Jan 08, 2015 1 2 3 4 5 6 7 8 `````` `````` mozul committed May 26, 2015 9 `````` Masonry — pylmgc90.pre 2015.2 documentation `````` mozul committed Jan 08, 2015 10 11 12 13 14 15 16 `````` `````` mozul committed May 26, 2015 26 `````` `````` mozul committed Jan 08, 2015 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 ``````

Masonry

This section details the pre-processing functions dedicated to masonry structures. Here are provided two types of function, those generating bricks, and those using the bricks to generate a wall. After that is up to the user to put together the walls so that they fit.

Brick generation

Two classes have been designed for brick creation: brick2D, and brick3D. The only inputs for these class are a name and the sizes of the brick. But the brick object is not an avatar yet, it merely defined its geometry. To obtain usable avatar(s), one of the three following methods is to be used for 2D bricks:

Concerning the obtained deformable avatars, each brick has CLxxx contactors on the lower and right sides and ALpxx on the upper and left sides.

To obtain 3D rigids either the brick3D.rigidBrick method is available in 3D bricks, or the extrusion functions can be used on the avatar(s) generated with the 2D bricks.

Example:

Creation of 2D brick:

dim = 2  lx = 0.1 ly = 0.05 brick = brick2D('std_brick', lx, ly)

Creation of a row of rigid bricks:

nb_bricks = 12 bodies = avatars() mat = material(name='PLEXx',type='RIGID',density=2000.) mod = model(name='rigid', type='MECAx', element='Rxx2D', dimension=dim)  for i in xrange(nb_bricks):   bodies += brick.rigidBrick(center=[i*lx, ly/2.], model=mod, material=mat, color='BLUEx')

Wall generation

The paneresse_simple and paneresse_double classes allow to automatically generate simple walls without openings with regular rigid bricks. The appealing side of these classes is that all the troubles due to the “harpage” is taken care of automatically. The only things left is to write the visibility tables.

Otherwise the governing idea of wall generation is to defined several brick objects. Make a list of bricks to make a row and a list of rows to make a wall. Then using nested loops build the avatars defining the wall in a similar way than in previous example.

Example:

Generation of a 3D wall of rigid bricks in “paneresse simple” configuration:

dim = 3 mat = material(name='PLEXx',type='RIGID',density=2000.) mod = model(name='rigid', type='MECAx', element='Rxx3D', dimension=dim)  simple_brick = brick3D(name='brique simple', lx=0.22, ly=0.11, lz=0.06) wall   = paneresse_simple(brick_ref=simple_brick, disposition="paneresse")  wall.setFirstRowByLength(first_brick_type="1/2", length=2.3, joint_thickness=0.01) wall.setNumberOfRows(10.) wall.setJointThicknessBetweenRows(0.01) wall.computeHeight()  bodies = wall.buildRigidWall(origin=[0., 0., 0.], model=mod, material=mat, colors=['BLUEx', 'REDxx'])

For the generation of 2D wall or rigid bricks with different bricks and opening, see this complete example.