GraphicComponentCollection Class |
Namespace: ABB.Robotics.RobotStudio.Stations
public class GraphicComponentCollection : ICollection, IEnumerable, IEnumerable<GraphicComponent>
The GraphicComponentCollection type exposes the following members.
Name | Description | |
---|---|---|
Count | ||
IsSynchronized | ||
ItemInt32 | ||
ItemString | This is obsolete, use TryGetGraphicComponent instead. | |
Parent | ||
SyncRoot |
Name | Description | |
---|---|---|
Add |
Adds a GraphicComponent to the collection.
| |
AddLibraryComponent |
Loads a library component from a file and adds it to the collection.
| |
Clear | ||
Clear(Boolean) | ||
Contains(String) | ||
Contains(GraphicComponent) | ||
CopyTo(Array, Int32) | ||
CopyTo(GraphicComponent, Int32) | ||
Equals | (Inherited from Object.) | |
Finalize | (Inherited from Object.) | |
GetEnumerator | ||
GetHashCode | (Inherited from Object.) | |
GetType | (Inherited from Object.) | |
IndexOf | ||
Insert | ||
MemberwiseClone | (Inherited from Object.) | |
Remove(GraphicComponent) |
Remove a GraphicComponent from the collection.
| |
Remove(GraphicComponent, Boolean) |
Remove a GraphicComponent from the collection.
| |
ToArray | ||
ToString | (Inherited from Object.) | |
TryGetGraphicComponent | Gets the GraphicComponent with the specified name. |
Project.UndoContext.BeginUndoStep("PartProperties"); try { Station station = Station.ActiveStation; // Create a part. #region PartPropertiesStep1 Part myPart1 = new Part(); myPart1.Name = "MyPart_1"; #endregion // Add the part to the graphics componenets collection of the station. #region PartPropertiesStep2 station.GraphicComponents.Add(myPart1); #endregion // Create a box and add it to myPart. #region PartPropertiesStep3 Matrix4 box_origin = new Matrix4(Vector3.XVector, 0.0); Vector3 box_size = new Vector3(0.1, 0.1, 0.1); Body box = Body.CreateSolidBox(box_origin, box_size); box.Name = "MyBox"; myPart1.Bodies.Add(box); #endregion // Create a cylinder and add it to myPart. #region PartPropertiesStep4 Matrix4 origin = new Matrix4(new Vector3(Axis.X), 0.0); double radius = 0.2; double height = 1.0; Body myCylinder = Body.CreateSolidCylinder(origin, radius, height); myCylinder.Name = "MyCylinder"; myPart1.Bodies.Add(myCylinder); #endregion // Make all the geometries in myPart orange. // When using VSTA, change to these lines instead: // Byte R1 = 255; Byte G1 = 165; Byte B1 = 0; // VSTABridge.SetColor(myPart, R1, G1, B1); #region PartPropertiesStep5 myPart1.Color = Color.Orange; #endregion #region PartPropertiesStep6 myPart1.Visible = true; #endregion myPart1.PickingEnabled = true; // Move myPart and all the bodies in it 100 mm along the //X-axis and 100 mm along the Y-axis. #region PartPropertiesStep7 myPart1.Transform.X = myPart1.Transform.X + 0.1; myPart1.Transform.Y = myPart1.Transform.Y + 0.1; #endregion // Create a copy of myPart. #region PartPropertiesStep8 Part myPart2 = (Part)myPart1.Copy(); myPart2.Name = "MyPart_2"; #endregion // Add myPart2 to the station. #region PartPropertiesStep9 station.GraphicComponents.Add(myPart2); #endregion #region PartPropertiesStep10 GraphicComponentLibrary myLib = myPart2.MoveDefinitionToLibrary(); Logger.AddMessage( new LogMessage("The RootComponent of the Lib is: " + myLib.RootComponent.Name)); // Save a copy of the lib. // Get the path to the UserProjectsFolder. string userProjPath = (string)Options.GetValue("RobotStudio", "Directories.UserProjects"); if (userProjPath != null) { myLib.SaveAs(userProjPath + "\\Libraries\\myLib.rslib"); } else { // If there is no UserprojPath, save it in user documents. myLib.SaveAs(Path.Combine (System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments), "myLib.rslib")); } #endregion // Create a new instance of myPart. #region PartPropertiesStep11 Part myPart3 = (Part)myPart1.CopyInstance(); #endregion // Add myPart3 to the station. station.GraphicComponents.Add(myPart3); // Delete the geometry of myPart3, this causes // the geometry of myPart1 to be deleted to, // since they use the same definition. #region PartPropertiesStep12 myPart3.DeleteGeometry(); #endregion // Disconnect myPart2 from its library. #region PartPropertiesStep13 myPart2.DisconnectFromLibrary(); #endregion // Get the normal of myPart2 #region PartPropertiesStep14 BoundingBox bbox = myPart2.GetBoundingBox(true); Vector3 firstCorner = bbox.min; Vector3 secondCorner = bbox.max; Logger.AddMessage (new LogMessage("The first corner of the bounding box is ( " + firstCorner.x + "; " + firstCorner.y + "; " + firstCorner.z + ")")); Logger.AddMessage (new LogMessage("The second corner of the bounding box is ( " + secondCorner.x + "; " + secondCorner.y + "; " + secondCorner.z + ")")); Vector3 testPoint = new Vector3(0.0, 0.0, 0.0); Vector3 hitPoint; Vector3 hitPointNormal; Face hitFace; myPart2.GetNormalToSurface(testPoint, out hitPoint, out hitPointNormal, out hitFace); #endregion // Make the hitFace green. // When using VSTA, change to these lines instead: // Byte R = 0; Byte G = 255; Byte B = 0; // VSTABridge.SetColor(hitFace, R, G, B); hitFace.Color = Color.Green; Logger.AddMessage (new LogMessage("The hit point from GetNormalToSurface at test point (0,0,0) is: ( " + hitPoint.x + "; " + hitPoint.y + "; " + hitPoint.z + ")")); Logger.AddMessage (new LogMessage("The hit point normal from GetNormalToSurface at test point (0,0,0) is: ( " + hitPointNormal.x + "; " + hitPointNormal.y + "; " + hitPointNormal.z + ")")); } catch { Project.UndoContext.CancelUndoStep(CancelUndoStepType.Rollback); throw; } finally { Project.UndoContext.EndUndoStep(); }