Hacker News new | past | comments | ask | show | jobs | submit login
CADing and 3D printing like a software engineer (fangpenlin.com)
109 points by bo0tzz 54 days ago | hide | past | favorite | 103 comments



I thought immidiately: "CAD for programmers? This has to be about OpenSCAD/CadQuery or the likes", but no.

So if you want (need) to create parametric CAD parts and can program this might interest you: https://cadquery.readthedocs.io/en/latest/quickstart.html#qu...

I e.g. used it to create parametric electronic parts for visualizations of printed circuit boards where modelling each slightly differently sized variant manually was too much effort.


I like OpenSCAD for what it is good for: limited, geometrically simple parts and geometry demos.

I think CadQuery/Build123D are fine tools with much better abstractions than OpenSCAD. The latter is not, IMO, really a CAD tool at all; at no point does the Computer Aid the Design, in the CAD sense, whereas you can argue that the various OpenCascade code-CAD environments can at least expose generated geometry to code.

But the post is right: parametric GUI CAD is pretty much a visual analogue of functional programming. Once you get your head around the ways sketches or their equivalents can map onto existing geometry, a lot of the ways programmers think are very applicable to CAD.

You're basically working with a directed graph, which means you can do things like drive designs from parameter sets, or spreadsheets, and e.g. in FreeCA drive some variables from configuration tables (rows in a spreadsheet with different parameter sets) so you can make variations of objects.

As much as I think code-CAD has uses, especially perhaps for analysing and post-processing STEP files for download customisers, at this point someone with parametric CAD requirements should at least try a GUI CAD package like FreeCAD or any of the free/low-cost tiers of the commercial packages. FreeCAD can do OpenSCAD, and has a (verbose) Python layer, so it's accessible to code CAD.

The tools may initially be a little frustrating for programmers used to writing code, athough IMO less frustrating than the many quirks and significant limitations of OpenSCAD. But CAD methodology is logical and scaleable, and with a little learning you will be able to do things much more quickly and much less repetitively than OpenSCAD, which admittedly is a counterintuitive claim to a programmer.

I think programmers tend to think that GUI CAD must be to code-CAD what visual programming tools are to text IDEs: unnecessary fuss keeping you from the truth. But it's really not like that.


OpenSCAD is almost akin to writing assembly. So many things you would expect like in a higher-level language (FreeCAD, Fusion) are missing (like fillets and things like that). You onle have primitives and primitive operations to work with.


It's frustratingly like that and not like that.

For example, you cannot write a routine that says "get me the edges of this object generated by this other routine, and apply a 1mm fillet to them all". Because while the code manipulates geometry, the result is not geometry. The result is a 3D approximated picture of the geometry rendered in another form of geometry.

To do anything like operate on result vertexes or edges you have to replicate the result geometry, by hand, in data structures in the code.

So it is not just fillets as an operation that are missing. It is any notion of being able to access the edges that you would wish to fillet.

This is why I think OpenSCAD does not "aid design" in the CAD sense. It does nothing but compile your wishes into a mesh. The most basic notion of "aiding design" ought to be exposing the result geometry of one operation so it can be used as the variable input for another.

Is it good for quickly understanding basic geometry or displaying the results of formulae? Yeah. Undeniably so.


Also see https://github.com/gumyr/build123d (which is closely related to CadQuery, my understanding is it's successor). I used b123d for a project this year and it turned out perfect. When I need to make a change, editing some version controlled py and watching the model update is very satisfying.

Best resources to get a feel of why programmatic parametric modeling is so interesting:

https://cq-warehouse.readthedocs.io/en/latest/fastener.html

https://bd-warehouse.readthedocs.io/en/latest/index.html


Thanks for the tip, a pain point with cadquery was the installation so if b123d manages to solve that it is worth checking out.


I thought this would be about OpenSCAD as well. Thanks for the reference to CadQuery!


Bambu and Fusion360 sure look nice, but if you're on tighter budget, 3D printers became both cheaper and more reliable in general, and FreeCAD recently got to 1.0 and is quite capable.

I worked alongside people using early versions of Makerbot and Ultimaker, and those were a maintenance nightmare. But recently I got a Kobra 2 Pro for $200, and it's both more capable and easier to use than those old monsters. With PLA it's pretty much hassle-free, no need to tweak anything except print orientation and maybe some support options.


