private void button3_Click(object sender, EventArgs e) { // Connect to or start Solid Edge. YCC_solidedge.getEdgeApplication(ref SEApp, true); SolidEdgeAssembly.AssemblyDocument asydoc = (SolidEdgeAssembly.AssemblyDocument)SEApp.ActiveDocument; SolidEdgeAssembly.Occurrences occs = (SolidEdgeAssembly.Occurrences)asydoc.Occurrences; SolidEdgeAssembly.Occurrence occ = (SolidEdgeAssembly.Occurrence)occs.Item(2); Array MinRangePoint = Array.CreateInstance(typeof(double), 0); Array MaxRangePoint = Array.CreateInstance(typeof(double), 0); //object[] w = new object[3]; occ.GetRangeBox(ref MinRangePoint, ref MaxRangePoint); SolidEdgePart.PartDocument ps = (SolidEdgePart.PartDocument)occ.OccurrenceDocument; //SolidEdgePart.Models ms = (SolidEdgePart.Models)ps.Models.Item[1]; SolidEdgePart.Model m = (SolidEdgePart.Model)ps.Models.Item(1); SolidEdgeGeometry.Body b = (SolidEdgeGeometry.Body)m.Body; SolidEdgeGeometry.Edges ees = (SolidEdgeGeometry.Edges)b.Edges[SolidEdgeGeometry.FeatureTopologyQueryTypeConstants.igQueryAll]; SolidEdgeGeometry.Edge ee = (SolidEdgeGeometry.Edge)ees.Item(1); //ee.GetRange(ref MinRangePoint, ref MaxRangePoint); b.GetRange(ref MinRangePoint, ref MaxRangePoint); }
static void ReportOccurrences(SolidEdgeAssembly.Occurrences occurrences) { SolidEdgeAssembly.Occurrence occurrence = null; Console.WriteLine(); for (int i = 1; i <= occurrences.Count; i++) { occurrence = occurrences.Item(i); // Allocate a new array to hold transform. double[] transform = new double[6]; // Allocate a new array to hold matrix. Array matrix = Array.CreateInstance(typeof(double), 16); // Get the occurrence transform. occurrence.GetTransform( OriginX: out transform[0], OriginY: out transform[1], OriginZ: out transform[2], AngleX: out transform[3], AngleY: out transform[4], AngleZ: out transform[5]); // Get the occurrence matrix. occurrence.GetMatrix(ref matrix); // Convert from System.Array to double[]. double[] is easier to work with. double[] m = matrix.OfType <double>().ToArray(); // Report the occurrence transform. Console.WriteLine("{0} transform:", occurrence.Name); Console.WriteLine("OriginX: {0} (meters)", transform[0]); Console.WriteLine("OriginY: {0} (meters)", transform[1]); Console.WriteLine("OriginZ: {0} (meters)", transform[2]); Console.WriteLine("AngleX: {0} (radians)", transform[3]); Console.WriteLine("AngleY: {0} (radians)", transform[4]); Console.WriteLine("AngleZ: {0} (radians)", transform[5]); Console.WriteLine(); // Report the occurrence matrix. Console.WriteLine("{0} matrix:", occurrence.Name); Console.WriteLine("|{0}, {1}, {2}, {3}|", m[0], m[1], m[2], m[3]); Console.WriteLine("|{0}, {1}, {2}, {3}|", m[4], m[5], m[6], m[7]); Console.WriteLine("|{0}, {1}, {2}, {3}|", m[8], m[9], m[10], m[11]); Console.WriteLine("|{0}, {1}, {2}, {3}|", m[12], m[13], m[14], m[15]); Console.WriteLine(); } }