В SketchUp можно запросить ввод пользователя, используя диалоговое окно, созданное с помощью метода UI.Inputbox
. Основная задача - задать размер или длину некоторой геометрии, создаваемой впоследствии скриптом.Как спросить и подтвердить длину из поля `UI.Inputbox`?
Внутренний SketchUp использует Inches для определения геометрии. Пользователь даст ответ в своей локализованной размерной идиоме: «1,5 м» на 1,5 метра. Встроенный метод SketchUp .to_l
преобразует строки в длину. См. https://github.com/thomthom/SketchUp-Units-and-Locale-Helper#sketchups-shortcomings для справки.
Я запрашиваю у пользователя длину в виде строки от UI.Inputbox
, а затем преобразовываю ее в значение длины с помощью .to_l
, но если пользователь вводит недопустимое значение, я не знаю, как проверить или как обрабатывать ошибку.
Поскольку мои локализованные входы длины имеют «,» как десятичное разделение (по-португальски это 1,5 м не 1,5 м), я не желаю запрашивать значение с плавающей запятой.
prompts = ['Length']
defaults = ['1,2']
inputs = UI.inputbox(prompts, defaults ,'Length Input')
inputs[0].to_l
#try inputs[0].to_f
Как проверить входную строку или уловить .to_l
отказ?
вы можете предоставить код в качестве примера? трудно понять, что вы спрашиваете – dax
@ dax посмотреть, похоже ли это на лучший вопрос ... – villares
да, теперь это проще понять, но у меня все еще есть вопрос.Вы говорите, что не хотите запрашивать плавающие точки - значит ли это, что вы всегда будете получать целые числа целого числа в виде строк? – dax