I'll add my voice to this. I stopped using Fusion360 when they adjusted the licensing terms a while back. FreeCAD has a ways to go to being at par with the likes of Fusion, but it is a capable piece of software - and once you get some hours with it you can design really incredible stuff.

Anyone who used Blender in the early days knows how far its come. FreeCAD is making that journey too. The 1.0 release is a big step. I use FreeCAD for all of my (admittedly amateur) CAD work. I've designed toys for my kid, props for my Christmas light setup, tool-holders, and any number of things I can't think of at the moment.

If anyone is finding FreeCAD hard to pick up, I highly recommend Mango Jelly's Youtube channel, which offers lots of really great tutorials on using it: https://www.youtube.com/@MangoJellySolutions


+1 for Mango Jelly. He's really fantastic.


I haven't maintained my Ender3 since setting it up first, then tuning it. It just keeps printing good prints forblike 4 years now. I don't even think about it, pop in the file and walk away. I don't even level the bed. Sometimes it's months between prints and it still just works.

I print mostly practical parts so perfection isn't really needed but the finish has been great regardless. The only issues I have had is the bed eventually peeled up after enough PETG prints with no bed prep.


> FreeCAD recently got to 1.0 and is quite capable

FreeCAD is capable and is indeed free, but as a beginner designing something somewhat complex it really led me into building a rat's nest of a project that I found difficult to salvage. The rough edges and general flaky behavior did not help things, and I found almost none of the user interface intuitive. If I had to do it over again I'd choose F360 or Onshape.


The main problem with FreeCAD is that editing a dependency tends to break the entire rest of the model. So, if you want to edit a dimension or add geometry in a part made very early in the "stack", you're generally better off remaking the entire model with the other item as a base in another tab.

This is not a problem F360 shares, and that feature is what you pay for.


