¯o lc_doit name case num = 1 &env %name &apply -force -fract @ 0 %case %num lcase -static %name &endmacro ¯o nodlod name node x = 0 y = 0 z = 0 mx = 0 my = 0 mz = 0 &describe load %node %node %name %node %x %y %z %mx %my %mz &endmacro &set xlength = 10 &set ylength = 4 &set xelem = %xlength%/%xrefine% &set yelem = %ylength%/%yrefine% &set twoch = 00 01 02 03 04 05 06 07 08 09 &loop num 10 99 &set twoch = %twoch% %num% &endloop &loop ix 1 &number(integer %xrefine%+1) &set ixchr = &token(%ix% %twoch%) &loop iy 1 &number(integer %yrefine%+1) &set iychr = &token(%iy% %twoch%) &endloop &endloop $ &describe body model &default -nuse @ $ $ ----- nodes ----- $ &loop ix 1 &number(integer %xrefine%+1) &set ixchr = &token(%ix% %twoch%) &loop iy 1 &number(integer %yrefine%+1) &set iychr = &token(%iy% %twoch%) &set xcoord = (%ix%-1)*%xelem% &set ycoord = (%iy%-1)*%yelem%-%ylength%/2 *%ixchr%%iychr% %xcoord% %ycoord% 0 &endloop &endloop $ $ ----- plate elements ----- $ ~plate plate 1 &loop ix 1 &number(integer %xrefine%) &set ixchr = &token(%ix% %twoch%) &set jxchr = &token(%ix%+1 %twoch%) &loop iy 1 &number(integer %yrefine%) &set iychr = &token(%iy% %twoch%) &set jychr = &token(%iy%+1 %twoch%) plate elem%ixchr%%iychr% ~plate *%ixchr%%iychr% \ *%jxchr%%iychr% \ *%jxchr%%jychr% \ *%ixchr%%jychr% &endloop &endloop $ $ ----- restraints ----- $ ~restf gspr x 1e10 y 1e10 z 1e10 rz 1e12 ry 1e12 ~reste gspr x 1e10 z 1e10 ry 1e12 &set ixchr = &token(1 %twoch%) &set iychr = &number(integer %Yrefine%/2) &set iychr = &number(integer 1+%iychr ) &set fixnod = *%ixchr%&token( 1+%iychr %twoch ) rest ~restf %fixnod &loop iy 1 &number(integer %yrefine%+1) &set node = *%ixchr%&token(%iy% %twoch%) &if %node .ne. %fixnod &then rest ~reste %node &endif &endloop &set iychr = &token((%yrefine%/2)+1 %twoch%) $ $ ----- loading ----- $ &set fx = &number(real 1000/(%yrefine%+1)) &set fy = &number(real 100/(%yrefine%+1)) &set fz = &number(real 1/(%yrefine%+1)) &set ixchr = &token(%xrefine%+1 %twoch%) &loop iy 1 &number(integer %yrefine%+1) &set iychr = &token(%iy% %twoch%) &set nodappl = *%ixchr%%iychr% nodlod #axix %nodappl% %fx% 0 0 nodlod #bndy %nodappl% 0 %fy% 0 nodlod #bndz %nodappl% 0 0 %fz% &endloop