Live data from Hacker News

OpenSCAD: The Programmer's Solid 3D CAD Modeller

openscad.org

101–110 of 191 posts

Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller

#101
I don't say it's impossible but I believe it's quite near to impossible for most of OpenSCAD users to model this relatively simple drawing[1]. It's a breeze in CAD with constraint solver. Also it's viable in code-first systems with access to shape coordinates (build123d) using only construction geometry and projections. OpenSCAD requires hard trigonometry and math skills to pull it out.

OpenSCAD has amazing community though and part libraries celebrates human ingenuity despite tool restrictions.

[1]: https://build123d.readthedocs.io/en/latest/_images/ttt-23-t-...

Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller

#102
post #29

Earlier quoted context omitted.

I poked around with CadQuery and Build123D. The learning curve required a paradigm shifted in abstraction. That was too much. I just want OpenSCAD simplicity, but with modern programming language syntax. I ended up settling with PythonScad. I was able to hit the ground running and leverage what I already know about python within a day. It's new, but the author is extremely active and collaborative on github ( https:/…

> The learning curve required a paradigm shifted in abstraction. This is true! And I think that brute-force simplicity of OpenSCAD is the appeal. I am still ultimately a CAD greenhorn but it got me started, and I don't blame you. But I guess the point I am getting to is, that paradigm shift is where you really want to be. It's certainly where I think most competent programmers who want to really build in 3D should wa…

As someone who's dabbled a little bit with OpenSCAD, SolidWorks, etc:

> Because it unlocks the ability to reason about the shapes you're creating, within the code that creates them. You can for example place a feature in the centre of a face of an object you just created, without having to recalculate the location of the centre of the face or the normal etc.

I can definitely see the appeal of this; would it be possible to refit such capability back into OpenSCAD's model (even if it meant breaking some backwards compatibility)? Like, you're not just executing imperative "drawing" operations, but the models you've created become available as first-class objects to be further referenced & poked at?

Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller

#103

If you want to do code-CAD for anything substantial and you haven't yet developed a significant dependency on OpenSCAD, do your brain a favour and spend at least some time with CadQuery, Build123D or (if you prefer JS to Python) Replicad. As impressive as NopSCADlib and BOSL2 are (and OMG they are, when you consider what they have to work with!) , OpenSCAD is a one-way, declarative CSG environment that essentially on…

> OpenSCAD is a one-way, declarative CSG environment that essentially only outputs mesh formats This is why such a basic-seeming thing as “how do i get the bounding box for this CSG frankenobject I’ve created?” comes up again and again on stackoverflow etc. it’s apparently not possible without some hacks. I’ll take a look at the alternatives you mentioned, thanks.

I’d recommend taking a look at SolidWorks. For hobbyist use, it’s $50 / year or $15 for a month. You will save yourself so much time and headaches and develop a skill that could be useful for your resume.

Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller

#104
post #29

If you want to do code-CAD for anything substantial and you haven't yet developed a significant dependency on OpenSCAD, do your brain a favour and spend at least some time with CadQuery, Build123D or (if you prefer JS to Python) Replicad. As impressive as NopSCADlib and BOSL2 are (and OMG they are, when you consider what they have to work with!) , OpenSCAD is a one-way, declarative CSG environment that essentially on…

I poked around with CadQuery and Build123D. The learning curve required a paradigm shifted in abstraction. That was too much. I just want OpenSCAD simplicity, but with modern programming language syntax. I ended up settling with PythonScad. I was able to hit the ground running and leverage what I already know about python within a day. It's new, but the author is extremely active and collaborative on github ( https:/…

There's also ImplicitCAD, which can use an OpenSCAD like language or Haskell https://github.com/Haskell-Things/ImplicitCAD

Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller

#105

Earlier quoted context omitted.

> OpenSCAD is a one-way, declarative CSG environment that essentially only outputs mesh formats This is why such a basic-seeming thing as “how do i get the bounding box for this CSG frankenobject I’ve created?” comes up again and again on stackoverflow etc. it’s apparently not possible without some hacks. I’ll take a look at the alternatives you mentioned, thanks.

I’d recommend taking a look at SolidWorks. For hobbyist use, it’s $50 / year or $15 for a month. You will save yourself so much time and headaches and develop a skill that could be useful for your resume.

If you're a U.S. (or Canadian) Veteran it's $20/year.

BUT

for these reduced price options, it's the educational version, and the files are watermarked, and the license precludes commercial use.

That said, if your goal is to learn a CAD program and get a job --- in an industry/region which uses Solidworks_ (for some reason, CAD usage seems to be specific to either certain industries or regions, though SW is almost certainly the most widespread), that is definitely the way to go, along with a Community College course/degree and/or a training certificate:

https://www.solidworks.com/solidworks-certification-program

Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller

#106

