• Login
sketchucation logo sketchucation
  • Login
🤑 SketchPlus 1.3 | 44 Tools for $15 until June 20th Buy Now

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 21 Jun 2009, 13:26

    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 23 Jun 2009, 15:21

      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 23 Jun 2009, 16:46

        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 23 Jun 2009, 17:15

          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 23 Jun 2009, 20:32

            Ok, dommage.
            Merci encore.

            1 Reply Last reply Reply Quote 0
            • D Offline
              Didier Bur
              last edited by 25 Jun 2009, 09:55

              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 27 Jun 2009, 06:48

                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
                1 / 1
                • First post
                  1/7
                  Last post
                Buy SketchPlus
                Buy SUbD
                Buy WrapR
                Buy eBook
                Buy Modelur
                Buy Vertex Tools
                Buy SketchCuisine
                Buy FormFonts

                Advertisement