Page 5 - Demo
P. 5
Planar Truss Example for Comrel Add-on RCP Consult, 2021-2025 Page 5 # prepare color mapping jet=plt.get_cmap('jet') minA=[*[*@NN.abs/areab*1e-6].to_a].min maxA=[*[*@NN.abs/areab*1e-6].to_a].max cNorm=plt.Normalize.call(minA, maxA) scalarMap=cmx.ScalarMappable.call(norm: cNorm, cmap: jet) plt.colorbar(scalarMap,use_gridspec: true, ax: plt.gca()) # plot for internal member von Mises stress dA=maxA-minA for e in 0..nfe-1 @Su=@NN[e].abs/areab[e]*1e-6 l=leng[e]/2 n=@Su/dA*0.2 @X=DFloat[*[-l, l, l, -l]] @Y=DFloat[*[-n, -n, n, n]] c=Math.cos(theta[e]) # cosine inclination angle s=Math.sin(theta[e]) # sinus inclination angle x=(@XY[ien[e,0]-1,0]+@XY[ien[e,1]-1,0])/2 y=(@XY[ien[e,0]-1,1]+@XY[ien[e,1]-1,1])/2 @Xrot=@X*c-@Y*s+x @Yrot=@X*s+@Y*c+y co=scalarMap.to_rgba(@Su) plt.fill(@Xrot.to_a, @Yrot.to_a, color: co, l 0.5, alpha: 0.7) plt.text(x, y, '%0.0f' % @Su,fontsize: 7,ha: 'center',va: 'center') end end ## do rest for all plots plt.title(tit,fontsize: 18) # plot values of input data plt.text(22, 5.5, 'A1=%g $m^2