public Cluster() : base(entTypes.Sketch) { if (I.aDoc().DocumentType != DocumentTypeEnum.kPartDocumentObject) { return; } MyXML xmlInterface = new MyXML("ClusterInterface.xml"); MyForm F = new MyForm(xmlInterface, "Кластер"); F.f.ShowDialog(); if (F.xmls.Count != 2) { return; } xml = F.xmls[1]; Dictionary <string, string> dic = new Dictionary <string, string>(); xml.set("val", F.cbs[0].Text); ClusterData.startx = 0; ClusterData.starty = 0; xml.getInt("countX", ref ClusterData.countX); xml.getInt("countY", ref ClusterData.countY); xml.getDouble("D", ref ClusterData.D, ClusterData.tol); xml.getDouble("dx", ref ClusterData.dx, ClusterData.tol); xml.getDouble("dy", ref ClusterData.dy, ClusterData.tol); xml.getInt("rotate", ref ClusterData.rotate); foreach (var item in xml.elem.Elements()) { data.Add(new ClusterData(new MyXML(item))); } // if (ClusterData.rotate == 1) // { // data.Insert(0, data[1]); // data.Remove(data[2]); // } doc = I.aDoc() as PartDocument; compDef = doc.ComponentDefinition; ps = compDef.Sketches[compDef.Sketches.Count]; if (ps.Consumed) { return; } psOut = compDef.Sketches.Add(ps.PlanarEntity); psOut.OriginPoint = ps.OriginPoint; if (ps.AxisEntity != null) { psOut.AxisEntity = ps.AxisEntity; } psOut.AxisIsX = ps.AxisIsX; psOut.NaturalAxisDirection = ps.NaturalAxisDirection; get(); }
public ClusterData(MyXML xml) { name = xml.elem.Name.ToString(); //xml.getDouble("D", ref D, tol); xml.getDouble("x", ref x, tol); xml.getDouble("y", ref y, tol); xml.getDouble("l", ref l, tol); if (startx < x) { startx = x; } if (starty < y) { starty = y; } //xml.getDouble("dx", ref dx, tol); xml.getDouble("dy", ref dy, tol); }
public void txt() { string fn = I.aDoc().FullFileName; fn = fn.Replace(".ipt", "(Кластер).txt"); using (System.IO.StreamWriter sw = System.IO.File.CreateText(fn)) { int cx = (countX * ClusterData.countX) * data.Count / 2; int cy = (countY * ClusterData.countY) * data.Count / 2; if (data.Count == 2) { cy = countY * ClusterData.countY; } double a = 0; xml.getDouble("area", ref a, 1); sw.Write("Кластер: " + MyXML.getAtt(xml.elem, "val") + "\n"); sw.Write("Количество ударов: " + cx * cy / (ClusterData.countX * ClusterData.countY) + "\n"); sw.Write("Количество отверстий по горизонтали: " + cx + " шт.\n"); sw.Write("Количество отверстий по вертикали: " + cy + " шт.\n"); sw.Write("Общее количество отверстий: " + cx * cy + " шт.\n"); sw.Write("Площадь: " + (cx * cy * a).ToString("##.####") + "мм2."); } }