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