What you are referring to is the "Topological Naming Problem", where the names of faces changed after operations (because OCC, the CAD kernel, doesn't name them at all!), causing mapped features to move or break.

There were always workarounds that made it possible to do what you say: you could offset your sketches from base planes rather than attach them to generated geometry, and otherwise avoid using generated geometry by making use of parametrics.

Once you knew how it wasn't particularly onerous. For a couple of years of 0.20 and 0.21 I had no TNP-related breakage because of this.

(There could be some problems with assemblies that were a bit more challenging.)

However, this is now essentially a solved problem in 1.0. There's a high level of mitigation in a stable face-naming algorithm that keeps track of the changes OCC creates. There are still edge cases being reported, but the implementation works well. I've stopped worrying about applying the normal base-planes technique.

(There are still edge cases of TNP in other CAD packages, even those built on Parasolid, because it's a research-grade problem; once you think about it in depth, it can never be "solved". It can only be mitigated to the point where the package usually does what you would expect.)

You can now sketch on faces, edit dependencies, make Pads and sweeps from solid geometry edges as well as sketch edges, refer to generated geometry in sketches, and see the subsequent features stay where they should be.

So this "main problem with FreeCAD" is essentially in the past, as it has been for a long time in the RealThunder branch where the mitigations were originally developed.

Another "main problem" -- the lack of a core Assembly workbench -- is also addressed.

The final "main problem" of FreeCAD, IMO, is that OCC's implementations of fillet, chamfer and thickness are less capable than other modern CAD systems; there are limitations regarding thick fillets on thin edges, essentially. It might be possible to get these improved upstream, or it might not be, but there are other ways to get fillets into your design (such as adding them in the sketches, where arguably any "functional" fillet should be anyway).


If your priority is to use open-source software, FreeCAD does the job. But I basically always recommend AGAINST it for anyone who asks me that I consider a more "normal" user. Normal in the way that they don't share my masochistic tendencies to spend all sorts of time and efforts getting open source tools to work, fighting through quirks, poor UX, bugs, etc...


>FreeCAD is capable and is indeed free

It seems to put off even people who are interested in learning CAD or are already familiar with CAD. It's telling that the best description people can come up with is "capable and free" instead of "easy to use".


It shouldn't, probably. Is it a bit rough around the edges? Yes it surely is. But 1.0 is pretty solid.

I don't know why it particularly needs to be the freely available thing that corners "easy to use", when Tinkercad does that admirably.

With a good introduction, you can get into it and really work on your own designs in a tool nobody can take away from you or nickel-and-dime out of your hands by varying the free offer. You can run it on all of your own hardware forever. And you will actually learn core things about CAD.

The community is good. There's an absolutely amazing number of good free tutorials now; the problem of bad tutorial material is a receding issue. I have not seen anything for Fusion 360 that even comes close to being as transparent, up-front, broadly educational, clickbait-free and informative as the Mango Jelly Solutions tutorials for FreeCAD.

I do consider it a lifestyle choice, still. But then so many creative things are open-ended, freely available/documented challenges, rather than easy. Many rich experiences do not have an easy entry point with early success.

I am a mostly very happy FreeCAD user. It is something that costs me no money but has allowed me to make tools unique to me that have changed my creative life forever.

All the same I'm about to pick up the Solidworks for Makers plan for a year, because I think it's always learning a thing from multiple different perspectives. I don't particularly expect to be swayed, but I do have future plans that involve being a bit more knowledgeable about the other packages. Solidworks is where I am going to start.


Did you have those challenges after the 1.0 update? I heard that update fixed a lot of those issues.


Workflows and UIs didn't really seem to change much to me, so I'd say the UX is still just as poor. I don't doubt they've made improvements under the hood and fixed bugs.


Many, many things have changed since 0.21. There's a radically improved UI themes system (and two new core themes as well as good support for OpenTheme).

There are pretty significant changes to the "fit" of the UI, better preference panels, but there are also significant improvements to UI and tooling in Sketcher, the TNP mitigations mean attaching sketches to surfaces is broadly as safe as it is in other CAD packages, you can directly extrude edge selections in Part Design, there is support (not enabled by default) for multiple separate solids in single bodies in Part Design, pretty major changes in the CAM workbench and architecture workbenches etc.

Most significantly in a workflow sense there's a new core Assembly workbench; combined with the TNP mitigations that is an enormous change.

https://www.youtube.com/watch?v=7Dj3p1nCmrE

It's very much not just "under the hood".

Still more things to fix -- lots of stuff has already changed in the 1.1-dev weekly builds.


The visuals of the UI improved, I noticed that, but that's not a UX improvement. Overall UX is the biggest issue, which to me, feels just the same as always.


Sketcher is considerably better, IMO -- it can do so much more. There's an integrated flow for Sketcher from Part workbench now, too.

(Gets even better in 1.1, too -- and there are new changes coming to the core datums)

I personally don't think overall UX is the biggest problem, if you're prepared to learn it. I've used much worse software than this, and I think a lot of people are just moaning that it isn't "immediate" or "easy". I particularly don't understand criticism of it from the OpenSCAD direction: that's often just misinformed whining from people who hate GUIs and don't believe they can offer anything over text.

Since the new Assembly workbench and the TNP mitigations were added I think it's on pretty solid footing; you can do many things more easily in Part Design now than before, based on geometry edges rather than sketch edges.

One thing I would suggest is using the tab bar workbench selector rather than the dropdown: for some reason that makes the whole thing so much more fluid.

The biggest problem is still, ultimately, robustness.


I’m only a dabbler in all of this but the thing that really grates on me about Fusion 360 is how its performance is awful no matter what you’re running it on. That might be a boon if your machine is very old or low spec, but if you’re running e.g. a well cooled tower with a Ryzen 5950x and RTX 3080 Ti you don’t want to be seeing issues with responsiveness, frame dropping, etc.


A1 mini is literally 179 USD


And excellently usable. I took it out of the box, tightened a few things where required and I think that was about it. Excellent bit of kit.


Fusion360 has a free tier and it's enough for most people.


The Fusion360 free-tier has been getting ever more restrictive over time. At the moment it is at:

> users who generate less than $1,000 USD in annual revenue and use for home-based, non-commercial projects only.

Which already makes it unsuitable for any Open Source work. While one might still accept those restrictions for quick one-off projects, those projects are also the ones that FreeCAD can handle fine.


and only 10 editable projects :/


Editable files! A project might have tens of files in it and you’ll find yourself having to toggle which ones are in the active set. It’s maddening!


I had no idea it was at this fine-grained a level.


You’re permitted 10 files - total - that can be editable at any one time.

For simple things you can have all your components in a single file and make do but I rather dislike working this way for a ton of reasons.

I’m thinking about solid works when my fusion license expires. At least I’ll own my files and be able to manage them on my own ssd.


Solidworks for Makers is currently $25/yr I think (discount code).

I'm a pretty happy FreeCAD guy, actually -- my issues are not FreeCAD but learning design -- but I will be trying it too.


oh man! I didn't realize - that's so much worse!

I'll reconsider the $24/yr Solidworks deal now...


Freecad is fully free and after 1.0 release it's enough for most people.


I switched off of Fusion360 on to OnShape when Autodesk started mucking around with the free tier.


I do a lot in amateur rocketry and took the fusion360 route. One thing that’s nice about it is its popularity. Whenever I have questions most of the other people in my hobby are ready with answers or guidance.


FreeCAD maybe quite capable, but I am not. I want something I can throw a few shapes in and print.


On this basis it’s difficult to beat Tinkercad, frankly.


123D Design was the golden age for accessible DIY CAD. Of course it was too good to be true so AutoDesk killed it off.


There was another bubble while Google owned SketchUp, I guess. Now no longer so freely available to so many people, because they sold it.


Thanks, I hadn't heard of that one.


Nice post, let me build up on the software engineering analogy.

I've had a 3D printer for a while, and I have to say that Bambu has completely changed my perspective on the whole experience.

Before, I treated it mostly as a time-consuming hobby - setting up my own Octopi for remote printing, tinkering with different settings and parts on my Prusa. It was all trial and error, with most prints turning out below average.

Now it feels more like a continuous integration system. It runs mostly unattended, always ready to execute my next batch of prints.

I recently traveled for a week and only needed my wife to refill the filament and remove finished prints, allowing my workflow to continue uninterrupted.

I don't regret my initial experience since I learned a lot, but I really appreciate having a more streamlined process now.


That has been my experience as well. I had a bunch of printers before the X1C, from 3 different countries, and all of them needed various amounts of tweaking and hacking to reach the print quality and ease-of-use I was expecting.

Even the Prusa MK3 (upgraded to MK3S, then MK3S+...) required a Raspberry Pi to be able to print without lugging an SD card from my PC to the printer, and a USB webcam to add print monitoring.

Now when people ask for FDM printer recommendations, I tell them that this hobby has two main paths: One path regards the printer as a tool to create things for other projects; the other path has the printer as the project itself.

An analogy I use is buying a car that's working and ready to drive vs buying a car that doesn't work and repairing it. Are you looking to drive or are you looking to fix/build a car?

Bambu printers are an easy recommendation for a printer which is a tool. The new Prusa CORE One might be a good fit as well, but it's still too early to tell what its quirks are. For printers that are projects, the Ender 3 comes to mind as a very cheap base for countless tinkering and upgrades.


> Now when people ask for FDM printer recommendations, I tell them that this hobby has two main paths: One path regards the printer as a tool to create things for other projects; the other path has the printer as the project itself.

This is undeniably true at the youtube content level.

But at the printer level I think consumers will crash into this far less if buying the latest. Creality’s three new Ender 3 V3 models are all low-tinkering models, even the cheapest. So are the Anycubics. Sovol’s latest machines like the SV06 Ace manage to be both fully open source and also highly tuned out of the box.

As much as I admire the build quality of (most of) the Bambu Lab machines, in real terms what they have actually achieved is making the closed source, closed build, hard to upgrade and repair, RFID-chipped-consumables printer acceptable to the market. They even almost succeeded in making printing dependent on the cloud, until their little distributed industrial accident happened.


Massive +1 - Bambu changed everything for me. I've been in the hobby for 10 years, built multiple Vorons from source & kit, and heavily modified multiple Prusa machines (Full Bear). Nothing compares to how easy Bambu made everything. My wife, who has seen me print for all that time without being able to figure it out, can now print items without hassle or oversight on the X1C.

Another way I can tell that Bambu changed everything is through second-hand market prices. Before Bambu, I could sell most 3D printers for not much less than I purchased them or more, depending on the mods. I just struggled to sell a Voron 2.4 300 for $800 (near $1800 build price after extras). There is still a market for enthusiast printers, but the leap in user-friendliness is known. What they provided for the cost was a vast market leap.


> and only needed my wife ... to continue uninterrupted

That's some sweet workflow optimisation. :)

I'd have tons more free time if I just outsource all the little tasks that keep me busy to my significant other.


Likewise, my Bambu X1C changed my 3d Printing experience. Prior to it, I was spending an insane amount of time on fixing my printer, testing my printer, trying to improve my printer. The Bambu just worked. It breaks my heart a little that the machine I use daily isn't open source, doesn't have open parts that I can just replace. But just a little. Because the printer keeps working, really well.


I just went through this journey, except I learned freecad.

You end up having to click and enter so many numbers if you need exact dimensions, so I'm planning on switching to cadquery.

It would be cool to make a framework for modifying cadquery code with natural language, for example "make box 1 and box 1 flush" or "create two concentric semi-spheres and subtract the smaller one from the larger one"

But idk, maybe once you're fast at fusion this kinda stuff is faster to hotkey than speak


Have you tried the new VarSet in 1.0? I found it more ergonomic than the old spreadsheet approach. With a formulas first approach, I find the modeling flow more controllable. Come to think about it, it starts to resemble a view/model arrangement I am used as a frontend dev.


VarSet has an incomplete GUI but you're right it's a better fit; it has fewer massive recalculation bombs than the Spreadsheet approach (and it can still AFAIK work as an interface to a configuration table sheet).

The Spreadsheet module is awesome (particularly configuration tables, which I used even in one of my first serious designs) but I still don't really know why my model has to recalculate because I changed the background colour in a cell. That seems to me to be unnecessarily deep integration.


Claude can write cadquery, worked well for me


I’ve had such a hard time with Claude and cadquery/build123d; did you do anything specific to get better results? I tried turning the examples into a markdown document to feed into sonnet as part of the prompt, and that helped a bit, but still couldn’t get it to build basic parts reliably.


Of course this title triggers me and I need to share/rant about my own programming struggles with CAD :) Sorry

Coming at the problem from another end, I have have been designing dream houses as a hobby but have been struggling and frustrated by the current CAD and 3D editors.

There are a lot of drawing-house-plans apps like SweetHome3D and Homestyler etc, and they are all really good at getting some wall lines down quickly, but quickly start to get hard to do anything advanced and all give up on real roofs and attics.

From the other end there is Sketchup, which is both good and easy yet also difficult to control.

The general advice for people wanting to see a house design in 3D is to draw the plan in some house plan software then save that as a jpg and import that into sketchup and then to build the walls on top of the drawing etc.

Of course, being a programmer, I had some ideas... and have about a dozen abandoned starts on a house drawing program that actually understands that 'this is a wall, and this is how thick walls are' etc.

The openscad approach is good and I have some routines that do sensible tricky roofing angles and things, but you can't really go and and parameterise whole houses. Its a nut that still hasn't cracked.

I've watched and talked with a lot of architects and tbh they are sketching and treating their CAD as a bunch of lines rather than the CAD knowing what walls and beams really are.


You have a few options: Freecad with Architecture workbenches. Rhino (used by most architects for exploratory modelling) *BlenderBIM (its called something else now)

If you're talking to architects and they're talking about Autocad, and lines...they may be of the old guard. Most large/modern projects are Revit based. TBH any engineering drafting in 2024 using autocad is ridiculous. Something which takes 1-2 hours in a parametric modeller can take a day! Co-ordinating architecture, project management, structural engineering, facade engineering, and MEP specialties is non existent in Autocad - Revit is built for this.

Revit is built to "know" and "understand"...is more or less the de-facto standard for building information modelling. If your pockets are deep enough - i'd recommend it - they have an LT (light) version which is more affordable and may do everything you want - but it's still pretty expensive for a fun little side project.


> If you're talking to architects and they're talking about Autocad, and lines...they may be of the old guard. [...] any engineering drafting in 2024 using autocad is ridiculous.

At least in my country, there are a lot of small-project architects.

You're converting a loft into a bedroom? Building an extension to your house? You'll need to do the calculations to make sure the beam holding up the roof is strong enough, and some paperwork so the inspector can see the calculations have been performed, and enough plans that the builders know what to build. Basic requirements that AutoCAD can take care of just fine.

And of course these small-project architects are the only architects 99% of people will ever work with - far fewer people will ever work with an architect on a 100+ person building.


Indeed - Revit is overkill for smaller projects :)


