Expose some standard units and quantities to Python
This commit is contained in:
@@ -306,7 +306,13 @@ App.Units.KiloPascal = App.Units.Quantity('kPa')
|
||||
App.Units.MegaPascal = App.Units.Quantity('MPa')
|
||||
App.Units.GigaPascal = App.Units.Quantity('GPa')
|
||||
|
||||
App.Units.PoundForce = App.Units.Quantity().PoundForce
|
||||
App.Units.Torr = App.Units.Quantity().Torr
|
||||
App.Units.mTorr = App.Units.Quantity().mTorr
|
||||
App.Units.yTorr = App.Units.Quantity().yTorr
|
||||
|
||||
App.Units.PSI = App.Units.Quantity('psi')
|
||||
App.Units.KSI = App.Units.Quantity('ksi')
|
||||
|
||||
App.Units.Watt = App.Units.Quantity('W')
|
||||
App.Units.VoltAmpere = App.Units.Quantity('VA')
|
||||
@@ -325,12 +331,15 @@ App.Units.KMH = App.Units.Quantity('km/h')
|
||||
App.Units.Degree = App.Units.Quantity('deg')
|
||||
App.Units.Radian = App.Units.Quantity('rad')
|
||||
App.Units.Gon = App.Units.Quantity('gon')
|
||||
App.Units.AngularMinute = App.Units.Quantity().AngularMinute
|
||||
App.Units.AngularSecond = App.Units.Quantity().AngularSecond
|
||||
|
||||
App.Units.Length = App.Units.Unit(1)
|
||||
App.Units.Area = App.Units.Unit(2)
|
||||
App.Units.Volume = App.Units.Unit(3)
|
||||
App.Units.Mass = App.Units.Unit(0,1)
|
||||
App.Units.Angle = App.Units.Unit(0,0,0,0,0,0,0,1)
|
||||
App.Units.Density = App.Units.Unit(-3,1)
|
||||
|
||||
App.Units.TimeSpan = App.Units.Unit(0,0,1)
|
||||
App.Units.Velocity = App.Units.Unit(1,0,-1)
|
||||
@@ -349,6 +358,14 @@ App.Units.Force = App.Units.Unit(1,1,-2)
|
||||
App.Units.Work = App.Units.Unit(2,1,-2)
|
||||
App.Units.Power = App.Units.Unit(2,1,-3)
|
||||
|
||||
App.Units.SpecificEnergy = App.Units.Unit(2,0,-2)
|
||||
App.Units.ThermalConductivity = App.Units.Unit(1,1,-3,0,-1)
|
||||
App.Units.ThermalExpansionCoefficient = App.Units.Unit(0,0,0,0,-1)
|
||||
App.Units.SpecificHeat = App.Units.Unit(2,0,-2,0,-1)
|
||||
App.Units.ThermalTransferCoefficient = App.Units.Unit(0,1,-3,0,-1)
|
||||
App.Units.HeatFlux = App.Units.Unit(0,1,-3,0,0)
|
||||
App.Units.DynamicViscosity = App.Units.Unit(-1,1,-1)
|
||||
App.Units.KinematicViscosity = App.Units.Unit(2,0,-1)
|
||||
|
||||
# clean up namespace
|
||||
del(InitApplications)
|
||||
|
||||
@@ -663,8 +663,26 @@ void QuantityPy::setFormat(Py::Dict arg)
|
||||
getQuantityPtr()->setFormat(fmt);
|
||||
}
|
||||
|
||||
PyObject *QuantityPy::getCustomAttributes(const char* /*attr*/) const
|
||||
PyObject *QuantityPy::getCustomAttributes(const char* attr) const
|
||||
{
|
||||
if (strcmp(attr, "Torr") == 0) {
|
||||
return new QuantityPy(new Quantity(Quantity::Torr));
|
||||
}
|
||||
else if (strcmp(attr, "mTorr") == 0) {
|
||||
return new QuantityPy(new Quantity(Quantity::mTorr));
|
||||
}
|
||||
else if (strcmp(attr, "yTorr") == 0) {
|
||||
return new QuantityPy(new Quantity(Quantity::yTorr));
|
||||
}
|
||||
else if (strcmp(attr, "PoundForce") == 0) {
|
||||
return new QuantityPy(new Quantity(Quantity::PoundForce));
|
||||
}
|
||||
else if (strcmp(attr, "AngularMinute") == 0) {
|
||||
return new QuantityPy(new Quantity(Quantity::AngMinute));
|
||||
}
|
||||
else if (strcmp(attr, "AngularSecond") == 0) {
|
||||
return new QuantityPy(new Quantity(Quantity::AngSecond));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -34,5 +34,11 @@
|
||||
</Documentation>
|
||||
<Parameter Name="Type" Type="String" />
|
||||
</Attribute>
|
||||
</PythonExport>
|
||||
<Attribute Name="Signature" ReadOnly="true">
|
||||
<Documentation>
|
||||
<UserDocu>Returns the signature.</UserDocu>
|
||||
</Documentation>
|
||||
<Parameter Name="Signature" Type="Tuple" />
|
||||
</Attribute>
|
||||
</PythonExport>
|
||||
</GenerateModel>
|
||||
|
||||
@@ -182,6 +182,21 @@ Py::String UnitPy::getType(void) const
|
||||
return Py::String(getUnitPtr()->getTypeString().toUtf8(),"utf-8");
|
||||
}
|
||||
|
||||
Py::Tuple UnitPy::getSignature(void) const
|
||||
{
|
||||
const UnitSignature & Sig = getUnitPtr()->getSignature();
|
||||
Py::Tuple tuple(8);
|
||||
tuple.setItem(0, Py::Long(Sig.Length));
|
||||
tuple.setItem(1, Py::Long(Sig.Mass));
|
||||
tuple.setItem(2, Py::Long(Sig.Time));
|
||||
tuple.setItem(3, Py::Long(Sig.ElectricCurrent));
|
||||
tuple.setItem(4, Py::Long(Sig.ThermodynamicTemperature));
|
||||
tuple.setItem(5, Py::Long(Sig.AmountOfSubstance));
|
||||
tuple.setItem(6, Py::Long(Sig.LuminousIntensity));
|
||||
tuple.setItem(7, Py::Long(Sig.Angle));
|
||||
return tuple;
|
||||
}
|
||||
|
||||
|
||||
|
||||
PyObject *UnitPy::getCustomAttributes(const char* /*attr*/) const
|
||||
|
||||
Reference in New Issue
Block a user