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; }