I used Home Designer - https://www.homedesignersoftware.com/products/home-designer-... to draw a house we purchased (built in the 1970s) and the changes we intended to make during a remodel. The person reviewing my permit application was very impressed that I showed up with proper plans and not some kind of sketch done hastily on a napkin.

It definitely tries to think about walls, rooms, windows, floors as they are meant to be modeled. You can even get a materials estimate based on the properties of the wall.


I think a bigger problem with these DIY home design apps is that you have no idea which ones are worth using or not until you've already bought them and then run into a road block they couldn't fix.


Actually, there was a start-up a while back which developed a system for just that --- parameterizing house designs completely so that end-users could customize designs to their heart's content. If you look up "Flood Editor" it should take you to information on it.

Interestingly, the company founded by the guy who developed the nailing plate which arguably made McMansions possible was an early investor in CAD, spending ~$1 million for one of the first systems.


Is paid software OK? Have you looked at Revit?


Revit is 3300€/yr... You have to be very rich to be OK with this kind of price for a hobby


A bit of a tangent, but on your note amount multi-material being wasteful - you can improve that a lot by thinking ahead in your design and being strategic about where you use colour.

Your benchy is almost a worst-case scenario (which is likely intentional) - because the coloured features are vertical, there will be several changes per printed layer. If you can constrain your material changes to layer boundaries you'll get a much better waste ratio.

