FEM: fix, transient material was used in some cases even if material was not changed
This commit is contained in:
parent
efc9b712ae
commit
e9606a241a
|
@ -176,7 +176,7 @@
|
|||
<double>0.100000000000000</double>
|
||||
</property>
|
||||
<property name="value">
|
||||
<double>0.300000000000000</double>
|
||||
<double>0.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -202,7 +202,7 @@
|
|||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0 kg/m^3</string>
|
||||
<string/>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
|
@ -214,7 +214,7 @@
|
|||
<double>2000000000.000000000000000</double>
|
||||
</property>
|
||||
<property name="unit" stdset="0">
|
||||
<string notr="true">kg/m^3</string>
|
||||
<string notr="true">kg/mm^3</string>
|
||||
</property>
|
||||
<property name="decimals" stdset="0">
|
||||
<number>3</number>
|
||||
|
|
|
@ -113,28 +113,38 @@ class _TaskPanelMechanicalMaterial:
|
|||
|
||||
def ym_changed(self, value):
|
||||
import Units
|
||||
# FreeCADs standard unit for stress is kPa
|
||||
old_ym = Units.Quantity(self.material['YoungsModulus'])
|
||||
if old_ym != value:
|
||||
material = self.material
|
||||
# FreeCAD uses kPa internall for Stress
|
||||
material['YoungsModulus'] = unicode(value) + " kPa"
|
||||
self.material = material
|
||||
variation = 0.001
|
||||
if value:
|
||||
if not (1 - variation < float(old_ym) / value < 1 + variation):
|
||||
# YoungsModulus has changed
|
||||
material = self.material
|
||||
material['YoungsModulus'] = unicode(value) + " kPa"
|
||||
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'])
|
||||
if old_density != value:
|
||||
material = self.material
|
||||
material['Density'] = unicode(value) + " kg/mm^3"
|
||||
self.material = material
|
||||
variation = 0.001
|
||||
if value:
|
||||
if not (1 - variation < float(old_density) / value < 1 + variation):
|
||||
# density has changed
|
||||
material = self.material
|
||||
material['Density'] = unicode(value) + " kg/mm^3"
|
||||
self.material = material
|
||||
|
||||
def pr_changed(self, value):
|
||||
import Units
|
||||
old_pr = Units.Quantity(self.material['PoissonRatio'])
|
||||
if old_pr != value:
|
||||
material = self.material
|
||||
material['PoissonRatio'] = unicode(value)
|
||||
self.material = material
|
||||
variation = 0.001
|
||||
if value:
|
||||
if not (1 - variation < float(old_pr) / value < 1 + variation):
|
||||
# PoissonRatio has changed
|
||||
material = self.material
|
||||
material['PoissonRatio'] = unicode(value)
|
||||
self.material = material
|
||||
|
||||
def choose_material(self, index):
|
||||
if index < 0:
|
||||
|
|
Loading…
Reference in New Issue
Block a user