private static void UpdateFasteners(PartsProperties partsProperties) { foreach (var solidName in Solids.Keys) { var userUpdated = partsProperties.parts.First(p => p.Name == solidName); if (userUpdated.FastenerCertainty < 1) { SolidsNoFastener.Add(solidName, Solids[solidName]); } } FastenerDetector.Fasteners = new HashSet <Fastener>( FastenerDetector.Fasteners.Where(f => !SolidsNoFastener.Keys.Contains(f.Solid.Name)).ToList()); FastenerDetector.Nuts = new HashSet <Nut>( FastenerDetector.Nuts.Where(n => !SolidsNoFastener.Keys.Contains(n.Solid.Name)).ToList()); FastenerDetector.Washers = new HashSet <Washer>( FastenerDetector.Washers.Where(w => !SolidsNoFastener.Keys.Contains(w.Solid.Name)).ToList()); var pF = FastenerDetector.PotentialFastener.Where(u => !SolidsNoFastener.Keys.Contains(u.Key.Name)) .ToDictionary(t => t.Key, t => t.Value); FastenerDetector.PotentialFastener = new Dictionary <TessellatedSolid, double>(pF); }
private static void SerializeSolidProperties() { XmlSerializer ser = new XmlSerializer(typeof(PartsProperties)); var partsProperties = new PartsProperties(); partsProperties.GenerateProperties(); var writer = new StreamWriter(state.inputDir + slash + "XML" + slash + "parts_properties.xml"); ser.Serialize(writer, partsProperties); }
private static void UpdateSolidsProperties(PartsProperties partsProperties) { foreach (var solidName in Solids.Keys) { var userUpdated = partsProperties.parts.First(p => p.Name == solidName); SolidsMass.Add(solidName, userUpdated.Mass > 0 ? userUpdated.Mass * Math.Pow(MeshMagnifier, 3) : userUpdated.Volume * Math.Pow(MeshMagnifier, 3)); } }