OpenScad Review - Worth learning?

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 ก.ย. 2020
  • Giving my thoughts and and overview of the CAD software openscad.
    Sign up to my newsletter here:
    kurthutten.com/signup/
    Transcript of the video: kurthutten.com/blog/openscad-...
    OpenScad: www.openscad.org/downloads.html
    freeCodeCamp: www.freecodecamp.org/
    What to know which language to learn first in 2020?: www.freecodecamp.org/news/wha...
    My OpenScad library: kurthutten.com/blog/round-any...
    Openscad libraries: www.openscad.org/libraries.html
    SolidPython: solidpython.readthedocs.io/en...
    JsCad: openjscad.org/
    Music Sappheiros - Home: • ❰Chillout❱ Sappheiros ...
    I'm pretty responsive on twitter: / irevdev
    This video is an:
    Overview of OpenScad and where it fits in with other cad packages.
    What's it good for and not so good for,
    And whether I think it's worth learning.
    OpenScad is a CAD or computer-aided-design package. In a nutshell, it's software for making 3d models that are dimensional and mechanical in nature, as opposed 3d graphics software like blender, which is better suited for artistic endeavours like assets for a game, as an example.
    Since OpenScad is cad software, it's amongst packages like fusion 360, Inventor, Freecad, Onshape and many more. The point of difference though for OpenScad, is that it's all programmed. Every part of the model comes from text you write, and the GUI part of the software is only there to inspect your model.
    This is worlds apart from the click and drag nature of the other packages. The programmed nature of OpenScad gives it some unique advantages that have resulted in somewhat of a cult following for the software, but also some severe drawbacks.
    With all of that out of the way, my answer to the question of should you learn OpenSCAD my short answer is yes, and my long answer is it depends, and the best way for me to break down the long answer is to propose some scenarios.
    1) If you are a programmer then go ahead, you'll probably enjoy it.
    2) If you are interested in learning to code, then OpenScad is a pretty gentle introduction. There are plenty of programming concepts that you will never learn in OpenScad, but they can come later with the next language.
    3) If you want to make parts that are very robust to changing parameters and want to be able to host it on Thingiverse, where users can put in their own parameters, then OpenSCAD is the only option available.
    4) If you like the concept of OpenSCAD, whether that's the code, fostering community contributions, or lack of vendor lock-in, and you are making parts to be 3d printed, then OpenSCAD is a solid choice.
    However, if you need to be productive today, or need to support STEP files for manufacturing, or need to make very complex shapes with smooth flowing meshes, then you'll be battling against OpenScad to get it to do what you need and would be a poor choice.
    Some other things to consider before you make your choice are:
    1) If the lack of vendor lock in, and opensource nature is appealing to you, then you could always consider other open-source CAD packages like FreeCad.
    2) If you love the idea of programming-CAD, while OpenScad is the most popular, there are alternatives. SolidPython is a python wrapper for OpenSCAD, or one of my favourites is jsCAD. It's implemented in javascript, and models can be made right in the browser.
    3) If you're worried about what I said about it being difficult to make complex shapes, have a look at libraries that are available first, as it should give you a good idea of the kinds of parts you can produce. The libraries officially recommended by OpenScad are an excellent place to start, but if I may, I'll plug my library, Round-Anything.
    The library has a variety of features, but what I think is of most significance is offering a way to add rounding to polygons. The result is a move away from the "boolean with primitives" paradigm, towards the sketch and extrude paradigm, which is, in my opinion, the workhorse of more traditional cad packages.
    One interesting take-away from everything I've said thus far is that even with some pretty heavy criticism of the software, I still recommend it for a variety of situations. This speaks to how well OpenScad fills a niche, and I think that means that the software will continue to be used and loved for many years to come.

