FreeCAD: A free and open source multiplatform 3D parametric modeler
github.com
github.com
I have no CAD experience outside of what I learned in university over a decade ago, so it has been a challenge.
I have generally found it quite hard to achieve some simple designs, it's not always easy to understand what a tool does from its name, and it's not always easy to find a video online to help. Sometimes you know what you need to do, but can't find the tool for it because you have no idea what it's called in CAD land.
The bugs which cause parts to just disappear when you run certain operations are an issue, and there is little help to explain the cause, I've gotten a few designs into the broken state others have mentioned where you need to undo a bunch of work to recover, which is unfortunate.
On the other hand, I found creating drill holes, countersunk or counterbored incredibly easy and powerful.
I hope to find an up to date video series I can follow to learn more as I'm sure it'll become a lot easier to use once I understand the tools better.
1. FreeCAD — main 3D CAD (CAx);
2. QCAD — main 2D CAD (CADD);
3. SolveSpace — helper 2D/3D parametric CAD & CAE for daily engineering, sketching & relax.[0,1,2,3]
[0] https://github.com/solvespace/solvespace
[1] https://github.com/Symbian9/SolveSpace-Daily-Engineering
[2] https://www.youtube.com/playlist?list=PL53gPqUkbj3JndwS2T410...
SolveSpace has NO "limits in terms of CAD" (as SolveSpace 3.0 actually in active development, heavy rework & list of implemented features growing each week) — the only limits it has is that for creating _too_complex_ solids & assembly it just requires to use more tricks & more powerful PC ;)
Yep, I know. I use 'master' builds since SolveSpace became open-source.[0]
SolveSpace is my daily engineering tool during last 7 years ;)
[0] http://libregraphicsworld.org/blog/entry/solvespace-released...
When people say "CAD" they are talking about any number of technical things.
Say you want to insure a free form surface is a minimum radius connecting all other surfaces. Depending on the scenario, one may be able to do that in the software today, but doing it may require well above average math and geometry skills.
In "CAD", the skill requirement is much reduced, leaving the user more focused on requirements and overall design intent, not implementation details.
Just FYI, on what "CAD" often means to people.
One big "quality of life" thing that even OnShape is missing that Fusion has is the ability to dimension a line from another line, i.e. you can specify a dimension as "line_23 / 2", which allows you to do math with the other element as a variable. It's a pretty small feature, but extremely useful.
SolveSpace has a lot of constraints & this is a key feature of SolveSpace.
What "missing constraints" you talking about?
I was using lightwave a lot and it was obvious, depending on view it rotated the object. For CAD software it is some sort of black magic where one axis never works.
Currently playing with bricscad but I think that my disconnect with any of CAD systems comes from same root.
What type of rotation you mean? (part rotating/posing or "spinner"/"rotor" animation)
(Doing 3d printed speaker stand for 3d and I am workarounding this "issue" in sweat and tears ;) )
> Just turning the object on zx or zy axis
There are no such type of axis, because "XY", "ZX", "ZY" — are planes formed by two crossed axis combination ("XY" plane formed by crossed "X" and "Y" axis, etc.).
> Doing 3d printed speaker stand for 3d and I am workarounding this "issue" in sweat and tears
If you mean that you need just rotate solid object from horizontal to vertical (for 3D printing) — there are few ways.
This works well in OpenSCAD and I just saw that Slic3r displays a handy arrow in the 3D preview when you focus the text box that controls the rotation
Do any of these easily let you build a map from only the distances between two landmarks? I've been wanting to make an accurate map of the trees in my yard. That should be pretty easy to turn into a map using basic trig, but I don't want to do it by hand.
> FreeCAD has a 2D constraints-based solver (the sketch workbench)
Fun Fact: SolveSpace solver "libslvs" used by 'realthunder' for Assembly3 Workbench for FreeCAD.[0,1]
[0] https://github.com/realthunder/FreeCAD_assembly3/wiki/Build-...
[1] https://forum.freecadweb.org/viewtopic.php?p=204024#p204024
Use QGIS[0] or OpenOrienteering Mapper[1] (simpler than QGIS) app for any GIS/cartography/mapping tasks.
JFTR, GIS apps are "CAD for cartography"; FreeCAD/QCAD/SolveSpace are "CAD for civil engineering", but could be used for some GIS tasks.
Anyway, OpenOrienteering Mapper & QGIS are CAD apps You are looking for!
[0] https://qgis.org
This company provides Linux based software for front panel designs. I had their EU branch made several panels for me. The software was pleasant to use. File export seems to be only a proprietary format. Obviously 2D only.
So - I wrote my own tool/library in Go and it's essentially replaced my OpenSCAD usage.
That looks really cool. What kind of files can it output?
> SDFs make CSG easy
Can you share some more info about how this works?
CSG = constructive solid geometry: Take primitive 3d shapes and do unions, differences, intersections on them to build more complex shapes.
Fairly obviously the union of 2 sdf functions is going to be the minimum of those values. That pretty simple.
Intersections and differences are not much more complex....
See: https://iquilezles.org/www/articles/distfunctions/distfuncti...
for some quick examples.
MagicaVoxel — https://ephtracy.github.io/ — will work with your 3D printer & is closer to building sandcastles. It’s a simpler way to get started.
Once you go back to FreeCAD, open the Python console. You’ll see the code that goes with each step in the GUI!
https://medium.com/tech-notes-and-geek-stuff/install-magicav...
Not open source like the other options discussed here, but free for hobbyists.
The productivity gain goin to fusion was about 10 fold. I think onshape is even better tho. I particularly like the assembly system.
I find the learning curve for FreeCad to be steep. And once you get the hang of it a little bit, you start running into bugs.
For example, you create a cube, you make a hole in it (not fully through), and then you chamfer one side of the original cube. If you go back in the parametric history and change the depth of the hole for it to go through the whole cube it will change the name of the faces/edges in the history and the chamfer will then be applied to another face.
This is a very hard problem to solve, and that's where some commercial packages shines.
https://wiki.freecadweb.org/Topological_naming_problem
I wish onshape was open source, but I guess it will never happen because it uses siemens parasolid under the hood (at least I think it does). I don't know if FreeCAD can come close to something like onshape with the current gerometry kernel opencascade.
If so, then, uh, that's the problem of renaming the bound variables, it's an annoying one, but it has been around since the inception of λ-calculus and has several well-known solutions.
You have a code that creates an array A, and then later on code that does something to elements A[2], A[3] and A[5] - elements which you semantically understand as "frobnicators of A", and whose number and indices depend on the contents of the array.
You then apply changes to the first part of the code, and now the correct frobnicators of A to modify are A[6] and A[14]. But the tool used to auto-update the array accessing part has no obvious way to know that by mentioning A[2], A[3] and A[5] you meant the frobnicators of A, and not say the barbulators of A. So it cannot auto-infer that you now want elements A[6] and A[14].
Or back to 3D land, what I assume is happening is that when you cut a hole through a solid, what you mean is to cut a hole (in a particular spatial relation to the solid's origin), and what happens is properties of some faces of that solid get modified. Then you apply further modification to these (and other) faces. After that, when you start reparametrizing the hole you cut in the past, the latter modification has no clue what your intent was, and blindly applies itself to the same faces it used before.
I imagine the problem is not theoretically solvable without extra "intent-related data", and existing solutions are just a bunch of heuristics guessing what the person doing the modelling meant by any given step. Topology being one thing you can use to inform these heuristics.
The answer is complicated because if you have a chamfer on that edge, depending on how you split it, you want to have the chamfer on both resulting edges. So they both get a new UUID, but you have to modify the next operation to apply to what "was" the edge 1.
I illustrated that here: https://imgur.com/a/XR7sO59
Of course, that's exactly how I personally would expect the things to be done? You obviously have to propagate changes through all the operations further down the line.
2. chamfer edge_1. chamfered edge_2 and _3 are created.
3. sketch a rectangle on far side, extrude toward camera for 1/2 full length. edge_4 is created at middle of box.
4. do other stuff. lots of things come and go.
5. you changed mind. extrusion distance is changed so edge_4 goes past chamfered surface.
On Fusion 360 with History enabled, this will result in a progress bar and backend goes back to step 2. to re-do and re-compute all subsequent ops up to step 5. As the result there will be probably edges 2, 3, 4, 5 that now represent near and far side chamfered edges. If you've done something that presently don't make sense at step 4., Fusion 360 throws an error and leave half done objects.
Okay, now I understand the problem. It needs the History feature to be done right, and UUID.
That's a core feature in SolveSpace. Not full UUIDs but something similar.
The problem with CAD is - you don't know.
Previously you had:
[OK] create sketch_1 (a rectangle)
[OK] pad the sketch_1 into a cuboid_1 (face_1, face_2, ..., face_6)
[OK] create sketch_2 (a round circle) in the middle of face_2 (which is on the right side of the cuboid)
[OK] pocket the sketch_2 creating a round hole in the cuboid_1
Then you change the sketch_1 making it a pentagon instead of a rectangle. The tree becomes: [OK] create sketch_1b (a pentagon)
[OK] pad the sketch_1b into a cuboid_1b (face_1b, face_2b, ..., face_7b)
[X] create sketch_2b (a round circle) in the middle of face_?
[X] pocket the sketch_2b creating a round hole in the cuboid_1b but where exactly ?
There's no face_2 anymore - new side faces of the cuboid_1b are each in different places and at different angles than side faces of the old cuboid_1. You can decide basing on some heuristics, but that heuristics sucks in FreeCad and is almost never right.I only every used Free Cad so I don't know how other CAD solves this problem, I can see using a better heuristic (like the least change of the plane and distance of the sketch ? ) or forcing the user to specify which edge corresponds to which when editing a sketch that isn't the final one in the dependency chain.
You could also force the user to mark and name objects in the sketch on which other sketches can depend - and when you edit the sketch you'd have to set them up correctly after the edit.
I suspect that SolidWorks solves this by naming each face after, for example, the sketch line segment or arc that it was extruded from. But I'm not sure.
When something gets changed just go and find the place where the graph is bonkers and rebind the sub-tree to the correct parent object.
Could even have a fancy auto-generated UI à la Blender's node editor.
* If you're unsure about the project and/or community's stance on a feature/problem, sometimes their discussion forums can help
* If you have a precise problem or feature in mind -- which it sounds like you do in this case! -- finding/creating a bug for it and/or just commenting with your interest can help projects prioritize it
* If you're really motivated and have the time, digging into the source and attempting an implementation; often educational even if not immediately resolvable
* If you run into implementation issues (like the kernel-level concern), then GOTO 1 with the same escalation path for the design issue / dependency it relates to
It can take a lot of time and effort (especially if it ends up diverging into multiple separate issues at step four), but honestly when any of this process results in an open source project fixing a bug or introducing a new feature as a result, the sense of reward is well worth it.
All that said: I don't know if https://tracker.freecadweb.org/view.php?id=597 is the same issue, but it sounds similar and might appreciate your input :)
[1] - https://wiki.freecadweb.org/Topological_Naming_Project
But given the ability and opportunity to provide feedback directly to a software project, they'll generally appreciate it and it'll lead to better outcomes for everyone, even if it takes a bit more time up-front.
I haven't had time to look into it myself, so I can't comment how well it works, but people on other forums have suggested that it's more stable than 0.18.4 so I intend to try it out when I have some time.
That is one area SolveSpace really shines too, but there is no chamfer tool - you'll have to use a boolean to subtract that chamfer.
As discussed in related SolveSpace issue thread, "chamfer" feature could be implemented in same way as "tangent arc" (aka "fillet") already implemented.[0]
When designing, a lot of time is spent trying to model it in such a way that one dimension change will propagate down the line so you don't have to worry about adjustments causing something like two holes to misalign. It's super easy to miss small little things that would make the whole thing not work, so you design to avoid it. Essentially, the professional programs are setup so that you make basic shapes and relations and then put in your final dimensions at the end once the conceptual design is complete.
This is a shame because the constraint modelling is actually better than F360.
But they're still there. Just select them in the model window and press spacebar and voilà, they're back.
In fact the whole tree of your operations is preserved at all times, and you can do modifications at the very beginning of the chain without redoing everything.
If I print a simple electronics case and realize I have to move a hole 1mm in some direction I usually have to rebuild the entire box from the start. When talking to friends they all have the same problem. I want to love FreeCAD, but I usually end up hating it.
Then you can create a sketch with your features on the surfaces of the part, the sketch features such as holes(circles) connector cut outs can be placed based on a dimensional constraint. Extrude and cut your features.
Now you have a 3D box with your holes where you placed them; now need to move a hole change the size of the hole, its as simple as editing the dimension the hole is defined in the sketch, all the other features will update as needed, and you can layer the dependencies forming a feature tree dependency graph.
Should take about 10 min to create a pretty complex case enclosure.
Since it goes fast to make a new box it's not a huge issue. Just incredibly annoying.
But moving a hole should really be the easiest thing. A hole is usually a cylinder that has been cut from another shape. Select the cylinder, change its position, done? (No need to make it visible for that).
In Part Design you would move the hole by opening the sketch that defines the circle and changing the position of the circle.
Adding new circles presents a problem because then you get different internal names for the edges and the fillet gets attached to the wrong place.
Moving the circle can create a problem if, for example, you specified a 5mm fillet but now the circle is only 3mm from the edge and therefore the fillet doesn't fit.
Also there are certain design patterns that are less vulnerable to catastrophic model failures. Smart choices of booleans versus feature operations and ordering of these are key to a "robust" design.
Having waded through this process quite some times. I should really do a video tutorial on the subject...
Please do!!
Rhino is $995. Fusion 360 is $297/year. Solid Works is $3995 with an annual maintenance fee of $1295.
Let's compare them to photo editing software and the likes.
Adobe cloud subscription is US$52.99/mo (all apps -> Photoshop, Illustrator, After Effects, etc). If you only need Photoshop, the price is US$20.99/mo. Affinity Photo is $49.99.
Nah, we have good opensource photo editing softwares like Gimp and Krita, a good opensource vector editing software like Inkscape.
References:
https://www.autodesk.com/products/fusion-360/pricing
https://www.engineeringclicks.com/solidworks-price-guide/
Rhino is, in my experience, full of strange, hidden bugs.
Solidworks is fantastic but so expensive it's not worth considering.
Pretty pointless comparison.
Solidworks is just a random and insignificant piece of proprietary software. Its core component isn't even original, but relicensed Siemens tech. It's popular because it's popular, nothing else.
(Plus, anyone can throw together a jet engine with a welding station from aliexpress and a few car spare parts. Now, if you had said space rocket, it would have meant something, but that's an insignificant percentage of CAD usage.)
It feels like comparing bycicles to cars and saying look how cheap even this high-end bike is compared to these cars! Different products and use-case.
Further, even if photoshop is the technically more challenging product with more advanced features it has a much bigger market than CAD software thus naturally R&D efforts have less impact on the endprice.
Moustache Friday Speed Bike: €5800
Citroen Ami: €6000
One way to interpret this is that bikes are finally in direct competition with cars; in Europe at least, it's very possible that bikes will win.
Of course it's going to be more expensive. It does suck though. I wish Solidworks would do an affordable hobby license.
I guess I’ll be learning Blender!
Honestly given Autodesk's recent crippling of the free version of Fusion 360 I think the best option is really just to pirate Solidworks.
As far as I know, it doesn't have any features disabled but PDF and image exports will have a watermark saying that they are for noncommercial use only.
Which is, I guess, why it costs that much. The empirical measure of the value it creates, for me, is how much they can charge for it before I just do it myself. And Fusion 360 clears that bar.
It wasn't that long ago that AutoCAD was $1,995 (probably $3,500 today). And that was way cheaper than 'real' CAD software like Pro/E
Doesn’t mean that CAD software should be so expensive. It’s probably holding the field’s growth from outsiders back.
Now I'm using Solvespace, and I'm very pleased, almost never crashed, sleek interface, there is a keyboard shortcut for every function, I can easily go back to a previous sketch to update quotes, it has a short and helpful documentation, the more you use it the faster you can do things (specially when you know keyboard shortcuts). It has some drawbacks, it lacks some nice functionalities you can have with FreeCAD plugins like threads, easy chamfer and fillet. Also sometimes while drawing a sketch it goes in 3D constrains mode and I can't extrude, very frustrating.
Freecad lags compared to commercial, but gets you a long way if you're prepared to invest a little effort, and tolerate a few bugs.
I'm not affiliated with freecad in any way, but just want to remark if there are any students around (or anyone with a little time availabe) reading this with interest in both engineering and software development, contributing to freecad could be a very rewarding experience, and probably good basis for a project or thesis.
FreeCAD like some other CAD software uses Open CASCADE. As far as I can see, this kernel is the best available but still a bit rough and unstable in many areas. (Operations like chamfering often lead to a segfault when it doesn't like your geometry.) The main problem seems to be a lack of manpower since development of such a software is a massive effort and takes decades of work of highly skilled mathematicians/engineers/programmers. So far, FreeCAD has made a lot of functionality easily accessible but often it is also held back by bugs in the modeling kernel that can't be fixed any time soon.
If we could boost the development of high quality geometric modeling kernels, we could provide an essential building block to many software projects that currently are just not happening because there is no feasible way to get them started.
The problem I see is that complexity goes up a lot if you go beyond the most basic shapes and operations. The upside of that is that if you manage to keep your problems very simple, it's quite easy to make a new geometry kernel that supports your subset quite cleanly and efficiently.
Point of reference. I interviewed with a large CAD software company some time ago. As I was being shown around, the interviewer pointed to an area with maybe 8 developers, and said that was the team that works only on fillets and blends.
One of the key differentiators of high end CAD is how the packages handle edge cases (pun intended) when you have massively complex topologies. It's relatively easy to handle most cases, but there is a long tail of really tricky situations, and that tends to be where the high end tools shine. It's going to be really tough to compete with that given the investment required.
For example being able to define a cabinet side length as the outdoor dimension minus twice the side panel thickness allows you to decide wood thicknesses after finishing the design without redoing everything.
However, FreeCAD seems to be highly unstable on macOS and Retina screens are not supported very well.
One note about Sketchup is it encourages choosing standard sized items from the parts library. Choosing from the library (for example, choosing a standard 2x4 board or a standard door) means you’ll find real-world equivalents at Home Depot & avoid a lot of cost.
As an engineering tool, though, it still feels rudimentary (and sometimes buggy) compared to e.g. Solidworks. Keep going, guys!
I am a software dev for a living so what I mean by low brain space is I don't really want to be messing about with config files, setup and complicated UIs. I already have far too much brain space dedicated to Blender, but I just can't seem to get it to work well for precise measurements and CAD style work.
Also (opinion) it kind of sucks. At least the gratis version doesn't support any sort of parametric modeling. I've been using it because it's gratis, but I've been looking to switch for a while. Now that F360 is off the table, I suppose the decision space has gotten smaller.
I believe the popular route is Fusion. (Decidedly NOT open source)
Here's an example: say you want to punch some holes to mount components on a chassis. Say, furthermore, that you want to mount those components at an angle.
Here's what you do in Fusion:
1. Draw a sketch.
2. Rotate the component on the sketch about its center.
3. Subtractively extrude holes through the chassis.
In Fusion this is trivial and natural. Believe it or not, FreeCAD does not support #2. Want to mount several components at different angles? Fuck you, you need to draw each one of them pre-slanted already.
Select the object, set orientation in Placement / Axis / x,y,z
- Create a square via the CreateSquare[0] icon
- Put the lines as construction line
- Constrain the holes to the corners of the square.
- Add an angle constraint on one side of the square as you need.
It's easier than constraining your holes on a rectangle on which you have to replace the horizontal and vertical constrains afterwards. And you get to keep all those parametric variables that make changing something afterwards so easy.
In your case one can for example use use the NormalToEdge map mode, specify the degrees of Roll, and then use a Pocket operation on the sketch to make the holes at that angle.
I had to 3d print something recently and was very happy with OpenSCAD. Not only it is scriptable, but it is script first (and only), with a very simple syntax. For people who write code already, it's a much more natural approach in my opinion. You can create functions, loops, parametrise, comment out part of the code, etc.
So you need to import to some other program and export from there. That's how I got into FreeCAD. But once you're in FreeCAD you realize you can do everything there.
There's a whole fillet / chamfer library using masks and such, but I've found that you can go a looong way with just basic shapes that start out chamfered/filleted, and unioning and differencing them.
The Part workbench makes you create your object using CSG primitives which you size and position using the properties editor, which is just super painful.
In Part Design, you create sketches of 2d profiles and then pad them up, pocket them in, revolve them around an axis, sweep them through a path, etc.
Part Design just seems much more convenient and powerful.
The only thing you can't do in Part Design is create 3d paths like helixes, but fortunately you can create these using the Part workbench and still use them as paths in Part Design.
(If you haven't seen that, and you have projects in F360 formats you're assuming you'll be able to export - you might want to go export them all into some other format now, while you still can...)
Luckily my not trusting web apps means I am already backed up in non autodesk formats. But exactly why when sketchypoved to wrbapp I said I wouldn't trust it
It doesn't help that each version gets a lot of superficial UI changes so tutorial videos will often get you part way then some menu option no longer exists and you're stuck.
I plan to try SolveSpace next as it seems to be a lot more stable - though in principle also a lot more limited.
It uses lua to be scriptable much like openscad, but it's got GPU support, so you can also describe surfaces as signed distance fields - in shader code...
It doesn't seem to be open source (yet?), but there are contributors listed [0] (it came out of inria, the french university, sylvain lefebvre being the lead dev[1])
Check out %appdata%\IceSL\icesl-models or thingiverse[2] for examples.
edit: formatting
[0] https://icesl.loria.fr/about/
[1] https://www.antexel.com/research
[2] https://www.thingiverse.com/search?q=iceslIt seems to be mainly a slicer, so maybe the non-open part is just the slicer? Some parts are open and available on their github account: https://github.com/shapeforge
Fusion360 used to be free but that appears to be ending, also cloud-based lock-in(files are on server).
freecad used to be quite buggy, but latest versions are quite workable.
I mself started with one or 2 tutorials in fusion 360 (they appear to be more clear to me compared to the freecad tutorials, and concepts are the same). Then switched to freecad, and this seems to work fine.
The parametric sketching (although a simple concept) took for me the most time to really grasp and understand the significance.
I haven't used it but it's been popping up in other threads since the licensing changes for Fusion360.
Bear in mind, though that everything else (Microstation, DraftSight, etc.) Aren't much better. For a problem domain like roadway design, the difference in productivity between something like freeCAD or LibreCAD and AutoCAD Civil3D is like the difference between having a printing press and a lump of charcoal. I really admire the effort, but there is a moat between industrial and FOSS software for the AEC industry that takes more expert developers and more man-years than hobbyists can provide.
* FreeCAD - Very powerful, very buggy/unstable.
* SolveSpace - Very powerful, takes time to understand the interface.
* OpenSCAD - Great for simpler objects.
* Blender - Not very good for CAD modeling, but with non-destructive modifiers and the new Extrude Manifold it can be used.
Personally I use Blender all the time for 3D printing. There are some tricks that can help a lot with precise modeling. For example you can draw a plane, but instead of extruding it you can use the solidify modifier to give it thickness. Then the thickness is non destructive. You can also view all edge lengths which help you to check if everything is ok. Since v2.9 you can now use Extrude Manifold which is not precise but works a little like Sketchup making some modeling much easier.
And a lot of time my workflow is: Create something in FreeCAD/OpenSCAD -> export to Blender (STL) -> add finishing touches -> 3D print.
Updates come with annual maintenance, roughly 20 percent of license.
People can and do get a license and just run it for a long time.
This is unlike, say, Excel 2007, which can export .xls files that Excel 2000 can read.
The other thing people should realize is all the CAD tool vendors are generally funding complex PLM / PDM system development necessary for larger scale users to operate on large products and across many teams. This is a significant portion of annual license fees.
As a small team or individual, one can use STEP. Now, admittedly the ability of Solidworks to work with STEP files is limited. (I would not want that job)
Personally, if I were going to get a license and just run it, I would get a system much more capable in that area. NX, as an example, is excellent, and I know many who have older licenses who do a lot of work just fine that way. Most everything can be done, and the skillset is not unlike what we use in some of the open CAD systems.
A native file is not always required when the modeler offers direct modeling as well as parametric. Just FYI.
Finally, anyone needing to interact with CAD needs to build license costs into their rates. It's too expensive to do otherwise.
Let the work pay for the tool.
If you are the source of designs, use whatever you want to use. Downstream users will either need STEP / DXF / PDF / STL, or they will have your version or newer, or their system can import, or use a Parasolid, ACIS, whatever type of file.
If you are a downstream user then you need to know where your work is coming from and whether you can price software in. On this note, buying into an annual license of Fusion or OnShape is a great translation service as both of those will write out respectable STEP and Parasolid files. Translation licenses are super expensive.
Or, you need to invest your skills into systems that are adept at non-native data. These skills are extremely high value BTW. Getting them is great for a resume.
Then price and purchase accordingly.
For learning / personal use, get the academic licenses.
In that case, there really is only a couple paths: (and flat out, Solidworks isn't the best for this kind of thing)
If the volume of work is serious, invest in systems. This is rare, but sometimes necessary.
In many cases, invest in one that is very adept at non-native data. There are a couple pretty good ones out there. KeyCreator is actually quite good for manufacturing related tasks. For more involved tasks, NX is great on the higher end, but not cheap. That one offers all possible model paradigms too.
Parametric, history based.
Parametric, non history based (synchronous)
Direct Modeling, with history
Direct modeling, no history.
It can do the job period. But, isn't cheap.
Collaborations often default to who has the most restrictive environment, or priority in requirements and the other members deal, or there is some time spent integrating design work across systems.
Intent is difficult to preserve in this scenario. Often, there will end up being an owner of that.
BTW: Subscription licenses can get someone through a collaboration at a very significantly reduced cost.
That's the option I would use myself, given I didn't have access to a sufficiently capable system. Do it, export non native, drawings, reference geometry, etc... Express detail intent in Excel + 2D drawings. Basically make a reconstruction kit for the future and call it good.
Also export native files on the off chance a resubscription makes sense. It can, depending.
Over the years, I've accumulated a lot of understanding of basic geometry and means and ways to work on STEP, Parasolid, Surfaces, Solids, drawings, etc... Paid off many times.
Edit: The other skill to seek is being able to use basic tools where needed. Advanced modelers have a good and bad aspect to them. Every time someone clicks one of the advanced function buttons, a lot of money will eventually be spent. So don't click those buttons! The resulting designs are likely cheaper and manufacturable in more ways, all of which is an advantage.
I can tell you some names you would recognize did great product design on basic licenses. Doing this in very robust software is different than doing it in something lower tier. People have a lot of options when the basic capability is robust, offering all the modeling paradigms. People may want it and have reasons, but do they really need it? No is the right answer more than we may realize.
In short, role flexibility is expensive, or requires having made an investment in a highly technical, niche skill set.
Limiting that can actually save money, depending on what software is in play.
There won't be great answers very soon either. There are some efforts in progress right now. Half a decade to a decade from now, this chat may be different!
1) Open CASCDE geometry kernel, this is the heart of the cad system, for example Solidworks uses the Parasolid geometry kernel; which is owned by Siemens.
2. A powerful data structure; the feature tree that FreeCAD has is object oriented, and capable of adapting to complex tasks.
3. GUI written in QT, with a Python interface to instantiate the GUI. This allows you to load FreeCAD while in Blender and vice versa load Blender from within FreeCAD; this facilitate the sharing of geometry data, meshes, the OpenGL geometry pipeline, etc.
4. Support for Jupyter notebooks, this is important when you are doing analysis or something complicated and you wish to share and publish that data. Using SciPy , NumPy, and Octave its like running Matlab + CAD, its so powerful that you can drive simulations this way directly effecting the FreeCAD GUI.
5. BREP Internal data structure, in fact when you save a .fcad file extension, that is essentially a BREP file format, which is essentially a STEP file(a type of BREP). This is essentially what the professional CAD packages do, they are BREP with custom data structures.
6. BREP + STEP allows for extremely precise importing of model geometry. This allows you to download parts from McMaster, Berg, Pic Design, SDP, etc and use them in your design and generate a BOM from the precise part bing inserted.
7. Support for different mesh tessellation methods, this is important since working with manifold topology that is held internally by Open CASCADE or STEP can be non trivial mathematically to interpret.
8. Runs on Linux, OS X, and Windows natively.
9. Open source, so you are in control of your own destiny.
While FreeCAD has some rough spots around its edges currently, where it will he in the future if we invest our collective brainpower and knowhow into will far surpass any offering from Autodesk, Solidworks, as the rate of evolution of OpenSource compared to closed for profit systems is much more limited. We can as a community experiment with edgy things and push into new frontiers with our creativity and imagination and disrupt an entire paradigm the CAD industry uses today.
Blender already has advanced support of GPU real time ray tracing supported on the most recent GPU offerings, and is able to harness massively parallel compute for rendering and ray tracing. We can harness those same capabilities for an open source CAD platform, and use the GPU compute for the FEA capabilities.
FreeCAD has all the parts to be awesome, it just needs to also work on the user interface, and especially the novice experience.
This is a universal feature of open source, where unless an individual contributor has an individual bee in their bonnet about beginner UI, any given user interface is just slightly less bad than is unusable and would force someone to fix it. Any 'rough edges for beginners' are ignored because by the time anyone cares enough to fix the rough edge, they're already an expert and have found the workaround.
Both Dad and I use it at home for our 3D printing modelling, however at work I get to use SolidWorks and previously have used NX. Compared to them, I think the most common pinch point for me is how segmented sketches vs extrusions are. In Solidworks, you literally click a surface (plane, surface face of parametric solid, etc.) and just draw. Then you grab it and pull it out. It automagically does all the line constraints, etc. and there's not quite the same degree of separation as FreeCAD requires, where I have to make a dedicated sketch in one area, then switch to the other area to do the extrusion of it. Indeed, this sort of UI polish seems to be where most of my issues lie, rather than specific features missing.
I get the suspicion that the people working on FreeCAD are probably the ones who really enjoy writing an elegant parametric modelling program, so they're all about the engine and the UX becomes a little bit of an afterthought. That's not to criticise them, but rather highlight that a commerical entity is able to pay money to get all of those 'less sexy' jobs completed to a high quality. It's a timely reminder to me that there's a requirement for all types in a community project, including people who aren't the flashy wunderkind producing the sexy engineered solutions - you just as much need the person who puts in the hard and thankless work making all the documentation neat, logical and consistent.
Nevertheless, I don't think I'll be paying for a SolidWorks licence at home anytime soon, so I'm really appreciative of everything that the FreeCAD team has done.
edit: To be clear, if you're wanting to learn CAD then FreeCAD is an admirable choice and will teach you well. Indeed, some of the extra steps it requires is probably good from a learning perspective, because it makes you think through the process more completely and logically. In that sense, the handholding and coddling of some of the more sophisticated commercial packages can be detrimental, because you don't really learn how every part goes together specifically as you're developing your model.
I definitely don't mean any of my post to come across as criticism meant to deter anyone from trying FreeCAD. I was more trying to draw out the broader point that all too often, volunteer projects suffer from someone not doing 'the boring job', because using FreeCAD vs. commerical packages reminded me of that insight.
It occurs to me that I might be really wanting some sort of hybrid Part and Part Design workflow, and that might be my issue.
For example, in PD I go sketch > select plane > sketch a shape > pad it to 3D. Then I want to extrude a 2nd section out of one of those faces, so I'd in SW click sketch, and click the face. However, I seem to only be able to click planes.
I'm sure there's a way to achieve it, however in SW it is trivial - if I click a surface with any of the sketching tools chosen, it (correctly) guesses that I want to sketch on that surface, using that surface as the X-Y plane (and thus extrude using a normal from that surface) and will automagically fill all that in. I guess that's the main thing I'm getting at, which is why I said it wasn't a criticism of FreeCAD per se.
The problem is that if I want to change anything in a sketch that is higher up the dependency chain - it breaks all the sketches/objects depending on it and you have to fix it by lots of manual steps. This makes the workflow feel bad because you're afraid to change stuff earlier in the chain so you add stuff later instead of just fixing it properly.
I work on the underlying libraries and tools.
I was forced to use Solidworks last year, as part of a training course, and I didn't like it at all. I have some Autocad and 3dsmax experience from admittedly long ago, but the way things are done in Solid felt weird and alien to me. Not to mention I had to use a Windows machine for it, and after removing it, it had still left its DRM tentacles deep in the system. Had to pave the machine to make sure it was all gone.
Solidworks is terrible and chock full of antipatterns. I haven't used autodesk in a good long while--my last memory with it was pretty bad. I was on a team that won a design contest from Autodesk--the prize for which was a laptop pre-loaded with the autodesk suite. The kicker was their software crashed regularly on that machine even under light use...
1) Most packages don't have any included standards libraries; this makes modeling a standardized drilled borehole a much more involved affair. It makes hardware provisioning a more involved affair. Much nicer to have included libraries for things like, for example, a #6-32 UNC bolt. No need to go find a bolt and bust out the calipers to verify things like shoulder width and so-on, it's just there. The F360 and Solidworks parts libraries are both great. Nearly non-existent on the free/cheaper alternatives.
2) Most CAD/CAM software I have ran into deals with high poly models terribly. Sure, the solution is to simplify the models, but it's just not a feasible goal when dealing with very complex assemblies. Fusion/Solidworks deal with high polygon stuff as gracefully as possible. Onshape becomes nearly unusable. Freecad gets unstable. I can't comment on complexity with openscad, but it dealt with modeled parametric bolts and nuts just fine in my case; a case which lags most clients due to the high poly count on bolt threads.
3) THREADED HOLES. F360 and Solidworks can deal with standardized threads with ease. Onshape requires a buggy community-written add-on where most standards must be defined rather than found in a look-up table. OpenSCAD has lots of do-able thread solutions. Freecad sucks at threads, as far as i've learned thus far.
So, still, the search continues.
If I had all the resources in the world i'd buy a Solidworks license. I just like it the best, the simulation packages are nice, the libraries are nice, the UX is nice -- it just feels like quality. Too bad I can't afford it.
They were nice enough to let me have a trial license for awhile, but after expiration I was driven to F360 -- which due to recent decisions they've made I totally regret.
I wish SW had a free/low cost option, but I recognize that if they did it'd probably compromise the product to the point where i'd no longer be interested, as much as I hope otherwise.
I use Solidworks professionally and prefer it but the above program isn't in my region. I'm starting a side project and need CAD. Solidworks starts at like, $5000 plus $2000 per year and if you don't renew the license, you either have to backpay all renewal fees you missed, or buy it again. Actually it's double the price in my region. Their reseller program is awful too.
After checking all the options you've mentioned and more, I decided to use solidedge. It has a monthly option starting from about $100, direct from Siemens, that can be stopped and restarted without penalty. And I feel really good about supporting this licensing scheme as all the others out there are just awful.
For FEM I think I will use a Siemens FEMAP/NASTRAN. It's $700 a month, with the same good license terms. I could batch my work that requires it to 1-2 months per year. There's even cheaper ways to use it in a cloud service too.
I would maybe try onshape but I don't like the idea that I'd have to pay forever if I wanted to maintain parametric files, or live with exported solids whenever I stop the service.
They are reducing the features available in the free version. This is actually a good thing, as it is forcing users to either go commercial or get behind the actual Free Software alternatives.
I’ve logged probably thousands of hours in each Solidworks, Pro|engineer (now creo) and onshape (current favorite), so I’m familiar with the productivity costs of switching to a new program.
The inefficiencies of FreeCAD is way beyond any switching cost, probably 5x less efficient to design and iterate.
The bugs are there but you learn to work around them easily. And it's not like commercial software is bug free as probably anyone dealing with video editing can attest. ;)
It's very functional (as in functional programming) in its approach. Weighs in at only a few megs. It's my go to tool for sketching things out when woodworking.
Woodworking may not require the same set of features, the same level of precision ... For me, doing one shot projects, it is all about "test fitting" the design, the joints, the cut list, etc.
I find 3D modeling and CAD tools usually complex, time consuming, expensive with stupid plans and they also take the life breath out of creative projects. Were I a professional, I may rationalize the time spent and their value if I had to repeat the same jobs.
I get most of what I need from paper / iPad sketching app (I recommend concepts app). I had to learn to draw and sketch, but it feels more related to building than modeling.
Freecad is definitely complex to use (I spend hours learning by designing dovetailed drawers). Openscad was a better fit for me. I could even integrate it in org mode :)
1. design in FreeCAD (I only ever use the "Part" menu -- NOT "Part Design")
2. export to "STL" format
3. import to Ultimaker Cura
4. export to gcode
5. load into printer and print
If your computer is directly connected to the 3D printer you can skip steps 4 and 5 and print directly from within Cura.
FreeCAD can export to gcode but Cura does a much better job of setting printer options such as infill, etc.
I'm really no expert, I only print small items for prototyping, on a sub-$100 printer, but I don't find it hard. It may be way more difficult if you're trying to print "perfect" pieces for end use though.
But you can design in FreeCAD with the same approach / workflow as in OpenSCAD: make elementary shapes, extrude them then join or cut them.
This can be done in the "Part" menu. Just click on the yellow shapes on the left of the toolbar to create them, then go to their properties to rotate/extrude them, and select two or more to join or cut.
This is the same brain process as in OpenSCAD.
Solidworks is the standard, but the price is crazy (from $5k to $10k per user per year).
The online tools I tried I found to be much less usable than FreeCAD. But I only design simple pieces, so my needs are easy to meet. It's possible that for complex parts FreeCAD is too limited.
Unless you need parametric design, want a GUI, and won't use closed source, FreeCAD is not a good choice.
2. take picture of it
3. import to Photoshop
4. hit "auto correct"
5. open Twitter app and send it
I think the advice to use Part instead of Part Design is what makes people think FreeCAD sucks. Did you mean to say the other way around?
https://www.youtube.com/watch?v=geSQlBczsWY
After that and a couple weeks of playing, I upped my skills with a "household thing a day" monthlong challenge:
https://twitter.com/hashtag/30DayCADChallenge?f=live
From there, you can export to STL for printing.
I've recently gotten into Blender for taking STL exports and adding lighting, materials, and animations. I started with it with this bonkers good free (for email) video series:
https://www.youtube.com/playlist?list=PL3UWN2F2M2C8-zUjbFlbg...
There is an incredible amount of outstanding stuff out there, often for free. My advice is to find something that resonates with you and run with it.
https://www.youtube.com/watch?v=czj1RYx8LyI&list=PLKu--JcOZK...
-how do you make assemblies out of parts (sugar on top explosion function) - derive a technical drawing from the 3D model I could sent to the milling shop
Point 2 is a dealbraker.
I couldnt do it. Maybe it is me. Maybe I didnt find the right documentation, maybe I didnt understand what I am looking for.
Using TurboCad now, not saying I am happy (docs are lacking, but it seems you can buy training)
(I didnt use version 16 at that time)
But see leoedin's comment: TechDraw might be better suited now.
There is a project to build one true assembly workbench - but these things take time. https://wiki.freecadweb.org/Assembly_project
Regarding point 2, there's a workbench called the TechDraw workbench which allows you to make technical drawings. In my experience it mostly works, with a few quirks and annoying bugs but nothing deal breaking.
> I liked how easy it was to define constraints between the parts. Unfortunately I found that if I changed any of the parts in any way, then when I updated the part in the assembly, A2plus had lost track of which pieces of geometry were supposed to be constrained. This is very annoying and means you need to redefine the constraints for a part every time you change the part. I read somewhere that A2plus is best used when you have already committed to the design of the parts and you just want to assemble them together, but that is not really a useful workflow. If I've already committed to the design of the parts, I can just print them out and assemble them together in real life!
I love FreeCAD for the Python API, and the now-integrated FEM workbench. I've done some fun CFD work with this.
I like Fusion, but I do fear a web-based-only CAD. For this reason, I am looking at Alibre Atom for $199 for personal use. It seems really polished, easy to use, and it has been around for a while in different incantations.
Solvespace is great for four-bar linkages and other geometrical work, but there is no way I could spend the time doing a three-hundred part assembly when I could do it in Fusion or Inventor in much less time, and it could be shared or worked on by others more readily. Solvespace is amazing for what it is, and I will continue to use and follow it.
But, Training Users to use FreeCAD also matters. Also,it would be nice if FreeCAD can read/write AutoCAD files.
https://github.com/FreeCAD/FreeCAD/releases/tag/0.19_pre
Bug trakcer [1] says you can only report bugs for 0.19 version, so using an older version isn't an option.
Also, FreeCAD interfaces to other tools, whereas OpenSCAD is very standalone.
If you don't like the OpenSCAD Syntax, I found solidpython quite ok
* You write a script that calls the functions to build the geometry. (Similar to LaTeX vs. Wordprocessor)
* The geometry is defined as a mesh. (Similar to Blender 3D for modeling.)
FreeCAD:
* While it can also handle meshes, the geometry it actually uses a geometric modeling kernel that knows spheres, cylinders, bent surfaces. For 3D printing you would convert it to a mesh when exporting to an STL. (This is a bit like vector vs. pixel graphics.)
* While you can do everything with a script (and sometimes that's more easy) it provides a classical CAD interface where you point and click with your mouse.
* There's a ton of additional functionality via plugins available such as FEM simulation, Architecture, CAM, ...
All I know is javascript based web development so am quite lost on where to start. Tring to google only brings up general purpose CAD tools. Any ideas on how to go about it?
* https://news.ycombinator.com/item?id=24514978
There was a presentation at SCALE 18x earlier this year (pre-shutdown):
I know a number of architects who are dead set on using Sketchup versions circa 2014 - 2017 for most of the preliminary work.
It seems to fit their workflow the best.
They only go to AutoCAD when absolutely necessary.
We are talking architects with 20 years of AutoCAD experience.
Or is yet another set of free beer posts?
I will definitely soon though, I am working on making a parametric trumpet mouthpiece model for 3D printing, which what I have gathered so far FreeCAD seems great for. The most difficult part is really finding accurate measurements for sizes and curves, most tables and info only uses relative sizes like “large” or “thin”. But I can just trace some splines from cross-sectional sketches.
I have made a model in Fusion which is pretty nice once you get the concept of constraints. But then there is the massive price tag, the free tier does as mentioned not allow commercial use. Nobody has to know though...