Paramètre depuis ruby
-
Bonjour à tous,
j' aimerais savoir comment valider une valeur passée à la VCB depuis RUBY.
Merci pour les réponses
-
Salut et bienvenue.
Pourrais-tu être un peu plus explicite pour ta question ?
Je suppose que tu veux contrôler les saisies utilisateur pendant l'utilisation de ton script ?Pour ça il te faut créer un script avec les functions
class
. Ce sont des scripts particuliers qui peuvent prendre en compte les interactions utilisateurs.
Tu as plein d'exemples sur ce site. Parmi ceux que j'ai créés : Polarline, PointTool, F2f, etc... Regarde dans ma signature, tu y verras le lien vers tous mes plugins. Ensuite charge-en un et regarde ! C'est comme ça que j'ai fait, aussi...
-
Bonjour,
Merci Matt pour ta réponse.
En effet je n 'ai pas été très clair !
Je travaille effectivement dans une classe.
Je voudrais faire passer une valeur du nombre de segments pour un cercle par exemple:Sketchup.set_status_text 48, SB_VCB_VALUE
J' obtiens bien cette valeur dans la VCB, mais elle n'est pas utilisée dans ma commande.
Je pensais donc qu'il était nécessaire de la valider (comme dans la pratique normale)depuis mon code ruby.
Du genre ajout d'un code de validation.... -
Pour ce que tu veux faire, tu es obligé soit de :
- Passer par une boite de dialogue
- Laisser l'utilisateur gérer le nombre de segments à créer, en le laissant entrer un nombre avec un "s" à la fin (48s par exemple) comme dans la commande de cercle native. Et il terminera par entrée pour la validation. Ici je suppose que tu calques la procédure de la commande native. Si ca se trouve tu n'as pas besoin du "s". Tu peux laisser ton 48, et mettre 48 par défaut dans ton script de création de cercle !
Sketchup.set_status_text 48, SB_VCB_VALUE
sert à afficher un texte dans le VCB, c'est tout. Il est affiché comme une information, et ne modifie pas ton programme.
-
Ok, dommage.
Merci encore. -
Bjr,
Effectivement ce n'est que de l'affichage. Pour obtenir la valeur tapée par l'utilisateur, il faut créer une classe de type "Tool" dans laquelle on définit une méthode "onUsertext" qui elle, peut contrôler et renvoyer ce qu'a tapé l'utilisateur.
Par exemple:class MonOutil def initialize blabla end def activate blabla end def onUserText(text, view) begin @value = text.to_l rescue # Erreur de saisie pour un réel transformé en longueur UI.messagebox("Impossible de convertir #{text} en longueur.") @value = nil end return if !@value @longueur = @value end def autrefonction blabla end end #fin de classe
Ensuite l'icône ou le menu associé à ce script doit créer une instance d'objet de la classe pour lancer l'outil, avec par exemple:
Sketchup.active_model.select_tool(MonOutil.new)
Simple, non ?
-
Bonjour,
Merci Didier.
Ce n 'était pas directement mon besoin, mais en cherchant sur ce thème, j'ai découvert de nouvelles possibilités, et pour des problèmes différents.
Comme j'en ai encore beaucoup d'autres...problèmes, à bientôt donc
Advertisement