JSCAD User Group

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    About polygons winding

    Development Discussions
    2
    8
    551
    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.
    • gilboonet
      gilboonet last edited by

      Hello, as winding reversal for polygons having a negative area works in v2, I tried to do the same on the V1 scripts that I have on my website, but it isn't that easy.
      Capture d’écran de 2020-09-14 15-45-29.png Capture d’écran de 2020-09-14 15-45-51.png

      I have a polyhedron with polygons having positive and negative areas, when reverse negative areas polygons, and display the volume, it has lots of missing faces , and surprisingly if I negate all polygons, it is correctly displayed. Maybe is my measureArea function wrong ? I took if from csg.js and adapt it ( vertices.. [0] changes to vertices... .pos.x and so on). Seems that I'd better start to change my website to V2.

      z3dev 2 Replies Last reply Reply Quote 0
      • gilboonet
        gilboonet last edited by gilboonet

        I'm trying now csg on a .obj file imported (require) into V2. It works fine with an intersect, but when I try to make lots of intersect, the return statement has errors.
        Capture d’écran de 2020-09-16 10-22-07.png
        On my example, height is 104 units, I can return a slice every 3 units, but when I try to return a slice every 2 units (and my real process needs smaller slices) it bugs :

        elapse for solid generation: 39 design.js
        total time for design regeneration 7015 17 design.js
        Uncaught (in promise) TypeError: a is undefined (2 times)

        1 Reply Last reply Reply Quote 0
        • gilboonet
          gilboonet @z3dev last edited by

          @z3dev Indeed, for those examples I didn't use serializer but import data from obj files exported to .jscad format by Wings 3d. When imported on V2 using require (I suppose that's the way to use serializer), it's visually correct. I will try to do some csg to see if it ok. Anyway, here are the files.
          https://github.com/gilboonet/gilboonet.github.io/blob/master/demos/objs.zip

          1 Reply Last reply Reply Quote 0
          • z3dev
            z3dev @gilboonet last edited by

            @gilboonet thanks for investigating further.

            There may be some issues with the OBJ deserializer. Can you attach the OBJ files?
            I'd like to make sure this functionality is working well at least.

            gilboonet 1 Reply Last reply Reply Quote 0
            • gilboonet
              gilboonet @z3dev last edited by

              @z3dev The same data applied to V2 gives the same results, the visually correct polyhedra are those having faces order reversed.
              Capture d’écran de 2020-09-15 15-56-27.png

              1 Reply Last reply Reply Quote 0
              • gilboonet
                gilboonet @z3dev last edited by

                @z3dev I'm making some tests, apparently, with V1 specifying orientation doesn't correct the issue. With two differents obj files, I tried 4 kinds of polyhedron :

                • orientation 'inward', faces order unchanged
                • orientation 'outward', faces order unchanged
                • orientation 'inward', faces order reversed
                • orientation 'outward', faces order reversed

                and the only ones that work (visually) are those with faces order reversed. I will try to do some CSG on them to see it deeper. And I will do the same with v2 asap, one thing I can say about v2 is that it measureArea returns 0 for 3d polygons, and work than I make them 2d.
                Capture d’écran de 2020-09-15 11-25-32.png Capture d’écran de 2020-09-15 11-55-50.png

                z3dev 1 Reply Last reply Reply Quote 0
                • z3dev
                  z3dev @gilboonet last edited by

                  @gilboonet there's a slight difference in the polyhedron() function of V1 versus V2.

                  in V1, the global polyhedron() function expects polygons which have the normals facing 'inward', which is the OpenSCAD convention.

                  in V2, the polyhedron() function can accept either 'outward' or 'inward' facing polygons. By default the polygons are expected to face 'outward'.

                  const shape = polyhedron({orientation: 'outward', points: vertices, ...})
                  

                  Is this the issue?

                  gilboonet 1 Reply Last reply Reply Quote 0
                  • z3dev
                    z3dev @gilboonet last edited by

                    @gilboonet interesting.

                    are the set of points and triangles always the same? V1 version versus V2 version?

                    gilboonet 1 Reply Last reply Reply Quote 0
                    • First post
                      Last post
                    Powered by NodeBB | Contributors