13 ms·
OpenSCAD: Software for creating solid 3D CAD objects
- sokoloff 8y agoFor simple geometric models for 3D printers, it's hard to beat OpenSCAD for precision and productivity. It's not particularly good for more organic shapes, but simple mechanical parts are a dream to make.
- DEADBEEFC0FFEE 8y agoYep, and as a intro to parametric modelling, very good. It has its quirks, but it's solid. It's also the defacto open source format, folk use when sharing models.
- bsilvereagle 8y agoAnother option for programmatic parametric CAD is cadquery: https://dcowden.github.io/cadquery/index.html https://dcowden.github.io/cadquery/index.html A cadquery FreeCAD plug-in exists, so some tasks can be done via the GUI and others programmatically.
- hathawsh 8y agoCadQuery looks very interesting, but it worries me that it's not compatible with Python 3. Is someone working on that? Edit: Never mind, yes there is a plan for Python 3. https://github.com/dcowden/cadquery/issues/203 https://github.com/dcowden/cadquery/issues/203
- ecopoesis 8y agoCadQuery is awesome. OpenScad’s language is quite limited: being able to use any Python you want makes CadQuery so much more powerful. Plus CadQuery can generate STEP files so you’re not limited to hobby 3D printers: you can send your project out to a CNC shop. I designed and manufactured a keyboard using CadQuery and would highly recommend it.
- jmpman 8y agoBetter integration with Python would make OpenSCAD 1000% more usable.
- ndnxhs 8y agoIts a lot less scary than it looks and I found it to be much much easier to use than freecad. My workflow on freecad was basically just typing numbers in to the properties panel for shapes so why not just do the same thing but as a text file so I can see more at once.
- bacon_waffle 8y agoAs an occasional FreeCAD user and contributor, this confuses me. Are you describing writing Python scripts to create your geometry from scratch, or maybe building models out of primitive shapes and boolean operations? My usual FreeCAD workflow involves drawing constraints-based 2D shapes in Sketcher, then extruding/revolving them. There are some numbers typed in, but those are mainly just key dimensions. One of FreeCAD's bigger faults IMHO is that the right/best way to do things isn't easily discoverable (as seems to be common in CAD), and the documentation (like many OSS projects) is a bit hit-and-miss...
- ndnxhs 8y agoWhen I make stuff I always have exact dimensions and positions I need to use so almost none of what I am doing can be freely drawn with the mouse. With openscad I can type in my exact values and be sure that nothing was accidentally moved by mouse.
- hathawsh 8y agoSame here. I've dabbled in various CAD software packages but I always come back to OpenSCAD because it lets me build a well structured text file with every detail of my model, with no possibility of hidden variables. I'm willing to give up a whole lot of features just to have that precious text file.
- bacon_waffle 8y agoI'd say exact dimensions are the norm for FreeCAD too - the mouse isn't used for freely drawing shapes in any workbench that I'm familiar with. With the Sketcher workbench in particular, the constraints control the geometry; the mouse is essentially used for selection and input of relationships between shapes. For example (I've only skimmed this video, there are likely better ones), check out https://www.youtube.com/watch?v=rgstQi9jpGc https://www.youtube.com/watch?v=rgstQi9jpGc
- jake_the_third 8y agoThe apt-packaged version of OpenSCAD was broken for the current LTS version of ubuntu and hasn't been fixed yet. You'll need to download it from an alternative source if you want it on 18.04. Works well on 16.04 though!
- hathawsh 8y agoThe OpenSCAD releases seem to be in chaos. I've been using an AppImage release in Ubuntu, build 9.4, since February. Later releases seem to just crash. I get the feeling I'm building on an unstable foundation. :-(
- jake_the_third 8y agoThe particular problem I referred to was caused by ubuntu's packaging process though: a dependency package failed to build for some obscure architecture so they decided that the sensible course of action was to remove the package for ALL architectures. Perhaps I'll just use AppImages like you so that I can finally upgrade off 16.04. Have you found any downsides to using the AppImaged version over the apt one? (aside from the stability issues in newer releases)
- hathawsh 8y agoThe AppImage has been great. No downsides.
- zbrozek 8y agoI feel like OpenSCAD is extremely good for generative art (where its programming language is useful), but sorely lacking for designing functional hardware. It doesn't even have a measure tool! It's vastly too slow at previewing and rendering, and building everything out of various intersections of basic solids is cool at first and rapidly becomes infuriating. While not FOSS - but still suitable for tinkerers - Fusion 360 and SolidWorks both have maker-friendly licensing and are dramatically superior tools.
- nrp 8y agoI’ll agree with the slowness issues, but I’ve found OpenSCAD extremely useful for functional hardware, especially when implementing something against a spec or physical measurements that need to be iterated open. As examples, I’ve designed a PC chassis and working housekey copies in OpenSCAD, both of which benefit massively from being fully parametric. On the measure tool, it usually isn’t necessary because your critical dimensions should be inputs into your SCAD rather than outputs from it. Even so, there is a pretty useful set of modules for generating dimensioned drawings: http://www.cannymachines.com/entries/9/openscad_dimensioned_drawings http://www.cannymachines.com/entries/9/openscad_dimensioned_...
- eltoozero 8y agoBookmarked. Very cool, these are great modules and I will be happy to have them in my SCAD toolkit. Thank you!
- omeid2 8y agoWhile I really enjoyed working with OpenScad, I find ImplicitCad[0] to be far more functional (excuse the pun), the language is just more easy to reason about. [0] http://www.implicitcad.org/ http://www.implicitcad.org/
- zokier 8y agoAt least it can make circles that are round instead of polygons, so that's a major upgrade already.
- Wurlitzer 8y agoI think you can set the resolution with something like $fn=100; if I remember correctly.
- jimmux 8y agoI found OpenSCAD was convenient for quick ad-hoc printed parts, but doing it all in the browser is even better. Thanks for this.
- deckar01 8y agoThe theory behind it is interesting, but in practice I found it underwhelming for practical applications. The point of using it was to get a performance boost by separating the geometry composition from the node mapping. Unfortunately, even on simple models it produces erroneous protrusions until the resolution is turned up high enough. This slowed things down to the point that it was no longer any faster than OpenSCAD and since it doesn't have STL import functionality, there was no reason to keep using it.
- ComputerGuru 8y agoI can't recommend Fusion 360 enough (it's free for non-industrial use and cross-platform) for non-professionals looking to model 3D CAD for prototypes, POCs, hobbyist consumption, etc.
- jwr 8y agoSeconded. It's a good product, and the pricing is hard to beat. I liked OnShape a lot, I think they got a lot of the UI right, but they priced themselves out of the market I'm in.
- my_username_is_ 8y ago>I liked OnShape a lot, I think they got a lot of the UI right, but they priced themselves out of the market I'm in. Agreed. I'm a little surprised at how OnShape doesn't want to price their product cheap enough that every new startup wants to use them with no questions asked. After you start using a certain CAD system, it is a huge P.I.T.A. to switch all your files over. Fusion360 takes advantage of this (no cost till you're above $100k in revenue), but the quality of their product just isn't quite there for me. And given the risks of using an entirely cloud-based system, if I were to make a startup & get funding tomorrow I'd still probably pick Solidworks.
- jwr 8y agoSolidworks is way more expensive than OnShape or Fusion360. It's in a different league. It also has a number of its own problems (random crashes, windows required, annoying license management, horrible UI). I would not pick Solidworks anymore, unless I really required features that are only there. It used to be that you had to use Solidworks to keep your sanity while designing for injection molding, but these days it is no longer the case, unless your design is very complex.
- mike_ivanov 8y agoCould you kindly show me the page on their web site saying that it is free for non-industrial use, please? I cannot find it by myself, I can only see free trials - but it is not what you meant, right?
- qaute 8y agoA (non-exhaustive) list of hobbyist-accessible engineering CAD programs I can recommend: - Fusion 360 (Windows/Mac) (free for hobbyists) can do complex many-component robots or simple geometric shapes and has facilities for rendering and simulation. I'll concur with all the other recommendations I see here. - OpenSCAD (Windows/Mac/Linux) (GPL) is text-based, which is nifty but really limiting. Good for generating triangulated files of complex-but-formulaic objects (e.g., gears/screws), but is ~10x slower to use than Fusion for most anything else. Would definitely not attempt to use to design an assembly of multiple parts. - SolidWorks (Windows) ($$) is industry-standard. IMO, slightly better (smoother/faster/more robust) for modelling medium-to-large things than Fusion 360. - OnShape (clound-based) ($$ but IIRC has hard-to-find public/free tier) is notable for working in a web browser (good for Linux users). Seems to have a bunch of plugins, but actual CAD capability is run-of-the-mill. [EDIT: also has a functional CAD-on-phone app. Like, wow.] - FreeCAD (Windows/Mac/Linux) (GPL) is the open source Fusion/SolidWorks equivalent option. Needs a lot of work (e.g., good part assembly capabilities) and I find it rather clunky. I wouldn't learn CAD here, but I do really want a community-developed Linux desktop CAD program.
- jacoblambda 8y agoTo chime in here real quick I don't have much experience with openCASCADE as an editor but it has a fairly decent API for creating and manipulating CAD files. It's LGPL and runs on Win/Mac/Linux so its got that going for it as well.
- sleavey 8y agoIndeed, FreeCAD uses OpenCASCADE as its kernel.
- em-bee 8y agowhat would you recommend for architecture? i am working with a construction company that is looking for BIM integration that they can expand on, which FreeCAD seems to promise.
- deven88 8y agoDraftSight[1] is good tool for CAD and it is very similar to AutoCad. I am using it frequently. But it is free for only 2D drawing, it is the biggest limitation. [1] https://www.3ds.com/products-services/draftsight-cad-software/ https://www.3ds.com/products-services/draftsight-cad-softwar...
- donpdonp 8y agoI gotta put in a plug for SolveSpace. http://solvespace.com/ http://solvespace.com/ its got its quirks but it hits a sweet spot between using a GUI and specifying dimentions numerically. I think it might be abadoned, as it seems to need a serious update of some of its concepts, but as long as you stay under a certain complexity level its fun and open source.
- rurban 8y agoSolveSpace is not abandoned at all, and generally the best parametric 3D modeler. Simple, easy, elegant with most features.
- phkahler 8y agoI'll agree that it's a great piece of software, but "most features" isn't really true. You run into its limits very quickly, but then you start finding ways to make what you want with the features it has!
- IshKebab 8y agoI agree. I don't know why it isn't more popular given it is the only usable open source parametric modelling program.
- gnulinux 8y agoI generally like OpenSCAD but its language is not very feature rich. E.g. it still does not support generalized extrusion, offsetting, subdivision (e.g. Catmull-Clark subdivision), bezier curves etc which I find it hard to use for anything more complex than a screw. They use CGAL as a dependency, so they should be able to implement these. But it's a promising CAD for sure.
- dnautics 8y agoThese are doable.. you have to write them yourself, it's not terribly hard. Being able to programmatically define a tolerance Delta was extremely useful (for me); I was able to design an interlocking assembly and dynamically change the tolerance to make sure they fit my material in two printings (print once, measure dimensions, quickly adjust constant, print a second) with a trusty pair of calipers.
- sokoloff 8y agoDo you have any of that tolerance code open-sourced? (Even if not the entire model, could you share any of the relevant portion[s]?)
- dnautics 8y agohttps://github.com/ityonemo/imsocultured/blob/master/device.scad https://github.com/ityonemo/imsocultured/blob/master/device.... is an example.
- iamwil 8y agoA couple years back, I wrote a beginner post on learning OpenSCAD. It seemed to have helped people get up and running. https://cubehero.com/2013/11/19/know-only-10-things-to-be-dangerous-in-openscad/ https://cubehero.com/2013/11/19/know-only-10-things-to-be-da... Other than that, you can check out https://www.reddit.com/r/openscad https://www.reddit.com/r/openscad, for what other people are doing with it.
- japanuspus 8y agoA great way of getting started with OpenSCAD is (blockSCAD)[1], which is a scratch-type graphical editor (that can switch back and forth between text and block code). While I don't usually like block code, it actually works really well in the setting of OpenSCAD, and because of the one-to-one mapping between blocks and written code the editor can switch back and forth between the two. A related project is (openJSCAD)[2], which uses the same geometry logic as openSCAD, but embed it into javascript for flow-control and related logic. I really like this approach, since it avoids having to pick up yet another DSL. The openJSCAD online editor also features an local-file integration that blew my mind when I first saw it. [1]: https://www.blockscad3d.com/editor/ https://www.blockscad3d.com/editor/ [2]: https://openjscad.org/ https://openjscad.org/
- tasn 8y agoThere's also https://github.com/tasn/scadjs https://github.com/tasn/scadjs I built it because openJSCAD was (is?) pretty incomplete in comparison to OpenSCAD. The nice thing about scadjs is that it doesn't reimplement the CAD engine, but just uses openscad itself. I was using it for my prints, so it works and works well, though it may be incomplete in some areas.
- tjoff 8y agoIt really saddens me that people are recommending fusion 360 here. Sure, I get it. Fusion 360 is an awesome piece of software. But are people really that eager to be completely dependent on autodesk? Do people not realize that perhaps the reason for why fusion 360 is so cheap is because they are aiming (and on a fast track) to get complete monopoly? Does that not bother anyone? You wouldn't even be able to stick to an older version of the software. Can you even version control your files? (will you in the future, without buying the premium package?) Yes I know the cloud has your back and everything. But you don't want the files in the same version control system that you use for everything else? What's next, save your python files in another cloud? It's absurd. Can you export your files to be workable in any other software? (aside from very expensive autodesk products) Are you not risking loosing everything you ever produced? It's like python2 -> python3 but instead of compatibility issues your code just disappears or held hostage. How is that OK even for a hobbyist? I'm sure I'm mistaken on some points (please correct me!), because I vomit every time I decide I want to try it and start the download process and start reading their pages (and I don't think I even got to the privacy policy). The whole application is architectured to lock you in. That is the SOLE purpose of it, why do we accept that? It is dystopian, and the devil is being universally cheered upon. Have we really lost all hope?
- Adirael 8y agoI've tried to like Fusion 360, but the login screen the first time you boot it up turns me off. It's also slow as hell on a top of the line iMac, and that's with very small projects. I like OpenSCAD a lot, but being productive there outside of very simple (squarish) designs is hard.
- Double_a_92 8y agoBecause for a hobbyist, that just wants to get things done, there sadly aren't really any alternatives. Otherwise could you reccommend any?
- RossBencina 8y agoRhino 3D looks to be similarly priced.
- nicwest 8y agoI recently bought a 3D printer and have enjoyed programing objects in cljoure with scad-clj. https://github.com/farrellm/scad-clj https://github.com/farrellm/scad-clj This is biggest project I know of that uses it: https://github.com/adereth/dactyl-keyboard https://github.com/adereth/dactyl-keyboard https://www.youtube.com/watch?v=uk3A41U0iO4 https://www.youtube.com/watch?v=uk3A41U0iO4
- tjoff 8y agoThat talk is excellent and it got me interested in both scad-clj and the keyboard.
- andybak 8y agoHas the post title been altered by mods? I recall last night it mentioned something about Scad being parametric or programmable - a fact that made this post potentially more relevant to HN readers. It's a terribly generic title now.
- johnmarcus 8y agoMy only problem with Autodesk products is they refuse to support Linux. I hated having to have Windows just for one shitty piece of software.
- bibomator 8y agoI've used opendSCAD and also freecad for years (linux). Now I just ordered a new PC for running windows and Fusion360. Am I happy with that solution? ... not really. I would be happy to support an open source CAD project with 3-5€ a month if I got a decent and stable SW in return. I do likewise with octoprint. Why I'm in the process of changing? My time is limited and I feel that certain things should be faster toolwise. Additionally it happened more then once, that I had to scrap work of several hours because I hit a point with a reproducible crash. (yes - I did file a bug report ... it was answered more then a year later asking me for the buggy design ... which I could not provide anymore) I understand that a stable SW and continuous improvement (especially in a complex SW package like CAD) needs a small team of full time developers. If somebody started a related croud funding campaign with a follow up patreon financing program ... I would be in!
- erickj 8y agocan you comment more on your experience with FreeCAD? I've just started looking into learning that myself since I run Linux for a desktop, with no current plans to buy a windows machine just for Fusion360. I've also been thinking recently that I'd be happy to contribute monthly to further the development of these projects, as it is understandable that such a complex development tool should require resources to be built well.
- bibomator 8y agoWell - I started with freecad using some good tutorials which can be found on youtube. Most times it works but in certain everyday functions I feel there could be more smoothness (like for example if you want in a sketch a complete parallel path in x distance) My understanding is that Fusion 360 has such functions. Another thing which could be done better is fillet functions (to get round corners) I think this a good example for something you use often (rectangular corners just don't look professional) but often don't work out as expected. Lately I use openscad for my stuff but getting fillets with this is a major pain... To sum up: FreeCAD is not bad - there are some good tutorials and so on and it certainly can teach you how to construct something 3D... but save often and save early (and best some different versions as well) On the other side I expect a more professional handling from Fusion360 ... and of course there are additional features like finite element simulation....
- deckar01 8y agoOpenSCAD's performance only scales with the clock speed of a single CPU core. On any sufficiently complex composition, the underlying geometry engine will eventually either slow to a crawl due to combinatorial node visits or fail to render due to opaque assertion failures. This is not the basket to put your eggs in for professional modeling. It will let you down and there is no clear path to making it better any time soon.
- rebuilder 8y agoThere's also Graphscad, which is a node-based interface for openscad. I only just learned about it myself, so haven't tried it yet, but it looks extremely cool to me! http://graphscad.blogspot.com/ http://graphscad.blogspot.com/
- syntaxing 8y agoMechanical Engineer here and I design stuff in CAD for a living. OpenSCAD is great for the basic stuff but doesn't really scale well. It's fun to play with and to teach people programming and CAD at the same time. If FOSS is really a concern, FreeCAD is probably the better route. However, like others said, Fusion 360 for hobbyist is the way to go. For professionals, just go with Solidworks. IMHO, it works better than anything (though I only also know and have been trained how to use Inventor, Creo, and NX so I do not know how other software like Catia will compare). Solidworks is way more advanced than Fusion 360 when you need to design something a bit more complex. Don't forget, CAD modeling is only half the work. Making good drawings is the other half and Fusion 360 drawing capabilities is pretty crappy as of right now. As for the FOSS debate, it's quite interesting because no one in the industry cares about being locked in. $4000 for a license is nothing compared to "$140/hr" rate that engineers cost a company. As long as the software works and the engineer produces tangible results, closed source software will continue to dominate.
- saidajigumi 8y agoAs a non-Mech E, but someone who needed parametric CAD for side-biz[1] projects... the delta between FOSS offerings and paid offerings in this space is immense. I evaluated Fusion 360 a few months back, and even that was a non-starter for my use: I was floored that it doesn't have a feature often called "configurations"[2], vital to my work. Solidworks would be great, but the per-seat starting price was far too high for me right now. I went with Alibre Design on the recommendation of an engineer acquaintance, and that's been my personal parametric CAD sweet spot. I adore OnShape's revisions to classic CAD modeling, but it's still more than I want to pay given[1]. [1] not yet money-making, so still akin to "hobbyist" in needing to keep a constrained budget. I absolutely agree with the parent that the per-seat costs seem high, until you factor the costs of your skilled staff in a real work environment. [2] Imagine you want to model a cap screw, but have just one master model for all of the diameter/length/{fully-threaded, partially threaded} variations. Updates to the model are then sanely propagated to every variant. You don't have to go very far down this path before manually keeping separate models in sync will drive you nuts. That's the problem that configurations in CAD s/w were created to solve.
- wlll 8y agoFor those curious about what you can do, I designed and 3d printed this small robot using OpenSCAD: https://sendcat.com/dl/BLB0593VKWdC8p61VVmDxA9Yy0eR9EtLl33qLVLt2FEwIzkbCbjgJzd https://sendcat.com/dl/BLB0593VKWdC8p61VVmDxA9Yy0eR9EtLl33qL...
- eltoozero 8y agoI can’t believe that nobody has mentioned the Prusa FDM 3D printers are, and have always been designed in SCAD[0]. This alone has been instrumental in allowing community improvements, it’s the last “true” reprap, they run a farm of 300+ machines and iterate parts somewhat frequently. Pretty amazing that there is one molded part on the entire machine, the spool holder.[2] There was also some “archeology”[1] on the traditional CAD dead-ends from a specific extruder design that I found facintating. [0]: https://www.prusa3d.com/prusa-i3-printable-parts/ https://www.prusa3d.com/prusa-i3-printable-parts/ [1]: https://reprap.org/wiki/Genealogy_/_Archeology_of_the_Greg's_Wade's_Geared_Extruder https://reprap.org/wiki/Genealogy_/_Archeology_of_the_Greg's... [2]: https://twitter.com/la3dpr/status/1072393398722670594?s=21 https://twitter.com/la3dpr/status/1072393398722670594?s=21
- anonlastname 8y agoIn OpenSCAD you build your part by constructing its convex hull. This is done by using primitives with known convex hulls such as rectangles and spheres and combining them using operations such as addition, subtraction, union, and Minkowski sum (which is an interesting peice of mathematics.) Because you interact with shapes using code, it feels much more precise than a GUI. I think this makes it easier to create parts that aren't "glitchy." You want your part to have the minimal amount of detail and using code makes this easier because you can keep track of the steps to draw your shapes to see if you made any unnecessary changes. OpenSCAD made me think about CAD in a different way.