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

    [Code] Skew Transformation from axes

    Scheduled Pinned Locked Moved Developers' Forum
    21 Posts 8 Posters 3.7k Views 8 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.
    • Dan RathbunD Offline
      Dan Rathbun
      last edited by

      @fredo6 said:

      "assuming they are normalized"

      Does normalizing first remove any variance that could throw off the comparison (with -1, 0 or 1) afterward ?

      Or would it be safer to use:
      vec1.perpendicular?(vec2)
      vec1.parallel?(vec2) && vec1.samedirection?(vec2)
      vec1.parallel?(vec2) && ! vec1.samedirection?(vec2)

      I also wonder about ThomThom's magic comparison.

      Is it the same on 64-bit SketchUp ?

      I mean why 10 decimal places ? Is it SketchUp's internal tolerance ?

      Ie, (0.001 x 0.001 x 0.001) ... which is 9 decimal places.

      I'm not here much anymore.

      1 Reply Last reply Reply Quote 0
      • sdmitchS Offline
        sdmitch
        last edited by

        If you have a component instance that has been skewed, how do you determine which axis is skewed?

        Nothing is worthless, it can always be used as a bad example.

        http://sdmitch.blogspot.com/

        1 Reply Last reply Reply Quote 0
        • thomthomT Offline
          thomthom
          last edited by

          @fredo6 said:

          ...and there is the magic formula by thomthom to check if two faces are coplanar (actually have parallel planes)

          face1.normal % face2.normal > 0.9999999991

          Fredo

          hm... this must be something from and old version of CleanUp? It was never reliable. What I do now is take all the vertices of the faces and generate a best-fit plane - then I check if each of the vertices is on the plane.

          Thomas Thomassen — SketchUp Monkey & Coding addict
          List of my plugins and link to the CookieWare fund

          1 Reply Last reply Reply Quote 0
          • fredo6F Offline
            fredo6
            last edited by

            Well, I think I found it it an old post!. And it seems to work fine for the purpose.

            Indeed there are alternate methods, the problem being to detect the false positive, that is faces that would be co-planar by the formula, but would not in the model drawn by Sketchup.

            Fredo

            1 Reply Last reply Reply Quote 0
            • Dan RathbunD Offline
              Dan Rathbun
              last edited by

              @thomthom said:

              @fredo6 said:

              ...and there is the magic formula by thomthom to check if two faces are coplanar (actually have parallel planes)
              face1.normal % face2.normal > 0.9999999991

              hm... It was never reliable.

              I was hoping you'd answer the questions I posed (above) in this post:
              http://sketchucation.com/forums/viewtopic.php?f=180%26amp;t=65068%26amp;view=unread#p597160

              I'm not here much anymore.

              1 Reply Last reply Reply Quote 0
              • fredo6F Offline
                fredo6
                last edited by

                Face.normal returns a normalized vector.

                1 Reply Last reply Reply Quote 0
                • thomthomT Offline
                  thomthom
                  last edited by

                  @fredo6 said:

                  Well, I think I found it it an old post!. And it seems to work fine for the purpose.

                  Indeed there are alternate methods, the problem being to detect the false positive, that is faces that would be co-planar by the formula, but would not in the model drawn by Sketchup.

                  Fredo

                  Checking the plane might in some cases yield false for some cases where SU is able to merge. But this is rare. Comparing normal had the opposite of yielding true in cases where SU would not be able to merge.

                  Thomas Thomassen — SketchUp Monkey & Coding addict
                  List of my plugins and link to the CookieWare fund

                  1 Reply Last reply Reply Quote 0
                  • thomthomT Offline
                    thomthom
                    last edited by

                    @dan rathbun said:

                    @thomthom said:

                    @fredo6 said:

                    ...and there is the magic formula by thomthom to check if two faces are coplanar (actually have parallel planes)
                    face1.normal % face2.normal > 0.9999999991

                    hm... It was never reliable.

                    I was hoping you'd answer the questions I posed (above) in this post:
                    http://sketchucation.com/forums/viewtopic.php?f=180%26amp;t=65068%26amp;view=unread#p597160

                    As Fredo mentions, face.normal already return a unit vector. The issue is that comparing vectors is too unreliable in edge cases.

                    Thomas Thomassen — SketchUp Monkey & Coding addict
                    List of my plugins and link to the CookieWare fund

                    1 Reply Last reply Reply Quote 0
                    • Dan RathbunD Offline
                      Dan Rathbun
                      last edited by

                      So what is the solution here?

                      Is it some extra text in the API docs explaining how best to test for face coplanarity ?

                      Or would it be a new API method for the Sketchup::Face class:
                      face.coplanar_with?(other_face)
                      or a module method?:
                      Geom::faces_coplanar?(face1,face2)

                      I'm not here much anymore.

                      1 Reply Last reply Reply Quote 0
                      • thomthomT Offline
                        thomthom
                        last edited by

                        No sure where it would fit in the docs. Maybe we can add a Wiki section on the GitHub repo that host the new docs.

                        This scenario is so common though that a face.coplanar_with?(other_face) might be a nice addition.

                        Thomas Thomassen — SketchUp Monkey & Coding addict
                        List of my plugins and link to the CookieWare fund

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

                        Advertisement