A good example of this is printing coloured labels/features on a faceplate. So you print the whole faceplate in a single material, then switch material and print the highlight colour as raised features. That gets you a lot of result for a single material change. (On single-material printers there's a method where you strategically pause the print and swap the materials by hand. Learning lessons from that will really hammer home the mindset of optimising tool changes!)

There's a lot of lessons like this you'll pick up, where making your design sympathetic to the print process can have huge payoffs.


I agree, designing for 3D printing and more specifically designing for multi-color or multi-material can help save a lot of time and material.

Additionally, printing any number of copies of the same multicolor object will result in the same amount of waste. This doesn't reduce the absolute amount of waste, just makes it a smaller % of the total material used.

Also worth looking into the "wipe into object" setting in the slicer, which will use the color changes in an extra model instead of purging them.


I've been 3D printing slinkies (helical coils) and I used build123d for it. Somebody on HN recommended it as a first pass if you don't know CAD.

It's a little rough but I was able to get it to do what I needed it to! Here's my code: https://github.com/freeqaz/light-coil-model

Let me know if you want one. They're pretty rad!


Can you do other shapes of slinkies, not just circles?


I've seen mass-produced ones in various shapes. For instance, stars. OP probably could, not especially complicated.

Notably worse at the act of 'slinking'. Would tangle like no other!


Yes haha exactly. I'm sure I could figure out the code to slinkify any object which would be pretty fun

For a non-circle that still works for slinky purposes, I'm sure some sort of geometric prism would be cool. Maybe I'll take a crack at it over winter break!


I bought a Stratasys J35 and its just a bucket to dump money into... I mean it can print absolutely tiny features but maintinance and consumables are so expensive.

Meanwhile my colleague bought a Bambu Carbon for I think 2% of the price of my J35 and its such a brilliant machine. Fillament printers just seem to be getting better and better.


I had the same problem with my webcam and solved it with 3d printing: https://www.printables.com/model/370558-logitech-c920-shim


> [the webcam's] mount’s front-facing part dips too much down beyond the bezel, and it ends up blocking my screen.

As an old-school software engineer, I would've been strongly tempted to solve this excess material problem with a file.


I recently gave a talk on this topic though it was more focused on code-based CAD, and with extra emphasis on Rust because it was at a Rust meetup. But very similar vibes overall, I think there will be many software engineers picking up CAD and 3D printing in the near future.

https://youtu.be/0wn7vUmWQgg


Being on a budget and buying X1C with AMS has nothing in common. It's a bad choice. It's a really awesome printer that just works, but it's not a budget option.

If you're on a budget, buy yourself BambuLab A1M, which is the best quality-to-money ratio.


Did Bambu fix that thing where their printers need to be online and waiting for instructions from the cloud to be useful? I'm not about to send my designs through their servers.

https://arstechnica.com/gadgets/2023/08/3d-printers-print-br...


They fixed it in the sense that there's an opt-in offline-only print mode and they do work without a connection. It still requires you to do an initial setup using the mobile app, so if you're an offline-first kind of person, their printers are definitely not for you


I have been using Blender to design 3D models, since I had some knowledge of it. Wondering why not more people are using it for CAD. Are the other tools much better? Why?


You can get CAD Sketcher for Blender which might help.

But Blender is a mesh manipulation environment. Ideal for designing 3D models to go in virtual environments. Not awful for 3D models that are only going to a 3D printer, but fundamentally not the right tool for CAD for general manufacturing, because it cannot natively produce STEP-type geometry.


It's perfect for artistic stuff, but for technical you would rather use something that is oriented towards CSG (so that non-manifold topology is no longer an issue). Then you want edit tree, so that you don't have to redo all of the work to change one little thing in the beginning, and then parametric modelling and a constrain solver.


Blender is a bunch of things - but it is not, 1)a parametric program. 2)deals with complex geometry as mesh, VS nurbs 3) isnt really built to dimension 4)isnt really built for generating documentation which 99% of teh time is primary output of these programs - 2d sheets.

