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 }; } }
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 }; } }
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); }
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 }; } }
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); }
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; }