Beispiel #1
0
        protected override void AddAnalysisToXMLOutput(CAD.AssemblyType cadassembly)
        {
            base.AddAnalysisToXMLOutput(cadassembly);
            CAD.AnalysesType cadanalysis = GetCADAnalysis(cadassembly);

            CAD.BlastType blastanalysis = new CAD.BlastType();
            blastanalysis._id        = UtilityHelpers.MakeUdmID();
            blastanalysis.AnalysisID = blastConfig.analysis.ID;
            if (referencePlaneType != Survivability.ReferencePlaneTypeEnum.None)
            {
                CAD.ReferencePlaneType refplane = new CAD.ReferencePlaneType();
                refplane._id  = UtilityHelpers.MakeUdmID();
                refplane.Type = referencePlaneType.ToString();
                blastanalysis.ReferencePlane    = new CAD.ReferencePlaneType[1];         // cardinality should be changed to have 0..1 in CAD_Uml.xme
                blastanalysis.ReferencePlane[0] = refplane;
            }

            List <CAD.MetricType> metrics = MetricsToCADXMLOutput(Computations, cadassembly.ConfigurationID);

            if (metrics.Count > 0)
            {
                blastanalysis.Metrics        = new CAD.MetricsType();
                blastanalysis.Metrics._id    = UtilityHelpers.MakeUdmID();
                blastanalysis.Metrics.Metric = metrics.ToArray();
            }

            if (blastanalysis.ReferencePlane != null || blastanalysis.Metrics != null)
            {
                cadanalysis.Blast = new CAD.BlastType[] { blastanalysis };
            }
        }
Beispiel #2
0
        protected override void AddAnalysisToXMLOutput(CAD.AssemblyType cadassembly)
        {
            base.AddAnalysisToXMLOutput(cadassembly);
            CAD.AnalysesType cadanalysis = GetCADAnalysis(cadassembly);

            CAD.BallisticType ballisticanalysis = new CAD.BallisticType();
            ballisticanalysis._id        = UtilityHelpers.MakeUdmID();
            ballisticanalysis.AnalysisID = AnalysisID;

            if (referencePlaneType != Survivability.ReferencePlaneTypeEnum.None)
            {
                CAD.ReferencePlaneType refplane = new CAD.ReferencePlaneType();
                refplane._id  = UtilityHelpers.MakeUdmID();
                refplane.Type = referencePlaneType.ToString();
                ballisticanalysis.ReferencePlane = refplane;
            }

            if (customShotlineList.Any())
            {
                CAD.ShotlinesType cadshotlinesuite = new CAD.ShotlinesType();
                cadshotlinesuite._id = UtilityHelpers.MakeUdmID();
                List <CAD.ShotlineType> shotlineList = new List <CAD.ShotlineType>();
                foreach (var shotline in customShotlineList)
                {
                    CAD.ShotlineType cadshotline = new CAD.ShotlineType();
                    cadshotline._id                = UtilityHelpers.MakeUdmID();
                    cadshotline.Azimuth            = shotline.Azimuth;
                    cadshotline.Elevation          = shotline.Elevation;
                    cadshotline.BallisticThreatRef = shotline.BallisticThreatRef;
                    cadshotline.ComponentID        = shotline.ComponentID;
                    cadshotline.DatumPoint         = shotline.DatumPoint;
                    cadshotline.ShotlineName       = shotline.ShotlineName;
                    shotlineList.Add(cadshotline);
                }

                cadshotlinesuite.Shotline   = shotlineList.ToArray();
                ballisticanalysis.Shotlines = cadshotlinesuite;
            }


            List <CAD.MetricType> metrics = MetricsToCADXMLOutput(Computations, cadassembly.ConfigurationID);

            if (metrics.Count > 0)
            {
                ballisticanalysis.Metrics        = new CAD.MetricsType();
                ballisticanalysis.Metrics._id    = UtilityHelpers.MakeUdmID();
                ballisticanalysis.Metrics.Metric = metrics.ToArray();
            }

            if (ballisticanalysis.Metrics != null || ballisticanalysis.ReferencePlane != null || ballisticanalysis.Shotlines != null)
            {
                cadanalysis.Ballistic = new CAD.BallisticType[] { ballisticanalysis };
            }
        }
Beispiel #3
0
 protected CAD.AnalysesType GetCADAnalysis(CAD.AssemblyType assembly)
 {
     CAD.AnalysesType analysis;
     if (assembly.Analyses == null)
     {
         analysis = new CAD.AnalysesType()
         {
             _id = UtilityHelpers.MakeUdmID()
         };
         assembly.Analyses = analysis;
     }
     else
     {
         analysis = assembly.Analyses;
     }
     return(analysis);
 }
