示例#1
0
        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);
        }
示例#2
0
  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;
    }