static private void SaveNestParts(XmlDocument xmlDoc, XmlNode partListNode, NestPartListEx nestParts, List <KeyValuePair <long, string> > partDxfPath, Dictionary <long, int> partColorConfig) { for (int i = 0; i < nestParts.Size(); i++) { NestPartEx nestPart = nestParts.GetNestPartByIndex(i); XmlElement partNode = xmlDoc.CreateElement("Part"); partListNode.AppendChild(partNode); // path node. { for (int j = 0; i < partDxfPath.Count; j++) { if (partDxfPath[j].Key == nestPart.GetID()) { XmlElement pathNode = xmlDoc.CreateElement("Path"); pathNode.InnerText = partDxfPath[j].Value; partNode.AppendChild(pathNode); break; } } } // Count { XmlElement countNode = xmlDoc.CreateElement("Count"); countNode.InnerText = nestPart.GetNestCount().ToString(); partNode.AppendChild(countNode); } // Rotate. { XmlElement rotateNode = xmlDoc.CreateElement("Rotate"); rotateNode.InnerText = ((int)nestPart.GetRotStyle()).ToString(); partNode.AppendChild(rotateNode); // custom angles. if (nestPart.GetRotStyle() == PART_ROT_STYLE_EX.PART_ROT_CUSTOM_ANG) { // the angle-string. string strAngs = ""; ArrayList angles = nestPart.GetCustomRotAng(); for (int k = 0; k < angles.Count; k++) { double dAngle = (double)angles[k]; strAngs += dAngle.ToString("0.00000000"); strAngs += ","; } // append the node. XmlElement customAngleNode = xmlDoc.CreateElement("CustomAng"); customAngleNode.InnerText = strAngs; partNode.AppendChild(customAngleNode); } } // part color. { XmlElement colorNode = xmlDoc.CreateElement("Color"); colorNode.InnerText = partColorConfig[nestPart.GetPart().GetID()].ToString(); partNode.AppendChild(colorNode); } } }