示例#1
0
        protected override GH_GetterResult Prompt_Singular(ref IGH_Goo value)
        {
            var bPlane = Plane.WorldXY;

MainMenu:
            var go = new Rhino.Input.Custom.GetString();

            go.SetCommandPrompt("Set default robot.");
            go.AcceptNothing(true);
            go.AddOption("Default");
            go.AddOption("IRB_120");
            go.AddOption("IRB_6620");
            go.AddOption("SetBasePlane", $"O({bPlane.OriginX.ToString("0.00")},{bPlane.OriginY.ToString("0.00")},{bPlane.OriginZ.ToString("0.00")}) " +
                         $"Z({bPlane.ZAxis.X.ToString("0.00")},{bPlane.ZAxis.Y.ToString("0.00")}, {bPlane.ZAxis.Z.ToString("0.00")})");

            switch (go.Get())
            {
            case Rhino.Input.GetResult.Option:
                if (go.Option().EnglishName == "Default")
                {
                    var rob = Abb6DOFRobot.Default; rob.ChangeBasePlane(bPlane); value = rob;
                }
                if (go.Option().EnglishName == "IRB_120")
                {
                    var rob = Abb6DOFRobot.IRB120; rob.ChangeBasePlane(bPlane); value = rob;
                }
                if (go.Option().EnglishName == "IRB_6620")
                {
                    var rob = Abb6DOFRobot.IRB6620; rob.ChangeBasePlane(bPlane); value = rob;
                }
                if (go.Option().EnglishName == "SetBasePlane")
                {
                    GetBPlane(out bPlane); goto MainMenu;
                }
                return(GH_GetterResult.success);

            case Rhino.Input.GetResult.Nothing:
                return(GH_GetterResult.cancel);

            default:
                return(GH_GetterResult.cancel);
            }
        }
        /// <summary>
        /// Called when the command is in scripted mode
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        static Result RunScript(TextViewModel model)
        {
            var height = new Rhino.Input.Custom.OptionDouble(model.textHeight);
              var bold = new Rhino.Input.Custom.OptionToggle(model.bold, Localization.LocalizeCommandOptionValue("No", 396), Localization.LocalizeCommandOptionValue("Yes", 397));
              var italic = new Rhino.Input.Custom.OptionToggle(model.italic, Localization.LocalizeCommandOptionValue("No", 398), Localization.LocalizeCommandOptionValue("Yes", 399));
              var mask = new Rhino.Input.Custom.OptionToggle(model.maskEnabled, Localization.LocalizeCommandOptionValue("No", 400), Localization.LocalizeCommandOptionValue("Yes", 401));
              var masksource = new Rhino.Input.Custom.OptionToggle(model.maskUsesViewportColor, Localization.LocalizeCommandOptionValue("No", 402), Localization.LocalizeCommandOptionValue("Yes", 403));
              var maskcolor = new Rhino.Input.Custom.OptionColor(model.maskColor);
              var maskborder = new Rhino.Input.Custom.OptionDouble(model.maskOffset, true, 0);
              string facename = model.Font.FaceName;

              string newtext = "";
              var go = new Rhino.Input.Custom.GetString();
              var get_rc = Rhino.Input.GetResult.Cancel;
              var rc = Rhino.Commands.Result.Cancel;
              while (get_rc != Rhino.Input.GetResult.Nothing && get_rc != Rhino.Input.GetResult.String)
              {
            go.ClearCommandOptions();
            go.AcceptNothing(true);
            go.SetCommandPrompt(LOC.STR("Text string"));
            int faceopt = go.AddOption(LOC.CON("Font"));
            go.AddOptionDouble(LOC.CON("Height"), ref height, LOC.STR("Text height"));
            go.AddOptionToggle(LOC.CON("Italic"), ref italic);
            go.AddOptionToggle(LOC.CON("Mask"), ref mask);
            go.AddOptionToggle(LOC.CON("UseBackgroundColor"), ref masksource);
            go.AddOptionColor(LOC.CON("MaskColor"), ref maskcolor);
            go.AddOptionDouble(LOC.CON("MaskMargin"), ref maskborder);
            get_rc = go.Get();

            switch (get_rc)
            {
            case Rhino.Input.GetResult.Cancel:
              return Rhino.Commands.Result.Cancel;
            case Rhino.Input.GetResult.String:
              newtext = go.StringResult();
              break;
            case Rhino.Input.GetResult.Option:
              if( go.OptionIndex() == faceopt )
              {
            string oldname = facename;
            rc = Rhino.Input.RhinoGet.GetString(LOC.STR("Font name"), true, ref facename);
            if( rc!=Rhino.Commands.Result.Success)
              return rc;
            if (string.IsNullOrWhiteSpace(facename))
              facename = oldname;
              }
              break;
            }
              }

              if (string.IsNullOrWhiteSpace(newtext))
            return Rhino.Commands.Result.Cancel;

              // update default settings
              model.text = newtext;
              int fontindex = model.Doc.Fonts.FindOrCreate(facename, bold.CurrentValue, italic.CurrentValue);
              model.fontIndex = fontindex;
              model.textHeight = height.CurrentValue;
              model.maskEnabled = mask.CurrentValue;
              model.maskUsesViewportColor = masksource.CurrentValue;
              model.maskColor = maskcolor.CurrentValue;
              model.maskOffset = maskborder.CurrentValue;

              return Result.Success;
        }