ความคิดเห็น • 55

  • @rallen7660
    @rallen7660 3 ปีที่แล้ว +21

    Learning OpenSCAD is very useful, but did you know that OpenSCAD is also embedded into FreeCAD? So the modeling skills you develop won't be lost when you need to shift software.

  • @briankamras2913
    @briankamras2913 2 ปีที่แล้ว +1

    Excellent! I haven’t heard someone explain the difference between OpenSCAD and GUI tools properly. It’s a good explanation for when and where to use each tool.

  • @okboing
    @okboing 2 ปีที่แล้ว

    I figured out most of the stuff I needed to use it for as my first ever experience with cad software, and I've hardly been using it for 16 hours as the posting of this comment. Definitely recommended.

  • @jeevan1231
    @jeevan1231 3 ปีที่แล้ว +2

    great video bro. keep up the good work.

  • @attilassimcorner5277
    @attilassimcorner5277 ปีที่แล้ว

    Thx for this great insight of OpenSCAD

  • @rickybobbyracing9106
    @rickybobbyracing9106 ปีที่แล้ว

    Great video, considering coming back to youtube and making more.

  • @nevoyu
    @nevoyu 2 ปีที่แล้ว +1

    I learned old autocad from the late 90s. OpenSCAD translates that skill set quite well.

  • @chickengoatfish
    @chickengoatfish 3 ปีที่แล้ว

    thank you !

  • @martinmengh
    @martinmengh 2 ปีที่แล้ว

    Hard immutability presents the biggest challenge per the language itself. Secondarily, tracking complexity for large projects, making assemblies also present challenge, although can be handled with careful constructs and some external tooling (I wrote cscad, a openscad framework just for this). Thank you for excellent video.

    • @The4lexO
      @The4lexO ปีที่แล้ว

      csscad ?

  • @BruceWayne-dh5hy
    @BruceWayne-dh5hy 3 ปีที่แล้ว

    Great review👌.

  • @bknesheim
    @bknesheim 2 ปีที่แล้ว +1

    ref: 8:37
    You can convert an exported .stl file from OpenSCAD to .stp in just a few seconds using for example FreeCAD.
    OpenSCAD work also very good with Meshmixer. Smaller parts can be added to a larger modell in Meshmixer in precise positions.

    • @meanman1992
      @meanman1992  2 ปีที่แล้ว

      A .stp file converted from an stl is still mesh based, which largely defeats the purpose. I probably should have clarified, but it's because STEP files support brep that they are an industry standard. When you export STEP from other packages you get a brep file.

  • @usernamename2978
    @usernamename2978 7 หลายเดือนก่อน

    In designing a printed circuit to receive many hundreds of LEDs, each with its own position and orientation, I found the PCB CAD scripting too crude to reflect the complex geometry needed, but that could be handled in a general-purpose language which then wrote a script to be read by the PCB CAD software. I imagine that the same could be done with OpenSCAD.

  • @franksonjohnson
    @franksonjohnson 3 ปีที่แล้ว +1

    Casual Precious Plastic reference in the midst of a thoughtful critique? Subscribbb.

    • @franksonjohnson
      @franksonjohnson ปีที่แล้ว

      Ayooo now we work together at KittyCAD 🐈

  • @flamy111
    @flamy111 2 ปีที่แล้ว +1

    Nice video! My pet peeve with open scad is the scope of an 'if' statement, which makes sense from a programming design perspective, but on other language works like that.
    Thank you for re-introduction to SolidPython, I've heard things about it, but now I should try using it in a simple project.

    • @meanman1992
      @meanman1992  2 ปีที่แล้ว +2

      I actually know a lot more about CodeCAD alternatives now, see this: learn.cadhub.xyz/blog/curated-code-cad

  • @bestginflyer9405
    @bestginflyer9405 2 ปีที่แล้ว

    Hello, I removed the bars on the right and left for editing.
    How do I get them back? (I'm on Mac)

  • @johnconnorstopskynet
    @johnconnorstopskynet 2 ปีที่แล้ว +1

    Maybe I'm just stupid, but I read the beginner's tutorial and how to make a cube made enough sense but after that I was completely lost it was like an alien language to me.

  • @meanman1992
    @meanman1992  3 ปีที่แล้ว +9

    I'm currently working on a community website for "Code-CAD" (like OpenSCAD). A good way to think of it is codepen crossed with a thing repository. You can check it out at cadhub.xyz/

    • @MrLucaMoura
      @MrLucaMoura ปีที่แล้ว

      Hi, I do not have much experience with modeling software. So, do you have a video explaining the difference between open-scad and "code-cad" or a review about it?

  • @juliannevillecorrea
    @juliannevillecorrea 3 ปีที่แล้ว +1

    I recently discovered cadquery. What is your opinion on cadquery ?

    • @meanman1992
      @meanman1992  3 ปีที่แล้ว +4

      I've discovered Cadquery too since making this video. Short answer is it's great. I think they're doing a lot to push the Code-CAD paradigm forward. Their selectors concept is pretty neat. I recommend it along with a couple others here, kurthutten.com/blog/curated-code-cad.
      My general opinion these days is that projects that escape the CSG mindset are the future of Code-CAD and hence projects that wrap OpenCascade (like CadQuery) have a head start in that regard.
      I've been working a little on CascadeStudio recently (also wraps OpenCascade) and we're working on an expressive 2d sketch API, check it out here github.com/zalo/CascadeStudio/pull/56. If you like the concept leave a comment :)

    • @juliannevillecorrea
      @juliannevillecorrea 3 ปีที่แล้ว

      @@meanman1992 thank you very much ❤️ for a beginner like me that's invaluable advice 🤸

  • @meanman1992
    @meanman1992  3 ปีที่แล้ว +5

    What do you think?
    Did I miss any important points?

    • @dylanking9144
      @dylanking9144 3 ปีที่แล้ว +1

      I am guessing that the measurements are in millimeters? Just cant seem to find where it says what the type of increments it is using.

    • @meanman1992
      @meanman1992  3 ปีที่แล้ว +2

      @@dylanking9144 Good point, the base unit is a millimeter, I would have thought there would be a way to adjust that in the settings but I couldn't see anything, if you wanted to work with a different unit, you could just work as if you were using that unit and wrap the entire project in a scale to make it match.

    • @systemachic
      @systemachic 3 ปีที่แล้ว +4

      Excellent review of opensCad ! I am new to this software and 3d modelling , i learned a bit last year with Freecad and i love it but when you use it occasionaly you don't remember everything you learnt and it is a bit frustrating . One point i want to add for the beginners is you can start with BlocksCad first, it is opensCad based and it is very easy to learn the basic, the step to opensCad sould be easier after.

    • @meanman1992
      @meanman1992  3 ปีที่แล้ว

      @@systemachic That's a good point.

    • @zveroboYchik
      @zveroboYchik 3 ปีที่แล้ว

      Hello from Ukraine! Can you recommend me program (3d modeling >>>> printing). I am training in tinkercad and i want other more functional program

  • @thejollygrimreaper
    @thejollygrimreaper 3 ปีที่แล้ว

    doing fillets and chamfers aren't actually that hard to do it comes down to a bit of planning and developing the right way of thinking when designing your object, the step file support is trivial as you can drag your stl or obj file into other software packages and make the conversion,

    • @meanman1992
      @meanman1992  3 ปีที่แล้ว +2

      I didn't bother digging into the nuances in this video but there's more to it than strictly being STEP file format, it's the fact that OpenSCAD is mesh based and converting it to STEP won't change this, STEP files can accomodate both mesh and boundary representation models and it's the later that injection molding manufactures will insist on.
      And I really struggle to understand the idea that fillets aren't hard, in other packages you simple state which edges you want filleted and it's done, in OpenSCAD you need to make the rounded profile yourself which can get very difficult. I might be wrong, could you show me how to fillet the edges where the cube and cylinder meet in a performant way for the following?
      cube([6,6,22]);
      rotate([30,45,10])
      cylinder(h=22,d=10);

    • @thejollygrimreaper
      @thejollygrimreaper 3 ปีที่แล้ว +1

      @@meanman1992 you could do it by making a union of multiple hull statements of different heighted cubes and cylinders, with a bit of tuning you would also be able to bias the fillet towards either the cube or the cylinder this is how i've done pipe Y joint type objects before
      $fn = 32;
      main();
      fillet(11);
      module main(){
      union(){
      cube([6,6,22]);
      rotate([30,45,10])cylinder(h=22,d=10);



      }
      }
      module fillet(cu){

      for (i = [0:0.1:cu]){
      hull(){
      cube([6,6,cu-i]);
      rotate([30,45,10])cylinder(h=i*2,d=10);
      }
      }
      }
      this is a very very rough but you'll get the idea behind it, Ideally you would just bring it into blender (*or whatever the favourite package is ) and fillet the joint if you were only doing it a few times ,where you would do this purely in openscad is in a situation where you need to generate a large number of slightly varying objects which is where the command line automation stuff gets fun (easy to do though)
      as far as format stuff goes , it's not something I've invested a lot of energy into or even really care that much about , most of the cnc shops I've dealt with in china have been happy to take whatever format I've thrown at them a lot of them seem to be very flexible on that which is more than i can say for the local shops in Australia (some of whom the format is irrelevant as they still to this day write their gcode by hand... seriously not joking)

  • @TheRainHarvester
    @TheRainHarvester 3 ปีที่แล้ว +2

    CAN openSCAD create gcode for cnc router machines?

    • @meanman1992
      @meanman1992  3 ปีที่แล้ว +4

      I doesn't do machine paths besides some 3d print functionality which I've never used.
      It's main focus is on the modeling stage of a part's life-cycle, and would need to be exported to make machine paths in another tool.

    • @TheRainHarvester
      @TheRainHarvester 3 ปีที่แล้ว

      @@meanman1992 thank you!

    • @lunokhodtoy
      @lunokhodtoy 3 ปีที่แล้ว +1

      you can export to STL

    • @seanfan84
      @seanfan84 3 ปีที่แล้ว

      @@TheRainHarvester no. It is not a NURBS system, meaning the geometry is not described by its mathematical definitions. Say circle is described as center and radius in real cad. But openscad give you many little lines to give a look of a curve. Therefore, any CAD,CAM system will not be able to recognise anything except for lines.

    • @oleksiyyefimenko3299
      @oleksiyyefimenko3299 3 ปีที่แล้ว

      Great code! One of the best choice for 3d modeling. But not unique. The concurents are open cascade, apdl, with own advantages and disadvantages...

  • @anonymous-ye2wo
    @anonymous-ye2wo 3 ปีที่แล้ว +1

    It can't create absolutely smooth surface geometry.

  • @MrWaalkman
    @MrWaalkman 11 วันที่ผ่านมา

    OpenScad has a serious problem relating to how it imports objects (.STL files) that were created elsewhere. The problem comes from mesh errors in the imported .STL preventing your modified .STL from being rendered by OpenScad. Which means no .STL for you!
    You can argue that you shouldn't be importing bad STLs, which in a prefect world is true. But if your only option is to grab an existing .STL file and modify it, and it happens to have an error, What are you going to do?
    Take the Thorn gun from Destiny, a friend of mine asked if I would print it for her and to do this I had to break up the gun into smaller parts. A perfect job for OpenScad. But because the was text added to the model by the uploader, and that text created issues with the .STL not being watertight, OpenScad would not render it.
    Specifically, the error that you get is "ERROR: The given mesh is not closed! Unable to convert to CGAL_Nef_Polyhedron." And digging through issue 4039, you will come across the comment that it is unlikely to ever get fixed (issue 4039 being closed notwithstanding) since it comes from an earlier open source project that OpenScad used as the foundation for their project. From the issue 4039 mailing list:
    "I don't think there are any active developers who are familiar with the deep magic that goes into the rendering engine (CGAL) - it's imported from another open-source project."
    These issues can usually be fixed in MeshMixer, which is what we did. And what a pain in the ass that was. And using MeshMixer to fix it can (most likely will) impact the accuracy of your .STL object. So don't expect your parts to necessarily fit once you've fixed it in MeshMixer. Not fixing the .STL might be overlooked by your slicer, in my case neither Simplify3D nor QidiSlicer particularly minded the massive chunk that was missing from the Thorn .STL part. LOL! That one isn't going to print. :) But other "bad" .STLs have printed out for me with no noticeable problems. YMMV.
    So it's not an OpenScad fault, but neither is OpenScad going to look the other way and let you get along with your business. Which in these cases (usually when text is added to the object) you will have to find your solution elsewhere.

  • @RetroRick1990
    @RetroRick1990 2 ปีที่แล้ว

    Thank you for the video, now I know that I will stay away from OpenSCAD. 🤝

  • @critical_always
    @critical_always ปีที่แล้ว +3

    This video could be 10 seconds long.
    OpenSCAD is open source.
    You will see over time that nothing else matters more unless you wish to be a slave to large cooperate companies changing TOS whenever they feel like it.
    OK I am biased. I love the concept.