sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    Paramètre depuis ruby

    Scheduled Pinned Locked Moved Français
    7 Posts 3 Posters 663 Views 3 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M Offline
      menfin
      last edited by

      Bonjour à tous,

      j' aimerais savoir comment valider une valeur passée à la VCB depuis RUBY.

      Merci pour les réponses

      1 Reply Last reply Reply Quote 0
      • M Offline
        Matt666
        last edited by

        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...
        😉

        Frenglish at its best !
        My scripts

        1 Reply Last reply Reply Quote 0
        • M Offline
          menfin
          last edited by

          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.... 😒

          1 Reply Last reply Reply Quote 0
          • M Offline
            Matt666
            last edited by

            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.

            Frenglish at its best !
            My scripts

            1 Reply Last reply Reply Quote 0
            • M Offline
              menfin
              last edited by

              Ok, dommage.
              Merci encore.

              1 Reply Last reply Reply Quote 0
              • Didier BurD Offline
                Didier Bur
                last edited by

                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 ? 🤣

                DB

                1 Reply Last reply Reply Quote 0
                • M Offline
                  menfin
                  last edited by

                  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 😄

                  1 Reply Last reply Reply Quote 0
                  • 1 / 1
                  • First post
                    Last post
                  Buy SketchPlus
                  Buy SUbD
                  Buy WrapR
                  Buy eBook
                  Buy Modelur
                  Buy Vertex Tools
                  Buy SketchCuisine
                  Buy FormFonts

                  Advertisement