If you want to do code-CAD for anything substantial and you haven't yet developed a significant dependency on OpenSCAD, do your brain a favour and spend at least some time with CadQuery, Build123D or (if you prefer JS to Python) Replicad. As impressive as NopSCADlib and BOSL2 are (and OMG they are, when you consider what they have to work with!) , OpenSCAD is a one-way, declarative CSG environment that essentially on…

> OpenSCAD is a one-way, declarative CSG environment that essentially only outputs mesh formats This is why such a basic-seeming thing as “how do i get the bounding box for this CSG frankenobject I’ve created?” comes up again and again on stackoverflow etc. it’s apparently not possible without some hacks. I’ll take a look at the alternatives you mentioned, thanks.

OpenSCAD is often said to be for programmers, but in some ways it's more for mathematicians. If you know the formula/code for the object, you can calculate the bounding box, but that isn't a way most programmers are used to thinking.

Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller

#107
post #47

Earlier quoted context omitted.

Thankfully I have been able to do what I want to do without learning the complexity that comes with Build123d etc. Perhaps someday, but I havent had the need to get there thus far. Also: Encapsulation etc was achievable with Python, which is something I already know. PythonSCAD checked all the boxes for me without the learning curve.

Another option in this space is using python to directly generate openscad code, which is a fun exercise to sort of quickly visualize simple recursive algorithms in a 3d world and play with tilings, space filling curves, etc. of course building what amounts to a transpiler will be fun for some, or a distraction, depending on how focused you want to be on the 3d part. But openscad is a cool and minimal instruction set…

That is such a popular thing that back when I was maintaining the Shapeoko wiki there was a separate section for that sort of thing and it was hard to keep up:

https://web.archive.org/web/20211123185332/https://wiki.shap...

I really hope that OpenPythonSCAD becomes standard and that it can harness all that energy and creativity --- in particular note that it is now possible to upload a design for sharing using it.

Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller

#108
post #101

I don't say it's impossible but I believe it's quite near to impossible for most of OpenSCAD users to model this relatively simple drawing[1]. It's a breeze in CAD with constraint solver. Also it's viable in code-first systems with access to shape coordinates (build123d) using only construction geometry and projections. OpenSCAD requires hard trigonometry and math skills to pull it out. OpenSCAD has amazing community…

13 minutes. And I am very much at the lower end of the CAD skill scale

  $fn=100;
  difference(){
  union(){
      cylinder(d=55,h=60);
    translate([125,0,0])
      cylinder(d=30,h=32);
    linear_extrude(11)
      polygon([[0,25],[125,15],[125,-15],[0,-25]]);
    translate([0,5.5,0])
      rotate([90,0,0])
      linear_extrude(11)
      polygon([[0,50],[125,40],[125,0],[0,0]]);
  }
  cylinder(d=35,h=70);
  translate([125,0,0])
    cylinder(d=20,h=40);
  translate([110,8,98])
    rotate([90,0,0])
    cylinder(r=66,h=20);
  }

Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller

#109

Earlier quoted context omitted.

> The learning curve required a paradigm shifted in abstraction. This is true! And I think that brute-force simplicity of OpenSCAD is the appeal. I am still ultimately a CAD greenhorn but it got me started, and I don't blame you. But I guess the point I am getting to is, that paradigm shift is where you really want to be. It's certainly where I think most competent programmers who want to really build in 3D should wa…

As someone who's dabbled a little bit with OpenSCAD, SolidWorks, etc: > Because it unlocks the ability to reason about the shapes you're creating, within the code that creates them. You can for example place a feature in the centre of a face of an object you just created, without having to recalculate the location of the centre of the face or the normal etc. I can definitely see the appeal of this; would it be possib…

> I can definitely see the appeal of this; would it be possible to refit such capability back into OpenSCAD's model

This is where my understanding gets weak, but I think the answer in a practical sense is no. Not with the way that kernel works. It could be somewhat modelled on top, but then you have a layer around the kernel doing essentially the whole task of a bRep kernel.

Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller

#110
post #70

Earlier quoted context omitted.

The great thing about OpenSCAD is that it makes creating models which may be described mathematically/programmatically easy. The awful thing about OpenSCAD is that what one can create in it is strongly bounded by one's facility with and fluency in mathematics. I'm curious how the new Python-enabled (I really hope it gets added in to the program itself) will affect this.

The awful thing is that you can only export triangles, so you can't make any true curves. If it was capable to true circles it would do everything I have ever needed to make.

OpenSCAD has it's origins in 3d printing (specifically the reprap project IIRC). Most 3d printing slicers[0] and firmware don't do curves[1].

[0] Some will import them now but convert them to triangles, cura can use a plugin to convert those triangles back to G2-G3 arcs or circles.

[1] at least by default, marlin has optional support for arcs that can be enabled at compile time.

Post reply on HN