Exemplo n.º 1
0
            //------------------------------------------------------------------------------

            public MUDomain()
            {
                Adimensional = new MeasureUnitWithDefaultTolerance(0, MUCollection.Adimensional.adim);

                Length            = new MeasureUnitWithDefaultTolerance(1e-4, MUCollection.Length.m);
                Mass              = new MeasureUnitWithDefaultTolerance(1e-4, MUCollection.Mass.kg);
                Time              = new MeasureUnitWithDefaultTolerance(1e-1, MUCollection.Time.sec);
                ElectricCurrent   = new MeasureUnitWithDefaultTolerance(1e-9, MUCollection.ElectricCurrent.A);
                Temperature       = new MeasureUnitWithDefaultTolerance(1e-1, MUCollection.Temperature.C);
                AmountOfSubstance = new MeasureUnitWithDefaultTolerance(1e-9, MUCollection.AmountOfSubstance.mol);
                LuminousIntensity = new MeasureUnitWithDefaultTolerance(1e-9, MUCollection.LuminousIntensity.cd);

                //---------------------------------------------------------------

                Length2                = new MeasureUnitWithDefaultTolerance(1e-4, MUCollection.Length2.m2);
                Length3                = new MeasureUnitWithDefaultTolerance(1e-4, MUCollection.Length3.m3);
                Length4                = new MeasureUnitWithDefaultTolerance(1e-4, MUCollection.Length4.m4);
                Force                  = new MeasureUnitWithDefaultTolerance(1e-1, MUCollection.Force.N);
                PlaneAngle             = new MeasureUnitWithDefaultTolerance(PI / 180.0 / 10.0, MUCollection.PlaneAngle.rad);
                Pressure               = new MeasureUnitWithDefaultTolerance(1e-1, MUCollection.Pressure.Pa);
                Acceleration           = new MeasureUnitWithDefaultTolerance(1e-1, MUCollection.Acceleration.m_s2);
                Speed                  = new MeasureUnitWithDefaultTolerance(1e-1, MUCollection.Speed.m_s);
                AngularSpeed           = new MeasureUnitWithDefaultTolerance(PI / 180d / 10d, MUCollection.AngularSpeed.rad_s);
                AngularAcceleration    = new MeasureUnitWithDefaultTolerance(PI / 180d / 10d, MUCollection.AngularAcceleration.rad_s2);
                BendingMoment          = new MeasureUnitWithDefaultTolerance(1e-2, MUCollection.BendingMoment.Nm);
                Energy                 = new MeasureUnitWithDefaultTolerance(1e-4, MUCollection.Energy.J);
                Power                  = new MeasureUnitWithDefaultTolerance(1e-4, MUCollection.Power.W);
                ElectricalConductance  = new MeasureUnitWithDefaultTolerance(1e-9, MUCollection.ElectricalConductance.S);
                ElectricalConductivity = new MeasureUnitWithDefaultTolerance(1e-9, MUCollection.ElectricalConductivity.S_m);
                Turbidity              = new MeasureUnitWithDefaultTolerance(1e-9, MUCollection.Turbidity.FNU);
                Frequency              = new MeasureUnitWithDefaultTolerance(1e-9, MUCollection.Frequency.hz);
                VolumetricFlowRate     = new MeasureUnitWithDefaultTolerance(1e-6, MUCollection.VolumetricFlowRate.m3_s);
            }
Exemplo n.º 2
0
            /// <summary>
            /// allow to set programmatically the associated measure unit and tolerance in the model of a given physical quantity
            /// if given defaulttolreance is null, then current default tolerance will be converted to given measure unit
            /// </summary>
            public void SetupItem(string physicalQuantityName, string measureUnitName, double?defaultTolerance = null)
            {
                var pq = PQCollection.PhysicalQuantities.First(w => w.Name == physicalQuantityName);

                var t = GetType();

                var props = t.GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance);

                var mu = MUCollection.MeasureUnits.First(w => w.Name == measureUnitName);

                MeasureUnitWithDefaultTolerance muwdt = null;

                if (defaultTolerance.HasValue)
                {
                    muwdt = new MeasureUnitWithDefaultTolerance(defaultTolerance.Value, mu);
                }
                else
                {
                    var curTol = props
                                 .Where(r => r.PropertyType == tMeasureUnitWithDefaultTolerance)
                                 .First(w => w.Name == physicalQuantityName)
                                 .GetMethod.Invoke(this, null);

                    muwdt = (curTol as MeasureUnitWithDefaultTolerance).ConvertTo(mu);
                }

                props
                .Where(r => r.PropertyType == tMeasureUnitWithDefaultTolerance)
                .First(w => w.Name == physicalQuantityName)
                .SetMethod.Invoke(this, new object[] { muwdt });
            }