Nabble has removed Mailing-list integration.
Posts created here DO NOT GET SENT TO THE MAILING LIST.
Mailing-list emails DO NOT GET POSTED TO THE FORUM.
So basically the Forum is now out of date, we are looking into migrating the history.

For now you should send emails, people will see them, discuss@lists.openscad.org.

OpenSCAD Sketch engine... concept

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

OpenSCAD Sketch engine... concept

navycuda
I really enjoy openscad but I find its biggest limitation is how objects are drawn, how poorly it handles .dxfs and that the second you use a .dxf you lose parametric control of your dimensions.

I propose: A sketch engine.  I'll be the first to admit that I wouldn't know how to implement this into openscad, but I am attempting to produce a proof of concept.

I am currently writing a c# console app that uses a c# method to generate a dxf.  Here is an example of the c# code:

    public static class FirstSketch
    {
        public static void SketchPad()
        {
            Sketch s = new Sketch("OneBox");

            s.AddLine(0, 0, 0, 1, "Box");
            s.AddLine(0, 1, 1, 1, "Box");
            s.AddLine(1, 1, 1, 0, "Box");
            s.AddLine(1, 0, 0, 0, "Box");

            s.AddLine(3, 0, 3, 1, "Box2");
            s.AddLine(4, 1);
            s.AddLine(4, 0);
            s.AddLine(3, 0);

            s.AddBox(0, 3, 1, 4, "AddBox");

            s.AddPolygon(0, 0, 9, 0.5d, "Polygon");

            s.Save();
        }
    }

And the resulting dxf. (It should be named OneBox, as in the string creating the new sketch, but I manually changed the name a few times to keep working dxf from non-working)

TestOutput.dxf

I have a long way to go, but my goal is to first get a reasonably useful c# script dxf generator, then try to figure out how to implement it.  

My long term thoughts on this would be for openscad objects to be optionally generated from C# scripting, and storing each sketch as a dxf in a project folder.  I don't see any point in reading the dxf, so it would only be as good as the last time the sketch script was run.