You can use it for 3d printing - but for engineering...nope. The Autodesk family of products / Solidworks are defacto for a reason - they have decades of tooling, libraries and so on that make lightwork of complex tasks. I'd tear my hair out trying to do my work in Blender which i easily do in Inventor, Autocad or Revit.


There are constraint based CAD addons for blender, and the black art of Geometry node rendering pipelines to auto-generate objects/features. There is also the fact most of the system is open Python API based, and thus everything can be generated from code.

However, Blender was not meant to be a constraint based CAD/CAM package.

Solidworks still seems like the leader in offline mode, but parametric-everything FreeCad is evolving at an astonishing rate.

For critical professional work, gambling on opensource is still inappropriate most of the time. =3


I'm keen on trying freecad 1.0. After professional training in engineering drafting, I'm interested to see if I can get by with a lot more understanding of the processes.


OpenSCAD is your friend.


Is it? IMO sticking with OpenSCAD is fundamentally limiting your progress with modelling for 3D printing. It's not CAD.

Simple parts, yes. Geometry and trigonometry demos? Yes. Actual computer-aided design... no not really.


The great thing about OpenSCAD is that it makes representing things which can be described mathematically easy.

The awful limitation of OpenSCAD is that one's ability to model in it is limited by one's knowledge of math and trigonometry.

