• Login
sketchucation logo sketchucation
  • Login
🤑 30% Off | Artisan 2 on sale until April 30th Buy Now

Problème de pente

Scheduled Pinned Locked Moved Français
20 Posts 6 Posters 883 Views
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
    Boris VAISMAN
    last edited by 24 Jan 2012, 16:39

    Bonjour à tous,

    Je suis en train de dessiner un composant dynamique de toiture et j'ai un petit souci avec les rotations. J'ai mis le projet en PJ afin que vous compreniez mieux. Je dois positionner le chevron en rouge entre l'angle avant gauche et le sommet de ma toiture sachant que j'ai deux pentes dont je connais les valeurs (pente 1 et pente 2 qui figurent sur le projet). Je cherche donc les valeurs RotX, RotY et RotZ du composant rouge.

    Qui peut m'aider ?

    Merci d'avance,

    Boris


    Travail victorienne bois.skp

    1 Reply Last reply Reply Quote 0
    • B Offline
      Boris VAISMAN
      last edited by 25 Jan 2012, 08:26

      Merci de te pencher sur mon souci.

      J'avoue ne pas bien comprendre concrètement comment je peux faire ce que tu me dis. Notamment, je ne comprends pas comment je peux dessiner d'un côté l'interface et de l'autre faire les calculs alors que mes dimensions d'interface dépendent bien évidemment des calculs effectués. Comme tu le vois, je suis un bleu dans le domaine.

      Peux-tu me donner un exemple simple de composant qui répondrait aux exigence que tu préconises ?

      Je te remercie par avance,

      Boris

      1 Reply Last reply Reply Quote 0
      • M Offline
        mszlosser
        last edited by 25 Jan 2012, 10:09

        L'interface c'est tout ce qui est exposé : les attributs et les comportements du composant parent, c'est la partie publique du composant dynamique.
        Sketchup construit l'interface chaque fois que tu ajoutes un attribut ou un comportement dans le composant parent.

        L'implémentation c'est tout ce qui est non exposé : les attributs et les comportements des composants enfants, c'est la partie protégée ou privée du composant dynamique.
        Sketchup construit l'implémentation chaque fois que tu ajoutes un attribut ou un comportement dans un composant enfant.

        C'est la façon de concevoir un composant dynamique [du haut (parent) vers le bas (enfant)] que tu dois modifier dans ton exemple.

        Ce raisonnement s'applique quelque soit le niveau d'arborescence de tes composants.
        Si tu déroules la structure de ton composant dynamique parent, tu vois apparaître dans l'outil "Option du composant" tes différentes interfaces.
        Tu as crée une agrégation de différents éléments de charpente dont la logique m'échappe un peu.
        En fait, tu devrais avoir (au premier niveau de l'arborescence) : 3 portiques dans une direction puis les pannes (2 sablières et 1 faîtière) dans la direction perpendiculaire puis les 2 arêtiers dans une direction oblique.
        Le portique étant composé de composants qui apparaissent au deuxième niveau : 2 poteaux, 1 entrait et 2 arbalétriers par exemple.
        Et ainsi de suite ... Sketchup pourrait te permettre de réaliser une maison toute entière (composants terrain viabilisé + composants gros-oeuvre + composants second-oeuvre) à condition de créer des interfaces cohérentes à chaque niveau d'arborescence de la structure.

        J'ai prévu de documenter cela à la rubrique "Atelier Sketchup 8" du site internet que je vais ouvrir en juin 2012.
        En fait, Sketchup c'est aussi un outil de CAO orienté objet. 😉

        1 Reply Last reply Reply Quote 0
        • B Offline
          Boris VAISMAN
          last edited by 25 Jan 2012, 16:13

          Tu as surement raison, il va falloir que je recommence.
          Ceci étant dit, dans le cas précis, je ne sais toujours pas comment orienter mon arêtier rouge.

          Avez-vous une idée ?

          1 Reply Last reply Reply Quote 0
          • E Offline
            elmer
            last edited by 25 Jan 2012, 17:16

            Bonjour,
            Tu dois certainement avoir une raison particulière pour travailler en composant dynamique, chose que je ne maîtrise pas mais en ce qui concerne le positionnement de l'arêtier, voici ce que j'obtiens en pj.


            Travail victorienne bois-mod.skp

            1 Reply Last reply Reply Quote 0
            • M Offline
              mszlosser
              last edited by 26 Jan 2012, 04:05

              Ta façon de construire ton composant l'a rendu complexe.
              Il te faut séparer l'interface du composant (tous les attributs accessibles à l'utilisateur) de son implémentation (la partie non accessible qui contient les calculs).
              En conception orientée objet (voir boite noire), on parle de la partie visible (interface) et de la partie cachée (implémentation).

              Pour cela Sketchup crée :

              • l'interface sous la forme d'un composant parent (pas de formules dans cette partie mais les attributs saisis par l'utilisateur),
              • l'implémentation sous la forme de composants enfants qui comprennent les différentes pièces de bois (poteaux, poutres, arbas, ...) avec toutes les formules.

              En procédant comme cela (du haut vers le bas), tu éviteras entre autres les références circulaires.

              Enfin, si tu veux que ton composant soit encore compréhensible et bien documenté, tu peux en faire une représentation (semi-formelle) avec UML2 par exemple.

              PS : ne pas perdre de vue que Sketchup est une application entièrement pensée "objet" et que dans Ruby tout est objet.

              1 Reply Last reply Reply Quote 0
              • B Offline
                Boris VAISMAN
                last edited by 26 Jan 2012, 08:36

                Merci Elmer pour ta réponse...

                Je pense que je ne vais pas négliger cette possibilité qui m'évite des calculs de changement d'axe de rotation, même si du coup, je ne peux plus changer la section de l'aretier.

                1 Reply Last reply Reply Quote 0
                • A Offline
                  adebeo
                  last edited by 26 Jan 2012, 23:30

                  j'ai regardé vite fait:

                  tu peux garder ton composant dynamique tel quel. Ton problème est mathématique (regarde pythagore et thales susr wikipedia)

                  ma reponse en francais a mettre en code est

                  rotx = arctan(longueur projeté en vue de dessus coté 1+longueur projeté en vue de dessus coté 2)

                  LP ( nouvelle attribut qui corresponds à la longueur projeté en vue de dessus de l'arretier) = racine(longueur projeté en vue de dessus coté 2^1+longueur projeté en vue de dessus coté 1^2)
                  roty = arctan(longueur projeté en vue de dessus coté 1+LP)

                  a mon avis ta longueur d'arretier sera aussi a calculé

                  bref je suis sur c'est faisable.
                  par contre tu n'aura jamais avec les composants dynamique ton calcul de section et de coupe
                  bon courgae

                  adebeo
                  Nos Formations sketchup
                  Notre blog : www .adebeo.com/wp/
                  Nos tutoriels: www .youtube.com/adebeo

                  1 Reply Last reply Reply Quote 0
                  • B Offline
                    Boris VAISMAN
                    last edited by 27 Jan 2012, 10:56

                    Je vais essayer ça

                    En fait, je n'arrive pas à bien saisir si la rotation se fait par rapport aux axes du projet ou aux axes des composants. Je pense que c'est par rapport aux axes du projet.

                    En fait, on devrait pouvoir faire les deux selon les besoins et donc avoir six axes de rotation possibles (peut-être une suggestion à faire aux développeurs de Google)

                    1 Reply Last reply Reply Quote 0
                    • D Offline
                      DareDevil
                      last edited by 27 Jan 2012, 14:38

                      @boris vaisman said:

                      En fait, je n'arrive pas à bien saisir si la rotation se fait par rapport aux axes du projet ou aux axes des composants. Je pense que c'est par rapport aux axes du projet.
                      En fait, on devrait pouvoir faire les deux selon les besoins et donc avoir six axes de rotation possibles (peut-être une suggestion à faire aux développeurs de Google)

                      Chaque élément tourne autour de son propre axe.
                      Si on avait à définir d'autres axes, on ne s'arrêterai plus si on a des composants dans des composants dans des composants... Sans compter que si l'axe de rotation n'est pas interne à l'objet, si on doit déplacer et tourner l'objet (autour d'un autre axe) il faudrait dire si on tourne puis on bouge ou si on bouge puis on tourne, ça ne fait pas la même chose 😉
                      Dans ton cas, avec l'axe de l'arêtier au bout, les pistes d'adebeo vers la trigonométrie et Pythagore devraient te permettre de calculer les angles de rotation et la longueur de l'élément.

                      1 Reply Last reply Reply Quote 0
                      • B Offline
                        Boris VAISMAN
                        last edited by 27 Jan 2012, 15:39

                        Ah, ben voila une réponse qui m'intéresse mais me met également dans l'embarras...

                        Donc, si je comprends bien, tu me dis que dans les composants dynamiques, ROTX, ROTY et ROTZ correspondent aux rotations par rapport aux axes des composants ?

                        Moi, je croyais naïvement que c'était les rotations par rapport aux axes du projet.

                        Quelqu'un peut confirmer ou infirmer, s'il vous plait ?

                        Désolé de vous embêter avec des questions triviales mais je suis un bleu dans le domaine...

                        1 Reply Last reply Reply Quote 0
                        • D Offline
                          DareDevil
                          last edited by 27 Jan 2012, 16:00

                          @boris vaisman said:

                          Donc, si je comprends bien, tu me dis que dans les composants dynamiques, ROTX, ROTY et ROTZ correspondent aux rotations par rapport aux axes des composants ?
                          Moi, je croyais naïvement que c'était les rotations par rapport aux axes du projet.
                          Quelqu'un peut confirmer ou infirmer, s'il vous plait ?

                          Petit test simple :
                          Test.skp Peu importe où tu place le composant, quand tu modifies les angles de rotation, il tourne autour de la pointe de la flèche.

                          Regarde aussi les trois fichiers que j'ai posté ici , tu verra que chaque fois que la rotation est utilisée, c'est autour de l'axe propre du composant.

                          1 Reply Last reply Reply Quote 0
                          • TIGT Offline
                            TIG Moderator
                            last edited by 27 Jan 2012, 16:09

                            A DC ROTates relative to its axes.
                            It's easy to test: make a DC that rotates about its Z-axis, with onClick.
                            Lay it on its side and it still rotates about its Z-axis, never that of the model.
                            Un DC tourne par rapport à ses axes.
                            C'est facile à tester: faites un DC qui tourne autour de son axe Z, avec onClick.
                            Déposez-le sur le côté et il tourne encore sur son axe Z, jamais celle du modèle.

                            TIG

                            1 Reply Last reply Reply Quote 0
                            • B Offline
                              Boris VAISMAN
                              last edited by 27 Jan 2012, 16:22

                              Alors, vous avez surement remarqué que dans les exemples que vous m'avez fournis ainsi que dans le mien posté ici, on ne peut pas tourner à la fois autour de deux axes simultanément (quand on change une valeur sur un axe, il remet les deux autres à 0) , la seule solution que j'ai trouvée pour contrer ça est de créer trois variables et de dire que ROTX=VARX, ROTY=VARY et ROTZ=VARZ.

                              Dans mon exemple ici, comment expliquez vous que suite à mes deux rotations autour de Y et Z, le chevron ait aussi fait une rotation autour de son propre axe X ?

                              C'est ce qui me fait dire que c'est par rapport aux axes du projet et non par rapport à ses propres axes.

                              Je suis dubitatif (et ce n'est pas un gros mot...) 😆


                              test rotations.skp

                              1 Reply Last reply Reply Quote 0
                              • D Offline
                                DareDevil
                                last edited by 27 Jan 2012, 17:12

                                @boris vaisman said:

                                Alors, vous avez surement remarqué que dans les exemples que vous m'avez fournis ainsi que dans le mien posté ici, on ne peut pas tourner à la fois autour de deux axes simultanément (quand on change une valeur sur un axe, il remet les deux autres à 0)
                                Oui, ça c'est "normal", du moins connu... On ne peut pas attaquer directement une rotation sans qu'elle se remette à 0. Si on veut le faire dans la fenêtre des "Attributs du composant" il faut mettre un "=" avant pour conserver la valeur.

                                @unknownuser said:

                                Dans mon exemple ici, comment expliquez vous que suite à mes deux rotations autour de Y et Z, le chevron ait aussi fait une rotation autour de son propre axe X ?
                                C'est ce qui me fait dire que c'est par rapport aux axes du projet et non par rapport à ses propres axes.
                                Ce sont les joies de la rotation sur trois axes. Si tu fait une rotation de 180° sur les Y et de 180° sur les Z, c'est comme faire une rotation de 180° sur les X ! Étonnant, non ! 😉
                                C'est donc normal que quand on tourne sur deux axes on trouve une composante qui pourrait être effectuée sur le troisième axe.
                                Pour ton cas, pour ton arêtier, tu ne travailleras essentiellement qu'avec deux angles (azimut et relèvement) parce que la pièce reste sur son champ, elle ne déverse pas.

                                1 Reply Last reply Reply Quote 0
                                • B Offline
                                  Boris VAISMAN
                                  last edited by 27 Jan 2012, 17:48

                                  Bon, ok pour le signe égal je saurais pour la prochaine fois. Merci beaucoup...

                                  Par contre, si les trois axes sont indépendants et sont bien les axes du composant, pourquoi une rotation sur deux des trois axes me donne aussi une rotation sur le troisième ???
                                  (dans l'exemple précis que tu donnes, ROTY=180 et ROTZ=180 équivaut bien à ROTX=180, ce sont deux façons différentes de positionner au même endroit le composant mais ça ne signifie pas que tourner autour de deux axes fait aussi tourner autour du troisième)

                                  Excusez moi encore d'essayer de bien comprendre mais je suis vraiment largué, là

                                  1 Reply Last reply Reply Quote 0
                                  • D Offline
                                    DareDevil
                                    last edited by 27 Jan 2012, 20:34

                                    En fait, quand on travaille sur trois axes, quand on fait des rotations, l'ordre a une importance. Dans les composants dynamiques, Sketchup a choisi de les faire dans l'ordre autour des axes X, Y puis Z. Dans ton exemple, la logique est respectée et le résultat est bien une rotation sur l'axe Y (l'élément se lève) puis sur l'axe Z (il bascule sur le coté). Je pense d'ailleurs que ça doit âtre pour ça que si on attaque directement les angles de rotation par une valeur, il remet les autres à 0.
                                    Pour revenir à ton cas, on est bien dans une logique azimut et élévation, mais l'ordre pose en effet un problème...
                                    J'explore ça, et je reviens...

                                    1 Reply Last reply Reply Quote 0
                                    • D Offline
                                      DareDevil
                                      last edited by 27 Jan 2012, 21:38

                                      Si l'axe X était l'axe vertical, tout marcherait bien... mais c'est pas comme ça 😉
                                      Donc, une solution possible, c'est de mettre ce composant dans un autre qui permet de tourner le monde localement pour avoir les X verticaux. Du coup, on manipule le sous-composant avec les rotations autour des axes X et Y, X pour régler l'azimut et Y pour l'élévation. Pour la longueur ça se règle avec le LenZ. Il ne reste plus qu'à calculer ces valeurs à partir des données que tu as.


                                      test-rotations_DD.skp

                                      1 Reply Last reply Reply Quote 0
                                      • B Offline
                                        Boris VAISMAN
                                        last edited by 27 Jan 2012, 23:24

                                        Effectivement, ta solution est valide, je n'aurais franchement pas trouvé...

                                        Par contre, je crois sincèrement que Sketchup est buggé sur les composants dynamiques. Cela fait un petit mois que je suis dessus et j'ai déjà trouvé je ne sais combien de parades pour arriver à mes fins.

                                        Dans le cas qui nous intéresse et dans l'hypothèse où on fait les rotations dans l'ordre X, Y et Z, si je fais une rotation sur Y et une autre sur Z, je persiste à penser qu'il ne devrait pas y avoir de rotation sur X. Donc on peut en conclure qu'il faut s'arranger pour faire des rotations simultanées uniquement sur X et Y...

                                        Franchement c'est lourd... 👊

                                        1 Reply Last reply Reply Quote 0
                                        • B Offline
                                          Boris VAISMAN
                                          last edited by 27 Jan 2012, 23:38

                                          En reprenant ta méthode et en l'adaptant un peu, j'ai réussi à faire enfin ce que je voulais...

                                          D'abord, mon composant chevron

                                          Je fais un trait dessus, je crée un autre composant avec le trait et le composant chevron -> Composant 2 (le trait sert uniquement à faire en sorte que le chevron devienne un sous composant)

                                          Je masque le trait .

                                          Je fais d'abord ma rotation sur Y dans le sous composant puis ma rotation sur Z dans le composant... Et miracle !!! (en PJ) 😍


                                          test rotations.skp

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

                                          Advertisement