protected override Result RunCommand(RhinoDoc doc, RunMode mode) { // Cook up an unused layer name string unused_name = doc.Layers.GetUnusedLayerName(false); // Prompt the user to enter a layer name Rhino.Input.Custom.GetString gs = new Rhino.Input.Custom.GetString(); gs.SetCommandPrompt("Name of layer to add"); gs.SetDefaultString(unused_name); gs.AcceptNothing(true); gs.Get(); if (gs.CommandResult() != Rhino.Commands.Result.Success) { return(gs.CommandResult()); } // Was a layer named entered? string layer_name = gs.StringResult().Trim(); if (string.IsNullOrEmpty(layer_name)) { Rhino.RhinoApp.WriteLine("Layer name cannot be blank."); return(Rhino.Commands.Result.Cancel); } // Is the layer name valid? if (!Rhino.DocObjects.Layer.IsValidName(layer_name)) { Rhino.RhinoApp.WriteLine(layer_name + " is not a valid layer name."); return(Rhino.Commands.Result.Cancel); } // Does a layer with the same name already exist? int layer_index = doc.Layers.Find(layer_name, true); if (layer_index >= 0) { Rhino.RhinoApp.WriteLine("A layer with the name {0} already exists.", layer_name); return(Rhino.Commands.Result.Cancel); } // Add a new layer to the document layer_index = doc.Layers.Add(layer_name, System.Drawing.Color.IndianRed); if (layer_index < 0) { Rhino.RhinoApp.WriteLine("Unable to add {0} layer.", layer_name); return(Rhino.Commands.Result.Failure); } return(Rhino.Commands.Result.Success); return(Result.Success); }
public static Rhino.Commands.Result AddLayer(Rhino.RhinoDoc doc) { // Cook up an unused layer name string unused_name = doc.Layers.GetUnusedLayerName(false); // Prompt the user to enter a layer name Rhino.Input.Custom.GetString gs = new Rhino.Input.Custom.GetString(); gs.SetCommandPrompt("Name of layer to add"); gs.SetDefaultString(unused_name); gs.AcceptNothing(true); gs.Get(); if (gs.CommandResult() != Rhino.Commands.Result.Success) return gs.CommandResult(); // Was a layer named entered? string layer_name = gs.StringResult().Trim(); if (string.IsNullOrEmpty(layer_name)) { Rhino.RhinoApp.WriteLine("Layer name cannot be blank."); return Rhino.Commands.Result.Cancel; } // Is the layer name valid? if (!Rhino.DocObjects.Layer.IsValidName(layer_name)) { Rhino.RhinoApp.WriteLine(layer_name + " is not a valid layer name."); return Rhino.Commands.Result.Cancel; } // Does a layer with the same name already exist? int layer_index = doc.Layers.Find(layer_name, true); if (layer_index >= 0) { Rhino.RhinoApp.WriteLine("A layer with the name {0} already exists.", layer_name); return Rhino.Commands.Result.Cancel; } // Add a new layer to the document layer_index = doc.Layers.Add(layer_name, System.Drawing.Color.Black); if (layer_index < 0) { Rhino.RhinoApp.WriteLine("Unable to add {0} layer.", layer_name); return Rhino.Commands.Result.Failure; } return Rhino.Commands.Result.Success; }
public static Rhino.Commands.Result AddChildLayer(Rhino.RhinoDoc doc) { // Get an existing layer string default_name = doc.Layers.CurrentLayer.Name; // Prompt the user to enter a layer name Rhino.Input.Custom.GetString gs = new Rhino.Input.Custom.GetString(); gs.SetCommandPrompt("Name of existing layer"); gs.SetDefaultString(default_name); gs.AcceptNothing(true); gs.Get(); if (gs.CommandResult() != Rhino.Commands.Result.Success) { return(gs.CommandResult()); } // Was a layer named entered? string layer_name = gs.StringResult().Trim(); int index = doc.Layers.Find(layer_name, true); if (index < 0) { return(Rhino.Commands.Result.Cancel); } Rhino.DocObjects.Layer parent_layer = doc.Layers[index]; // Create a child layer string child_name = parent_layer.Name + "_child"; Rhino.DocObjects.Layer childlayer = new Rhino.DocObjects.Layer(); childlayer.ParentLayerId = parent_layer.Id; childlayer.Name = child_name; childlayer.Color = System.Drawing.Color.Red; index = doc.Layers.Add(childlayer); if (index < 0) { Rhino.RhinoApp.WriteLine("Unable to add {0} layer.", child_name); return(Rhino.Commands.Result.Failure); } return(Rhino.Commands.Result.Success); }
public static Rhino.Commands.Result AddChildLayer(Rhino.RhinoDoc doc) { // Get an existing layer string default_name = doc.Layers.CurrentLayer.Name; // Prompt the user to enter a layer name Rhino.Input.Custom.GetString gs = new Rhino.Input.Custom.GetString(); gs.SetCommandPrompt("Name of existing layer"); gs.SetDefaultString(default_name); gs.AcceptNothing(true); gs.Get(); if (gs.CommandResult() != Rhino.Commands.Result.Success) return gs.CommandResult(); // Was a layer named entered? string layer_name = gs.StringResult().Trim(); int index = doc.Layers.Find(layer_name, true); if (index<0) return Rhino.Commands.Result.Cancel; Rhino.DocObjects.Layer parent_layer = doc.Layers[index]; // Create a child layer string child_name = parent_layer.Name + "_child"; Rhino.DocObjects.Layer childlayer = new Rhino.DocObjects.Layer(); childlayer.ParentLayerId = parent_layer.Id; childlayer.Name = child_name; childlayer.Color = System.Drawing.Color.Red; index = doc.Layers.Add(childlayer); if (index < 0) { Rhino.RhinoApp.WriteLine("Unable to add {0} layer.", child_name); return Rhino.Commands.Result.Failure; } return Rhino.Commands.Result.Success; }