Beispiel #4
0
        protected void AddStaticAnalysisMetrics(CAD.AssemblyType assemblyRoot)
        {
            if (ExportComponentPoints && cadDataContainer.PointCoordinatesList.Any())
            {
                StaticAnalysisMetrics.AddRange(cadDataContainer.PointCoordinatesList.Where(x => !StaticAnalysisMetrics.Exists(r => r.MetricID == x.MetricID)));
            }

            if (StaticAnalysisMetrics.Any())
            {
                CAD.AnalysesType cadanalysis    = GetCADAnalysis(assemblyRoot);
                CAD.StaticType   staticanalysis = GetStaticAnalysis(cadanalysis);         //CAD.StaticType staticanalysis = new CAD.StaticType();

                List <CAD.MetricType> metriclist = MetricsToCADXMLOutput(StaticAnalysisMetrics);
                staticanalysis.Metrics        = new CAD.MetricsType();
                staticanalysis.Metrics._id    = UtilityHelpers.MakeUdmID();
                staticanalysis.Metrics.Metric = metriclist.ToArray();

                cadanalysis.Static = new CAD.StaticType[] { staticanalysis };
            }
        }
Beispiel #5
0
        protected override void AddAnalysisToXMLOutput(CAD.AssemblyType cadassembly)
        {
            base.AddAnalysisToXMLOutput(cadassembly);
            CAD.AnalysesType cadanalysis = GetCADAnalysis(cadassembly);

            CAD.CFDType cfdanalysis = new CAD.CFDType();
            cfdanalysis._id        = UtilityHelpers.MakeUdmID();
            cfdanalysis.AnalysisID = AnalysisID;

            List <CAD.MetricType> metrics = MetricsToCADXMLOutput(Computations, cadassembly.ConfigurationID);

            if (metrics.Count > 0)
            {
                cfdanalysis.Metrics        = new CAD.MetricsType();
                cfdanalysis.Metrics._id    = UtilityHelpers.MakeUdmID();
                cfdanalysis.Metrics.Metric = metrics.ToArray();
            }

            // Hydrostatics solver setting will go to the CadAssembly.xml as it is interpreted by CadCreateAssembly.exe
            foreach (var config in cfdConfigs.Where(cfg => cfg is CFDConfig.HydrostaticsSolverSettings))
            {
                CFDConfig.HydrostaticsSolverSettings hconfig = config as CFDConfig.HydrostaticsSolverSettings;
                cfdanalysis.HydrostaticsSolverSettings    = new CAD.HydrostaticsSolverSettingsType[1];
                cfdanalysis.HydrostaticsSolverSettings[0] = new CAD.HydrostaticsSolverSettingsType()
                {
                    VehicleVelocity    = 1,
                    FluidMaterial      = hconfig.FluidMaterial.ToString(),
                    FluidTemperature   = hconfig.FluidTemperature,
                    PitchAngleStart    = hconfig.PitchAngleStart,
                    PitchAngleEnd      = hconfig.PitchAngleEnd,
                    PitchAngleStepSize = hconfig.PitchAngleStep,
                    RollAngleStart     = hconfig.RollAngleStart,
                    RollAngleEnd       = hconfig.RollAngleEnd,
                    RollAngleStepSize  = hconfig.RollAngleStep
                };
            }

            cadanalysis.CFD = new CAD.CFDType[] { cfdanalysis };

            AddStaticAnalysisMetrics(cadassembly);
        }
Beispiel #6
0
        protected CAD.StaticType GetStaticAnalysis(CAD.AnalysesType analyses)
        {
            CAD.StaticType staticAnalysis;
            if (analyses.Static == null)
            {
                analyses.Static = new CAD.StaticType[1]
                {
                    new CAD.StaticType()
                    {
                        _id        = UtilityHelpers.MakeUdmID(),
                        AnalysisID = AnalysisID
                    }
                };

                staticAnalysis = analyses.Static[0];
            }
            else
            {
                staticAnalysis = analyses.Static.FirstOrDefault();
            }

            return(staticAnalysis);
        }
 protected CAD.AnalysesType GetCADAnalysis(CAD.AssemblyType assembly)
 {
     CAD.AnalysesType analysis;
     if (assembly.Analyses == null)
     {
         analysis = new CAD.AnalysesType()
         {
             _id = UtilityHelpers.MakeUdmID()
         };
         assembly.Analyses = analysis;
     }
     else
     {
         analysis = assembly.Analyses;
     }
     return analysis;
 }