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

    Tracé de ligne à partir de coordonnées dans Excel

    Scheduled Pinned Locked Moved Français
    16 Posts 4 Posters 4.7k Views 4 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.
    • B Offline
      BARROIS
      last edited by

      Yep Yep Yep !! ☀
      trés pédagogue Mrs.Bur, j'ai juste mis tes trois lignes dans fr_box.rb et 😍
      Je n'ose pas mettre à disposition mon "vector.rb" sur http://www.crai.archi.fr/RubyLibraryDepot/Ruby/fr_RUBY_Library_Depot.html
      ma première création en ruby: restons modeste.
      Y-a-t-il moyen de choisir le couleur du trait ? Je crois qu'il y a une fonction style quelque part.
      D'autre part, aurais-tu un exemple pour la lecture d'un .csv ?
      Enfin où se procurer un catalogue de fonctions ruby ?
      tu ne 🤢 pas tout ça de ton 👍, quel est ton ❓ secret ❓ Oh grand 😎!

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

        Bonjour,

        @unknownuser said:

        Y-a-t-il moyen de choisir le couleur du trait ? Je crois qu'il y a une fonction style quelque part.

        Non, la classe "Edge" n'a pas de méthode "style". Un style est de toute façon une option qui s'applique à tout le modèle à la fois (dans une scène donnée), il est donc logique de ne pas pouvoir avoir des style de trait différents pour chaque ligne.

        DB

        1 Reply Last reply Reply Quote 0
        • B Offline
          BARROIS
          last edited by

          Excuses-moi d'insister pour l'exemple de lecture de fichier .csv ,
          Aurais-tu un exemple de code ruby ?

          D'avance merci

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

            Minute, j'étais en train de le faire ! 🤣

            @unknownuser said:

            où se procurer un catalogue de fonctions ruby ?

            Le mieux c'est d'aller sur LE site de Ruby:
            http://www.ruby-doc.org/docs/ProgrammingRuby/html/builtins.html
            Pour l'API de Sketchup, la doc est TRES mal faite, pleines d'erreurs, pleines de trous, bref c'est nul. Le problème c'est qu'il n'existe rien d'autre.
            Le secret, c'est "essai-erreur", enfin presque.


            temp.rb

            DB

            1 Reply Last reply Reply Quote 0
            • B Offline
              BARROIS
              last edited by

              ☀ Merci beaucoup pour ton aide. ☀
              Je vais m'attacher maintenant à créer mon champ de vecteurs 💭
              et je t'enoie une photo. Promis !

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

                @unknownuser said:

                où se procurer un catalogue de fonctions ruby ?
                Perso j'utilise plutot ça, dans LE même site...
                Totalement d'ac avec toi Didier, ce site est dément !

                @unknownuser said:

                Le secret, c'est "essai-erreur", enfin presque.
                🤣
                Bien intéressant ce petit post ! Merci !

                Frenglish at its best !
                My scripts

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

                  @unknownuser said:

                  ce site est dément

                  Normal, c'est le site qui héberge et diffuse Ruby.
                  Mais j'aime bien aussi ça:
                  http://www.noobkit.com/show/ruby/ruby/ruby-core.html
                  et ça:
                  http://pleac.sourceforge.net/pleac_ruby/
                  http://www.zenspider.com/Languages/Ruby/QuickRef.html#14
                  http://www.rubyfrance.org/documentations (en français pour une fois)

                  DB

                  1 Reply Last reply Reply Quote 0
                  • B Offline
                    BARROIS
                    last edited by

                    Resultat de "importer_fichier_vecteurs"
                    Au premier essai : Error de lecture sur le fichier 👎 E:\GDCB\Modélisation_Simulation_Thermique\Modélisation_aero\vecteurs.csv
                    ben oui, ruby n'admet pas les caractère accentué dans un fichier. OK !

                    Mais au deuxième essai, cela ne fonctionnait pas tout de même, ❗
                    j'ai du modifier un peu ton texte:

                      %(#0000FF)[tableau_lignes.each do |ligne|
                      coordonees=ligne.split(";")
                      #la methode split sépare la ligne en morceaux séparés par des points-virgule et renvoie un tableau (de chaines de caractères)
                      # Ca donne pour la premiere ligne: ["1", "2", "3", "4", "5", "6\n"]
                      # Il reste à transformer ces caractères en chiffres:
                      x1=ligne[0].to_f #les indices de tableau commencent à zéro et non à 1
                      y1=ligne[1].to_f
                      z1=ligne[2].to_f
                      x2=ligne[3].to_f
                      y2=ligne[4].to_f
                      z2=ligne[5].to_f
                      # N.B.: la methode to_f prend une chaine de caractères et la transforme en nombre, si elle peut
                      
                      # On crée les objets point3d correspondants:
                      p1=Geom::Point3d.new(x1,y1,z1)
                      p2=Geom::Point3d.new(x2,y2,z2)]
                    

                    par le texte suivant:

                     %(#0000FF)[tableau_lignes = IO.readlines(fichier)
                    #Ca donne: ["1;2;3;4;5;6\n", "7;8;9;10;11;12\n", "13;14;15;16;17;18\n"]
                    # les \n sont des caractères de fin de ligne
                    
                    # On parcourt le tableau ligne par ligne, et on éclate chaque ligne en un tableau de 3 valeurs X,Y et Z
                    tableau_lignes.each do |ligne|
                      coordonees=ligne.split(";")
                      #la methode split sépare la ligne en morceaux séparés par des points-virgule et renvoie un tableau (de chaines de caractères)
                      # Ca donne pour la premiere ligne: ["1", "2", "3", "4", "5", "6\n"]
                      # Il reste à transformer ces caractères en chiffres:
                      
                      x1=(coordonees[0].to_f)/2.54 #les indices de tableau commencent à zéro et non à 1
                      y1=(coordonees[1].to_f)/2.54
                      z1=(coordonees[2].to_f)/2.54
                      x2=(coordonees[3].to_f)/2.54
                      y2=(coordonees[4].to_f)/2.54
                      z2=(coordonees[5].to_f)/2.54
                      # N.B.: la methode to_f prend une chaine de caractères et la transforme en nombre, si elle peut
                      
                      # On crée les objets point3d correspondants:
                      p1=Geom::Point3d.new(x1,y1,z1)
                      p2=Geom::Point3d.new(x2,y2,z2)]
                    

                    Alors evidement le 2.54 c'est un petit coup de 👍

                    ça fonctionne pas mal, j'y retourne imédiatement !!! 😄

                    Qu'en penses-tu ? j'ai pourtant mis mes préférences en : Centimètre (système métrique)-3D
                    et quand je rentre les chiffres à la main en précisant ou non "cm" ça marche
                    J'ai essayer de mettre "570cm" au lieu de "570" dans le fichier csv, mais bernique ❗
                    En tout cas merci beaucoup, tu es vraiment toujours là ou il faut et quand il faut.

                    1 Reply Last reply Reply Quote 0
                    • B Offline
                      BARROIS
                      last edited by

                      Chose promise...
                      Voici une première représentation du flux de pression dans une ébauche de salle informatique.
                      Reste encore un peu à creuser coté loi de propagation, mais ça me plait déjà bien.
                      Grand Merci 😎
                      Ah si je pouvais aussi mettre en couleur les traits suivant chaud ou froid,
                      là ça serait top 😍
                      Il n'y a vraiment pas un truc pour ça dans Skechtup ???


                      Simu_essai_1.pdf

                      1 Reply Last reply Reply Quote 0
                      • pilouP Offline
                        pilou
                        last edited by

                        C'est avec ces couillonnades des différentes unités qu'on fait s'écraser sur Mars des programmes à plusieurs millions de dollars! (125) 😆
                        Y a des oreilles qui ont dû siffler 💚

                        Frenchy Pilou
                        Is beautiful that please without concept!
                        My Little site :)

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

                          Utilises des calques differents en fonction de "chaud" ou "froid", mets une matière différente sur chacun des calques, et affiches test traits en couleur "matière".

                          Pour le coup de pouce, c'est une question de transformation de type: on passe d'une chaine de caractère à un chiffre en réel, qui pour SU est exprimé par défaut en pouces.
                          Donc il faut rajouter un ".cm" en fin de conversion, par exemple: "100".to_f.cm renvoie 39.3700787401575 ce qui fait bien 100 exprimé en cm.

                          DB

                          1 Reply Last reply Reply Quote 0
                          • B Offline
                            BARROIS
                            last edited by

                            incollable 😎
                            par contre je ne comprends pas le : "affiches tes traits en couleur "matière"."
                            dans la phrase :
                            Utilises des calques differents en fonction de "chaud" ou "froid", mets une matière différente sur chacun des calques,
                            et affiches tes traits en couleur "matière".

                            Et puis en fait je ne comprends rien: "mettre une matière sur un calque" me parait un barbarisme,
                            j'arrive à changer la couleur d'un calque (encore que sa couleur ne m'apporte pas grand chose.) ❓ ❓
                            Evidement cela vient de ces fameux concepts "objet", "attribut", etc, 👎
                            que je n'appréhende pas qui parle plutot Fortran IV, Cobol et autres languages de 1° génération. 😲
                            Je viens de parcourir toute la doc SU6_UserGuide_Fr.pdf.. rien pour m'éclairer.
                            Bon aller c'est week-end, je vais m' un peu.

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

                              @unknownuser said:

                              par contre je ne comprends pas le : "affiches tes traits en couleur "matière"."

                              Fenêtres -> Styles, puis:
                              aretes_couleur.jpg
                              C'est la liste déroulante en bas qui est importante

                              Donc tu pourrais créer 3 calques admettons, "chaud, "tiede" et "froid", leur affecter une couleur respectivement rouge, orange et bleue.
                              Chaque vecteur lu est mis par le script sur un calque en fonction de sa température (il faut donc avoir la donnée dans le fichier CSV), et le tour est joué.

                              Pour mettre un objet quelconque sur un calque, il faut avoir son identificateur et appliquer la méthode "layer" à cet identificateur.
                              Dans ton cas ça donnerait:

                              
                              ligne_sketchup=Sketchup.active_model.entities.add_line(p1,p2)
                              if temperature < 10
                                ligne_sketchup.layer = "froid"
                                elsif temperature < 20 and temperature >= 10
                                  ligne_sketchup.layer = "tiede"
                                else
                                  ligne_sketchup.layer = "chaud"
                              end
                              
                              
                              

                              Vite fait sur l'image ci-dessous: chaque cube est sur un calque qui lui-même à une couleur différente, l'affichage des arêtes est en mode "matière", et l'affichage des objets est en mode "couleur par calque".
                              calques_couleurs.jpg

                              DB

                              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