The funny thing is, when it comes down to actual manufacture, ultimately, one is making G-code, which is limited to lines and arcs in most implementations --- so I'm approaching it thus by way of Python in OpenSCAD: https://github.com/WillAdams/gcodepreview


In some ways, but for off axis parabolic mirrors with internal geometry Openscad seemed to work fine. Additionally, the parametric formats are fundamentally necessary when working in plastics which tend to shift around during additive manufacturing.

I like that OpenScad integrates into FreeCad, and can do more than lousy STL outputs. It is far from perfect, but can solve some problems with ease.

Most cloud based software strips one of long-term stability in the design folder (can no longer store a version snapshot of the project binary dependencies), and so poses a liability to any firm running large infrastructures.

For one-off stuff, one could argue it doesn't matter. But in someways, FreeCad beside the project files will be viewable/exportable forever.

Unfortunately, now the Solidworks offline workflow also requires the online license nag screen every 30 days. However, it is not part of Autodesks walled garden built on internet stability (a significant issue in a remote field deployment.)

Good luck, =3


Oh I'm a FreeCAD person anyway.

OpenSCAD was a useful stepping stone for me, from programming to 3D. But I've been doing my own designs in FreeCAD for two and a half years or so.

I just think the typical groundswell of HN support for OpenSCAD is a bit misguided; it sort of relies on near-wilfully ignoring what GUI CAD -- even FreeCAD -- can do for one's designs.

Yes, it's good for simple geometry, and some more advanced mathematical geometry. But it boxes you in pretty quickly because you cannot easily compose geometry based on the outputs of previous operations.


The elephant in the room is the modular nature of FreeCAD. Unlike most cloud offerings, one can expand the capabilities with your own toolbox in a standard language like Python.

We actually recommended FreeCad as a core to a small medical device manufacturer looking for a custom solution to dynamically tweak their process. i.e. even a simple workbench plugin that takes a few variables to generate a simple manifold, and CAM to gcode in the same program... was a huge benefit for users now locked out of Autodesk and Solidworks walled ecosystems.

Ideal? No... Practical? You bet...

Best of luck =3


Right. I think if you’re not reliant on a few generalist operations where opencascade is weak —- it is not great at very marginal fillets/chamfers/thicknesses —- then FreeCAD is probably a good way to get programmatic, GUI access to OCC. It’s not the only way, of course, but it’s getting towards being stable.


OpenSCAD feels very dated, not only due to the editor and the fonts used, but shortcomings due to language limitations when coming from other software, but it works.


Also the fact that sometimes things can take ages to render.

I did have some fun results getting ChatGPT to create OpenSCAD scripts. It created a fully functional parametric christmas tree for me, which I thought was kinda cool.


how big are your assemblies? I had some issues on large assemblies but after Manifold rendering release it became much much faster.


There is also https://github.com/mirmik/zencad. Full Python and OpenCASCADE core, so feels less quirky than OpenSCAD.


I had much better experience with a VSCode and anOpenSCAD extension compared to the stitch editor. Pair that with the latest master build for extra performance.


