From 2edc678891bec8381789c7aa87b14ad400be3b36 Mon Sep 17 00:00:00 2001 From: Bernd Hahnebach Date: Fri, 5 Aug 2016 18:09:54 +0200 Subject: [PATCH 1/3] FEM: fix pre check for shell and beam meshes --- src/Mod/Fem/FemTools.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Mod/Fem/FemTools.py b/src/Mod/Fem/FemTools.py index 1458f7c86725..258829e5be89 100644 --- a/src/Mod/Fem/FemTools.py +++ b/src/Mod/Fem/FemTools.py @@ -302,9 +302,9 @@ def check_prerequisites(self): if not self.mesh: message += "No mesh object defined in the analysis\n" if self.mesh: - if self.mesh.FemMesh.VolumeCount == 0 and self.mesh.FemMesh.FaceCount > 0: + if self.mesh.FemMesh.VolumeCount == 0 and self.mesh.FemMesh.FaceCount > 0 and not self.shell_thicknesses: message += "FEM mesh has no volume elements, either define a shell thicknesses or provide a FEM mesh with volume elements.\n" - if self.mesh.FemMesh.VolumeCount == 0 and self.mesh.FemMesh.FaceCount == 0 and self.mesh.FemMesh.EdgeCount > 0: + if self.mesh.FemMesh.VolumeCount == 0 and self.mesh.FemMesh.FaceCount == 0 and self.mesh.FemMesh.EdgeCount > 0 and not self.beam_sections: message += "FEM mesh has no volume and no shell elements, either define a beam section or provide a FEM mesh with volume elements.\n" if self.mesh.FemMesh.VolumeCount == 0 and self.mesh.FemMesh.FaceCount == 0 and self.mesh.FemMesh.EdgeCount == 0: message += "FEM mesh has neither volume nor shell or edge elements. Provide a FEM mesh with elements!\n" From 5af3f813b4a547007bbcb0e3dbf61813dba7c77c Mon Sep 17 00:00:00 2001 From: Bernd Hahnebach Date: Fri, 5 Aug 2016 18:10:51 +0200 Subject: [PATCH 2/3] FEM: update FEM example files --- data/examples/FemCalculixCantilever2D.FCStd | Bin 16828 -> 23137 bytes data/examples/FemCalculixCantilever3D.FCStd | Bin 21637 -> 29897 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/data/examples/FemCalculixCantilever2D.FCStd b/data/examples/FemCalculixCantilever2D.FCStd index 23d38ed91bc8d69b3d7b5f55eb0d54d5db87d002..5981b4e2712adf4755d3cfc60b5b720c52e2e72d 100644 GIT binary patch delta 17240 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 delta 10873 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 EAEFv_l>h($ diff --git a/data/examples/FemCalculixCantilever3D.FCStd b/data/examples/FemCalculixCantilever3D.FCStd index 7fdd5dd34e655d54366aa6abe72cf705b7593549..ad7a9ebaf25ea37036b5dba885ba80336606c382 100644 GIT binary patch delta 13799 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 S0l)x!fCd24osyh2u>K!><+qdo delta 5510 zcmZu#2UJtr(oX0RfrtW91d)JrX@c}By(%CgRiyVM^m0HVB26IDK{`s1-a7(~&^;GvCbFd#|-;&2+DUpA~=sT@6B_DBKO~!;TT5LD;wsOw6Qg6 zmmQR~8t^k^w%Qen$Co@@8tOlfH~Tpg110tVE`hJ2LjU9}xf6&!Do@@g&^Vqdko0Rxj(=TNp9y%484wWjMd}$oHL)2mO zP=T`Va!=X*;BKJs$V3086QALWORLKdn%TbN>F2(G>GHp+GF8W9mz}q^)oi(c5Y2%E z98R}NbZ(s)=4(Yu=0Tr?^RUx#V!YUXz}Z~<{!OpT2#ykKfdp+6o4oM3HiDCN@ntZxcm6UFZXEq& z>oMIm;}2Nj2FA*JGY6qF^O*1j;X0bTv2qgk7jShCi7rp5IX1+#zgRO;95L&E(;kD!cHrT(vJBBP(`@4-ls8(I{t1YkoBUz{;nHQCe%_s??j&)8jWY zJS%jWP6AFo4b(4O<%))UDC4N`%0tV93k)-dv&C<^AJrTpU-O&D`B~&j6g+#NZ2gkt z^E)T6S*)$_M6X~>!k)Jni-~dI_SzBF{yk15K!HoRU@&$&vX!0-alW33#8!`Oh8Sv`Wc4T_*<&;9zoB`>=tF%`SM^*-avKs1@$i}Z@2 zb1(2-YLYD&6ALL>?I4vYqaVF{GjKM1gWE@-YW8JneS~l#dmN|ec=s)#RDJkdZKH|# z!<@J&b#4zH79h9li2UAcF-`bqYdE!=PJxt`fNCPr@TW|)<}1m=tG7HH&-`1bX&WPR zkjG^ZOyu&8H)(b_C~uNih!#`&ZiuqatXDnNFB)T6>(_kKcxP?PfQ9ft;$_T!ih%0o z+x3lw3am$}38yE4N*}!9Z`sc}JOjL&T-pA}rp8Idv zC4WYUZ%P5_xMHzW?{3^N_3JVbr89Sv9BLUJ&!~8(b^Z5merm`V$4-<^sMItM4fN*@ zrES?h8)c8uem`3L&XkACY%5KGDAkHozVG8aYmXBvl~4_C^`0J9D=Ha|T)w2vYJS@QS|a$4w!FH~i(OB%93lIV<%KT4 zqqDpK{LnRXskl>lO^%R)Q+#{Fn+>WR*RA={*B7;c&9Q}xNO6e*K82XnP^$jan#QHZ zbg$c$T5}IFc*L_V+|hL2tlOJZa~3C6+5VbKd#`RqhPSJn#YKAWau}jCoXV=6*WI}!aTRQK1N*pF>#J{7c?6ofzfkoyAGKs7@0HXybv7LK z@MrO#djf{Eae-g7+aG0&?k)tsMJEvFxagGI82A-UN?ml+x~Y=pS2ObZ9W73b?@SnH zU;Z)UWP^g6G_!2S-YSoQkU(8|%ITQMrfJy=th5hWdrC#I)+*)kPUGm$~!8d&xGf8Q_73Z{o?vz6JSwLIgY_|IIGDCUS>?d45wn)z`$T^oFafNS< z`_>0qfmewuO|IFiv&$F@&cM2>)#|q@qRThkw+C>MWkp$~K#SWQgano4gU|C1_XG_n z@C3JBTL)Ae6Qq33wXxkFEb_{m#4y6z=mtr0d~1ZEd^zF{;oFLrynv*;SVmSq3V^rP zYIR^(^W;#P!Xt^Mtb;!%hDKF%eBj+yxJJsmG44fdOONM_fkC2^Gi?pGvs2lXs$o6r z@vCP}@@+lK)ho@G`UyudfsU-F2?|wLtB!6w?$)Dk3Br7e=Zo<*RIA^(jW+7DmaKD0 z>{eSDoT5e>1)Rc#)s_zxPCDww8vr^?`;EE=INrhA=*fVuhf&8TAg78hX$j^ieaYU%~$Cga>U< zKf&NbkOa9L?jR9AX7yXNeZA~=VhWNF1E;43^=rx5dOV)=%@94G0j=IH1pmPa2PZ*D zQBXRCg%o2@KS^c5o=r@(a@n<6F2J6UI zXNZy81QK50^oF2+!Bm5Fq^mQ8$ZfF1cTl=tP`|VsjyV(Y8}6HwJ0VmW2Ir}f=5kyc zOhL*y4TG!HNSDqhsYp4u;Y%L`MU<{Q{{qccB%@-LL4hvaP$Ii@Nf|~&4arhc5Qv3p z!vLZy5Z1d2y0H(Ig6*SQZ?IOXlJQfwMW8@ztR1RkLey=MC^)jJDw!lT!AsO28|$GenJhIy%#Yi5Gk2gU7>X4Vtg65n2aSZG*dSmv1=Tp{D;SC$ z60D|R7Y9v)p>9IJ>Iz|T&|Dab3la>dE4+<^zJsB7AYcuJk8#jS7>W-Ptf8a5ZLziGE zapJbLA6h%7GDg??xS%Un$PgEPV+5Ak!2)mOlF;VI;0~p4Y{YFq+F#iH|84sJ;kz;j zW--HI+8%a1{?SwMIVP^OBAN#VLNzF1%ux=)wSAyj|CLg;p;hoWYqIB>3as7LYftw5 zuQMLA?-fs}=n08_m0lGY)N)sUOXx*z(Lcg99^@Y(o(K42bd|T6 zu+t>%9|h|kA;q$LuuXp2sLjHCknJ!D0Q6*(#77s>s}qYrxM z4-V|WZd~Hy9}rIxxZ;SKgX8Wm{NC5)m?Kl-`^R0bgXX?F0tB9^2rSFRjsc~a7 z`-zj2Er$&jS~Lh77W1m2vnp$CB1|BIij(nn@f!yt&l1@gvoU}>u|!t|I_yxbmwGY+ zv0S%>LFBFS+EUf6WilKUp8-j4eaG(8(({=Ggg*94BYnOf-bq~*dM5@} zBIGQTQ&uHx@S-N`L$W@>{ru=DzNSH}!^pfFw^{_L$rH@gmoxW$bnB`>48x#zb+@gw z?^hRGBy8N=1$XOjvxT(iG;Z!RTXg`hzrElRx^Y7g^LjdyV8G7-Qk=g0$X0jtb#&*2 znWpOjk&TQ-cI6-*FL{(JpREB36*!?W*|=m2{b& ztk*D0ec9|L;eeCr9AEju^;x%-yz4-!cYKzbA@}S=*}kGnHMHYp_Q^WUHP90UATPIq zE=QU3=~9xAu0fA7#6sv={UstH4n zisftmxUR@om*v~y!ik@g24n@5%QbkrI(N~Q{Ds~R1W0SITyW#=U$zBZ6PncDmO#pr z+=K@s4@A2)Jujm*c!T8mN<#uXGR>~u)KH-j@=_-i2LyEs1}i&69g7Pdg&JTPuSxze zhxZ!z?5cJ;FHw$}a(94%-hc@KeQ$<`X-&-C*@N8u(-g6MOmcj&XJ@=LqpPR3@=GGR zyB&9YG<%T2?&X;?-%bc0B_3M!y?q&?#kZUbn~=EC)g%`pkN1x?eeP|95wtZwp35Zj zDh*=ng*~SY_y#+{DifMWODIHZn(VlhS`LOd z+TY(BF4B!-O5A}LjN-rfNL8erXcnnXY@U_xB+S7or8=084X-(*ViBAnufy)`I5mGn z9i?N*tNfeBmea92UKh5IgiRGkbW(lhUsXT-coB@3N=lVnt1G`PtrfV9B8rMh4wtYA)5ijQrbPdYA~Z~1aFNuJI6 zBXOkyiZv|T=47v=sS9UVae{Ze+^NWKKdKpu$=|Ru7%0jrFK92CujLSOj4q@%=p|O; z&u&hs-MhGEj2&~V-;i)4zty%DM&T8`sDFT=7!I{DcI$C88~t)uITJyxZkKdKL?4Q? zH<-p-SS0zHjd#`ba1Uq-^c1WsR`o_i*vl)c_M*A^cDK?xW$E4b3?n1qOjg|Lq0@ zstm5>1c9_&;m(#$h<}pM5$+5OyXSgcS9=%af2&*E8N?j8{!$D6la6aC7>XqUfnetW zFaIs(78e={XZ^iG6!T{g;kow7`QQEBs6+s*2WJ)gUy1B5XO+Q=ivLP${|t_fLNG`L zDE-pHtq}-AOD7NO|60NCTz8%sSGYkSs=u6`e=CC{HPB4RYk#&^8p!~^pm*N#w70SG zKv*lfI=RCC8E#Pd%3ZQ^=C48dH&4>%Oig>2KQwtb+|ox^gZO+`ejO+UX#4zd-Onwc RAZ56 Date: Fri, 5 Aug 2016 18:15:54 +0200 Subject: [PATCH 3/3] FEM: fix materials task panel --- src/Mod/Fem/_TaskPanelMechanicalMaterial.py | 29 ++++++++++++++++----- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/src/Mod/Fem/_TaskPanelMechanicalMaterial.py b/src/Mod/Fem/_TaskPanelMechanicalMaterial.py index 2c1725afb7ea..25faa9d5b759 100644 --- a/src/Mod/Fem/_TaskPanelMechanicalMaterial.py +++ b/src/Mod/Fem/_TaskPanelMechanicalMaterial.py @@ -29,6 +29,7 @@ import FreeCADGui from PySide import QtGui from PySide import QtCore +import Units class _TaskPanelMechanicalMaterial: @@ -81,6 +82,7 @@ def __init__(self, obj): self.rebuild_list_References() def accept(self): + # print(self.material) self.remove_active_sel_server() if self.has_equal_references_shape_types(): self.obj.Material = self.material @@ -123,8 +125,27 @@ def goMatWeb(self): import webbrowser webbrowser.open("http://matweb.com") + def check_material_keys(self): + if not 'YoungsModulus' in self.material: + print('YoungsModulus not found in material data of: ' + self.material['Name']) + self.material['YoungsModulus'] = '0 MPa' + if not 'Density' in self.material: + print('Density not found in material data of: ' + self.material['Name']) + self.material['Density'] = '0 kg/m^3' + if not 'PoissonRatio' in self.material: + print('PoissonRatio not found in material data of: ' + self.material['Name']) + self.material['PoissonRatio'] = '0' + if not 'ThermalConductivity' in self.material: + print('ThermalConductivity not found in material data of: ' + self.material['Name']) + self.material['ThermalConductivity'] = '0 W/m/K' + if not 'ThermalExpansionCoefficient' in self.material: + print('ThermalExpansionCoefficient not found in material data of: ' + self.material['Name']) + self.material['ThermalExpansionCoefficient'] = '0 um/m/K' + if not 'SpecificHeat' in self.material: + print('SpecificHeat not found in material data of: ' + self.material['Name']) + self.material['SpecificHeat'] = '0 J/kg/K' + def ym_changed(self, value): - import Units # FreeCADs standard unit for stress is kPa old_ym = Units.Quantity(self.material['YoungsModulus']).getValueAs("kPa") variation = 0.001 @@ -136,7 +157,6 @@ def ym_changed(self, value): self.material = material def density_changed(self, value): - import Units # FreeCADs standard unit for density is kg/mm^3 old_density = Units.Quantity(self.material['Density']).getValueAs("kg/m^3") variation = 0.001 @@ -149,7 +169,6 @@ def density_changed(self, value): self.material = material def pr_changed(self, value): - import Units old_pr = Units.Quantity(self.material['PoissonRatio']) variation = 0.001 if value: @@ -160,7 +179,6 @@ def pr_changed(self, value): self.material = material def tc_changed(self, value): - import Units old_tc = Units.Quantity(self.material['ThermalConductivity']).getValueAs("W/m/K") variation = 0.001 if value: @@ -172,7 +190,6 @@ def tc_changed(self, value): self.material = material def tec_changed(self, value): - import Units old_tec = Units.Quantity(self.material['ThermalExpansionCoefficient']).getValueAs("um/m/K") variation = 0.001 if value: @@ -184,7 +201,6 @@ def tec_changed(self, value): self.material = material def sh_changed(self, value): - import Units old_sh = Units.Quantity(self.material['SpecificHeat']).getValueAs("J/kg/K") variation = 0.001 if value: @@ -201,6 +217,7 @@ def choose_material(self, index): mat_file_path = self.form.cb_materials.itemData(index) self.material = self.materials[mat_file_path] self.form.cb_materials.setCurrentIndex(index) + self.check_material_keys() self.set_mat_params_in_combo_box(self.material) gen_mat_desc = "" if 'Description' in self.material: