<div dir="ltr"><div>Hi G. Wade.</div><div><br></div>No prototype or spec yet. I've been working on the design for a month, with feedback from Marius, and for the last week, I've been trying to create a bison grammar that is backward compatible with current OpenSCAD, and also free of conflicts.<div><br></div><div>Now I've reached the point where I need to collaborate with more people. Once I convert my latest design iteration to bison and resolve the conflicts, I'll write a spec and send you the link. Thanks for volunteering to read it.</div><div><br></div><div>Doug.<br><div><br></div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 16 May 2015 at 13:33, G. Wade Johnson <span dir="ltr"><<a href="mailto:gwadej@anomaly.org" target="_blank">gwadej@anomaly.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Is there a {beta,alpha,prototype} version of OpenSCAD2 somewhere for<br>
people to play with? Is there a spec to read?<br>
<br>
I, for one, would like to see anything you are willing to share on this.<br>
<br>
G. Wade<br>
<div class="HOEnZb"><div class="h5"><br>
On Sat, 16 May 2015 12:44:38 -0400<br>
doug moen <<a href="mailto:doug@moens.org">doug@moens.org</a>> wrote:<br>
<br>
> Carsten said:<br>
> Personally, I use modules in OpenSCAD extensively, but I would be even<br>
> happier with a class concept with both member functions and data<br>
> members. A 3d hierarchy can be expressed also that way.<br>
> ... Perhaps one could keep the OpenSCAD language limited and use it<br>
> as an intermediate representation generated by the kind of object<br>
> oriented language I am dreaming of :-)<br>
><br>
> The OpenSCAD2 design that I am working on will have a very simple<br>
> object model. Consider a typical OpenSCAD script: it has some named<br>
> numeric parameters at the top, then some function and module<br>
> definitions, then some top level geometry statements that render the<br>
> model based on the parameters. So that's an object. An object is a<br>
> set of top level definitions (name/value pairs), plus a list of<br>
> values (which are normally geometric shapes). OpenSCAD2 has a syntax<br>
> for referencing an external library file as an object, and a syntax<br>
> for object literals (just an OpenSCAD script, surrounded by braces).<br>
> Given an object, you can reference its named components using dot<br>
> notation (<a href="http://object.name" target="_blank">object.name</a>), or you can reference the object in a<br>
> geometric context (as an argument to a geometric transformation, or<br>
> at the top level of a script), in which case the object behaves like<br>
> its geometry.<br>
><br>
> There are a few more details, but that's the basic idea. Note that<br>
> this is much simpler than object oriented programming. There are no<br>
> mutable objects, no classes or user defined types, no support for<br>
> encapsulation or data abstraction. But, as I mentioned, objects do<br>
> have "member functions and data members", so it may go part way<br>
> towards satisfying Carsten's requirements. Objects will also satisfy<br>
> Runsun's requirement for associative arrays. I also think that<br>
> constructing a 3D model as a tree of objects will give us a better<br>
> (more declarative) way to support bill-of-materials.<br>
><br>
> We want to preserve the simple and declarative nature of OpenSCAD. I<br>
> believe that this very simple object model will address some of the<br>
> main pain points in doing geometric modelling with OpenSCAD, without<br>
> turning it into a complex OOP language.<br>
><br>
> On 14 May 2015 at 12:58, Carsten Arnholm <<a href="mailto:arnholm@arnholm.org">arnholm@arnholm.org</a>> wrote:<br>
><br>
> > Hi Marius!<br>
> ><br>
> > On 2015-05-14 16:22, Marius Kintel wrote:<br>
> ><br>
> >> OpenSCAD aim to directly describe a 3D design hierarchy, not merely<br>
> >> execute code to spit out 3D objects.<br>
> >><br>
> ><br>
> > I do understand, and any language chosen would obviously have to<br>
> > support the design hierarchy. As far as I can tell, many languages<br>
> > should be able to do it. Personally, I use modules in OpenSCAD<br>
> > extensively, but I would be even happier with a class concept with<br>
> > both member functions and data members. A 3d hierarchy can be<br>
> > expressed also that way.<br>
> ><br>
> > Anyway, this was just my thoughts. OpenSCAD has made decisions long<br>
> > ago, which I respect. Perhaps one could keep the OpenSCAD language<br>
> > limited and use it as an intermediate representation generated by<br>
> > the kind of object oriented language I am dreaming of :-)<br>
> ><br>
> >  Using a faster and more powerful CAD kernel is indeed on the radar.<br>
> >><br>
> > > Sadly, the world of Open Source CAD kernels is severely limited.<br>
> ><br>
> >> If we manage to get sufficient contributions or funding, working<br>
> >><br>
> > > towards such a kernel would be doable. If you have any spare<br>
> > > time, this would be a good place to start:<br>
> ><br>
> >><br>
> >> <a href="https://github.com/openscad/openscad/wiki/Project%3A-Survey-of-CSG-algorithms" target="_blank">https://github.com/openscad/openscad/wiki/Project%3A-Survey-of-CSG-algorithms</a><br>
> >><br>
> >> ..or if someone has the experience to do so: Evaluate OpenCascade<br>
> >> as an option. Most people I’ve talked to who’ve ever used that has<br>
> >> strongly recommended me never to touch it though. ..but FreeCAD<br>
> >> somehow manages.<br>
> >><br>
> ><br>
> > The funny thing is, I evaluated CAS.CADE (as it was known at the<br>
> > time) in about 1994-1995 for the work previously mentioned. It was<br>
> > marketed by Matra Datavision in France and I even went to see them<br>
> > a couple of times. They had what we thought was a curious idea of<br>
> > their own home-grown language (CDL) encapsulating the C++ kernel.<br>
> > Nowadays it looks like some finally agree with our thoughts at the<br>
> > time :<br>
> > <a href="http://dev.opencascade.org/doc/overview/html/occt_dev_guides__cdl.html" target="_blank">http://dev.opencascade.org/doc/overview/html/occt_dev_guides__cdl.html</a><br>
> ><br>
> > "Please note that CDL is considered as obsolete and is to be<br>
> > removed in one of future releases of OCCT."   :-)<br>
> ><br>
> > CAS.CADE was closed source and extremely expensive back then, but<br>
> > we still struggled very hard to make use of it. The end result for<br>
> > us was that it was dropped and replaced it with ACIS. Only a few<br>
> > years ago, I discovered CAS.CADE had become quasi open source as<br>
> > OpenCascade (OCCT). I also found there is now something called OCE<br>
> > - Open CASCADE Community Edition <a href="https://github.com/tpaviot/oce/" target="_blank">https://github.com/tpaviot/oce/</a><br>
> > I had the idea of trying OCE, but frankly not enough incentive and<br>
> > power to do it, and my work is different now. OCE may probably be<br>
> > something to be considered for OpenSCAD CAD kernel, I suspect<br>
> > OpenCascade has come a long way since I saw it.<br>
> ><br>
> > Sidenote: One thing that has struck me is that the compilation in<br>
> > OpenSCAD is quite fast, but the rendering (F6) is extremely slow. I<br>
> > was wondering if the generation of triangles for STL really needs<br>
> > the graphical rendering to be completed first? If not, one could<br>
> > imagine a function to export the compiled model to STL and use an<br>
> > external viewer to speed things up when iterating on a complex<br>
> > design that takes forever to render.<br>
> ><br>
> > Carsten Arnholm<br>
> ><br>
> ><br>
> ><br>
> ><br>
> > _______________________________________________<br>
> > OpenSCAD mailing list<br>
> > <a href="mailto:Discuss@lists.openscad.org">Discuss@lists.openscad.org</a><br>
> > <a href="http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org" target="_blank">http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org</a><br>
> ><br>
> ><br>
<br>
<br>
</div></div><span class="HOEnZb"><font color="#888888">--<br>
Controlling complexity is the essence of computer programming<br>
                                                  -- Brian Kernighan<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
_______________________________________________<br>
OpenSCAD mailing list<br>
<a href="mailto:Discuss@lists.openscad.org">Discuss@lists.openscad.org</a><br>
<a href="http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org" target="_blank">http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org</a><br>
</div></div></blockquote></div><br></div>