Right now you can get a year of SolidWorks for Makers for $24.

If all you've ever used is OpenSCAD or OpenCascade-based software, you are in for a pleasant surprise.


I bought the Veterans' license for Solidworks a couple of times --- the UI never really clicked for me (fortunately, it was at least useful for my son to do homework with).

The one 3D CAD program which I was successful with, after a fashion is the nascent Dune 3D:

https://dune3d.org/

which has been discussed here a bit:

https://news.ycombinator.com/item?id=40228068

https://news.ycombinator.com/item?id=37979758

https://news.ycombinator.com/item?id=41975958


I’ve used openscad and some of my friends swear by it. I eventually just bit the bullet and climbed the fusion360 learning curve. Everything has been smooth sailing once over that hump.


>Parametric CAD is basically functional programming.

It very sadly is not. Parametric CAD does not have the invariants that functional programming has. If you insert an operation in the timeline, which changes e.g. the number of faces, the CAD software can only guess to which faces the operations after it apply. In functional programming you explicitly state which elements you mean, in Parametric CAD this is done by guessing.

OpenSCAD is functional programming, it also is orders of magnitude less powerful than Fusion360.


Fusion 360 has an API in C# and Python.

I use the Python API to write 3D modeling scripts for everything I 3D model. It takes a little longer to build up your own utility function library so you can make models quicker, but once you've got a solid utility library of your own, making 3D models with code is really easy and fun.


functional programming is such an (semantically) overloaded term, it means completely different things to different people. Each time I read it in a blog post/tweet it makes comprehension slightly more difficult.


In this case the poster is not actually going that far off the reservation.

A parametric CAD package starts off with some variables, makes 2D representations of them that can be solved by a constraint solver, extends those 2D representations into a third dimension parametrically, connects 2D representations to earlier generated geometry etc.

If you change an early parametric variable, it ripples through the design because the design is a directed graph (indeed, CAD designers often run into situations where they have tried to do things which would create a cycle in a graph -- use the dimensions of a subsequent part in an earlier part, which the CAD package cannot solve).

Most of the core calculations involved are functional in this regard -- for example a 2D sketch to a 3D extrusion, a 2D sketch to a sweep along a path.


When you start designing products with lots of gears and linkages, does animating/simulating your design become critical? What CAD tools are best for simulating your design, or is this even the right way to verify all your mechanical items are working together as expected?


This is pretty typical. The first step of CAD is learning simple solid modeling (i.e. producing 3d parts from sketches, features, etc).

The next step is assemblies and motion. Writing a solid modeling CAD engine is impressive, but kinematics and simulation is really the tough part (and why these CAD softwares are so expensive and so worth the money). For example, SolidWorks has a separate "motion study" package that you pay for on top of the solid modeling tool, a separate "fluid simulation package," to calculate stresses, drag, and so on on a part. Assemblies are also huge, most CAD programs have utilities for creating relations between different parts to figure out where screws, clasps, hinges, etc, should go where and in what order.

Many professional CAD packages also have things like mold tools, sheet metal tools, etc. that make manufacturing much much easier. You typically have a drawing tool, to create marked up drawings to send off to a machine shop for fabrication. Manufacturability is huge and mostly invisible to hobbyists who are doing 3-d prints. In general, software that makes manufacturing stuff easier, is where CAD packages capture the most value from their users. The manufacturing stuff is why you might pay $5,000 per year per seat for a CAD suite. It's also why they're not too worried about open source CAD, because the open source guys don't care, or know enough to care, how to add this type of value.

Finally, the big big boys (like CATIA and so on) have utilities to track part revisions, quality tracking, assembly and QC workflows etc. For when you need to manufacture hundreds of thousands of something, test it, have it fail in predictable ways, manage spare parts for it, be tracked and regulated etc. Those are generally used for stuff like cars and jets which have complex supply chains.


I did not understand what this was about, I why it was upvoted.

Anyways. I have solved the only problem OpenSCAD ever had. And that was -- you cannot tweak parameters just by pointing at them:

https://youtu.be/eG5lhLYvihQ?si=WiCnxahDx7_mJTrC


Hey, shameless plug in case you are interested.

We're building this AI copilot for Fusion 360 called MechAI. Like a SWE, it enables you to store files on GitHub in JSON format with diffs, merging, etc. ;).

Beta coming out soon, check out the demos and waitlist on our website: https://www.trymechai.com/.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: