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

    Redéfinir l'orientation des vues standards (iso, de face, ..

    Scheduled Pinned Locked Moved Français
    11 Posts 4 Posters 6.1k 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.
    • M Offline
      Matt666
      last edited by

      Salut et bienvenue !
      Si j'ai compris, ton pan de charpente n'est parallèle à aucun des axes existants, c'est ça ?

      Dans ce cas je ne vois pas comment faire... A part tourner ta charpente pour la rendre parallèle à l'un des axes... Si qqn a une méthode...

      Frenglish at its best !
      My scripts

      1 Reply Last reply Reply Quote 0
      • vickV Offline
        vick
        last edited by

        J'ai jamais fait,mais peut être avec une coupe ......... ❓

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

          Clic-droit sur un des axes, puis "Aligner la vue". Sauf que c'est juste valable pour la vue en plan. Pour les autres, j'ai pas de soluce. On ne peut même pas faire un script Ruby pour combler le manque, vu qu'il n'y a aucun moyen de récupérer les paramètres des axes. L'API a bien des lacunes...

          DB

          1 Reply Last reply Reply Quote 0
          • J Offline
            jeanluc_16
            last edited by

            Bonjour,

            C'est bien ce que je craignais, hormis une mise en position du modèle par rotation, il n'y a pas de solution simple.

            merci en tout cas pour vos réponses.

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

              Salut !
              @ Didier :
              Juste une idée comme ça : est-il possible de créer un ruby qui affiche la vue de face de la face d'une entité sélectionnée ?
              Procédure :
              1- Sélectionner une face
              2- On récupère l'inclinaison de la face
              3- On tourne la vue en cours pour afficher la face sélectionnée
              4- Zoom.

              Ensuite je ne sais pas s'il est possible 'imprimer à l'échelle avec cette méthode. Je bosse (Je tente, un peu... ça risque de prendre du temps !) sur un affichage de la vue actuelle à l'échelle désirée (la cause de ce post). Comme ça, on pourrait imprimer à l'échelle sans avoir à passer par la boite dialogue d'impression...

              Frenglish at its best !
              My scripts

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

                Bonjour,

                @unknownuser said:

                est-il possible de créer un ruby qui affiche la vue de face de la face d'une entité sélectionnée ?

                Oui: tu récupères la normale de la face (face.normal) et tu affectes camera.direction avec ce vecteur, ou tu mets le camera.eye au bout du vecteur normal et la camera.target à l'extrêmité de normal.reverse.
                Pour se mettre à une distance correcte (face.normal est normé à 1), il faudra sans doute faire face.normal.length=distance (distance étant la distance de la caméra à la face).
                C'est là qu'on voit que pour gérer l'échelle, c'est une autre paire de manches...

                DB

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

                  Salut Didier ! Merci pour ces conseils !!

                  @unknownuser said:

                  C'est là qu'on voit que pour gérer l'échelle, c'est une autre paire de manches...

                  Clairement...

                  @unknownuser said:

                  Pour se mettre à une distance correcte (face.normal est normé à 1), il faudra sans doute faire face.normal.length=distance (distance étant la distance de la caméra à la face).

                  Oui, ou alors faire juste un zoom étendu. Après c'est l'utilisateur qui zoom s'il veut..

                  Frenglish at its best !
                  My scripts

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

                    Re,
                    Désolé didier, mais je n'arrive pas à reproduire ce que tu dis...

                    @unknownuser said:

                    tu récupères la normale de la face (face.normal) et tu affectes camera.direction avec ce vecteur

                    Je ne peux pas modifier camera.direction... Brmbl 😡

                    EDIT : Bon en fait j'ai trouvé un moyen, mais ça m'a pas l'air dément... Surtout le camera.up....

                    Qu'en penses-tu Didier (ou Fredo6, si tu es dans le coin 😉 )??

                    def f2f
                    	model = Sketchup.active_model
                    	ent = model.selection[0]
                    	camera = model.active_view.camera
                    	camera.set(ent.normal.to_a,ent.normal.reverse.to_a,Geom;;Vector3d.new(1, 0, 0))
                    	Sketchup.send_action("viewZoomToSelection;")
                    end
                    

                    Frenglish at its best !
                    My scripts

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

                      Non, non ça va pas le faire:

                      camera = camera.set eye, target, up

                      eye et traget doivent être des point3d (même avec to_a, tu récupère un tableau normé entre 0 et 1, donc ton point va être faux), et up un vecteur (et up, c'est vers Z en principe, donc Geom::Vector3d.new(0, 0, 1) (à moins que tu veuilles avoir la tête en bas 😄 )

                      
                      def f2f
                         model = Sketchup.active_model
                         ent = model.selection[0]
                         normal=ent.normal
                         #calcul du centroide de la face;
                         centre = ent.centroid
                         camera = model.active_view.camera
                         camera.set(centre.offset(normal),centre,Geom;;Vector3d.new(0, 0, 1))
                         Sketchup.send_action("viewZoomToSelection;")
                      end
                      

                      Bon là tu vas me dire: comment je calcule le centre de gravité de la face ❓
                      Comme ça:
                      Tu ajoutes une méthode à la classe "Face":

                      
                      class Sketchup;;Face
                       def centroid
                        xs = ys = zs = 0.0
                        n = self.outer_loop.vertices.length #nombre de points du contour extérieur
                        self.outer_loop.vertices.each do |v| #pour tous les points du contour
                          xs += v.position.x #ajouter son X à la somme des x
                          ys += v.position.y
                          zs += v.position.z
                        end
                       return Geom;;Point3d.new(xs/n,ys/n,zs/n) #point3d des moyennes des coordonnées
                       end
                      end
                      

                      Ensuite si tu fais ent.centroid et que ent est une face, tu récupères son centroide, comme dans le code plus haut. Bon, j'ai pas testé mais ça devrait marcher.

                      DB

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

                        😲 😮 Houlà !!!
                        Impressionnant ! Ce pti truc, notamment

                        centre.offset(normal)
                        

                        Et aussi le code pour trouver le centroide !!

                        D'ailleurs, ta fonction doit prendre en compte les courbes, nan ? puisqu'il prend tous les sommets rencontrés ! Génial...

                        Merci à toi pour tout ça, ça fonctionne très bien !!

                        PS : Bon ça veut bien dire que j'ai du pain de deux livres (au moins... Ptet même une boulangerie) sur la planche.... Ya plein de trucs très très TREEES nébuleux encore.... En même temps, comme dirait un gars sur un autre forum
                        @unknownuser said:

                        Si vous êtes persuadés de tout savoir sur un sujet, c'est que vous en ignorez quelque chose...

                        😄

                        Frenglish at its best !
                        My scripts

                        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