JSCAD User Group

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

    Volume unflattening with jscad

    General Discussions
    2
    7
    510
    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, recently I tried lots of code cad tools, and even if some of them (Cascade Studio and Cad Query) are impressive, jscad is still the most advanced one. I'm hoping to make a automatic version that directly outputs to svg and I'm wondering if there's any possibility to have my output with groups or ids that I can control, so that I can easily style them as I need with code or a svg editor.
      Here is my current output...Capture d’écran de 2021-04-05 15-30-36.png.

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

        @z3dev 'class' element for sure is interesting as it will ease styling. About 'id', yes it must be used carefully to ensure that each object has its unique id, generally I use names forged from data (line between triangle 23 and 111 has id 'L_23_111', etc.). 'name' is deprecated so it's maybe wise to avoid it, on very old js code I remember i used 'tag', as svg doesn't use it, as svg can use custom attributes, it can be anything. And it would be really great to have exported svg from jscad with such fine details, because it will allow rework those outputs with great ease. I tried to use localStorage from a jscad script and it doesn't work, so my only other possibility would be to output to console.

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

          @gilboonet here’s a suggestion...

          How about using the ‘class’ element?

          https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/class

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

            @gilboonet thanks for the information.

            I’m not sure if ‘id’ is a good choice as by definition ‘id’ must be unique across the whole SVG document. This seems to be special for linking, etc.

            https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs

            Any other suggestions?

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

              @z3dev "id" or "name" would be enough. Here for the numbers, I use lots of times the sames polygons, and on an old v1 version where I created the svg on a string, instead of duplicating those polygons, i used 1 "def" for each of them then "use", I'm not sure it it is possible here.

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

                @gilboonet once again. Very cool! 😎

                There was a request to add ‘names’ when exporting to external formats. So far, only DXF exports support the ‘name’ attribute on geometries.

                https://github.com/jscad/OpenJSCAD.org/issues/558

                This is definitely possibly for SVG paths as well. Do you know which SVG attribute to set?

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

                  With jscad it takes less than 2 sec. to unflatten the demo volume I'm using, a hand made of 282 triangles. My process is simple. I build a net from the 3d model data, then I choose a first triangle to unfold and unfold its neighbors and so on while there's nothing left to do. I tried to do the same with OpenSCAD and surprisingly I was not able to code it as it cannot do conditional actions depending on feedback from a boolean operation (I need to check if a new face can be unfold without overlapping with already unfold ones, and it takes CSG intersection. With Cascade Studio, the intersection works, but it gets out of memory before the end, and anyway for the moment there's is still no 2d output.

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