I started using FreeCAD recently after getting a 3D printer, because I wanted something open source and runs on Linux which I could learn, and would become my CAD tool.
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.
> As I'm working with CAD for a long time, I would recommend to install next three FLOSS apps (keep them all side-by-side on your PC):
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.
> 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.
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!
They're not really the same thing. I haven't found GIS apps to have the _parametric_ abilities that would allow the GP to perform the sort of constraint-based modelling they desire.
Get an older Garmin Etrex with a digital compass. These models have a sight line on the housing. You use this to project waypoints along a heading. If you traverse a base line and make two projections beyond the tree you will have four waypoints. The target will be at the intersection.
May I ask a stupid question, can you explain how rotation works in any of those? All three axes...
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.
I think of rotation about any axis as if I inserted into the object a skewer along that axis, and rotated the skewer. For example, rotating an object laying on the desk is achieved by rotating about the Z axis, since the "skewer" is pointing up along Z axis.
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
Just turning the object on zx or zy axis (for freecad or bricscad - same issue - probably some bad ux copied from autocad). Rotation, as simple as that, center axis or any selected point. Lightwave modeler with its 4 views was understandable (always rotating on xy axis for current view) but freecad (and bricscad) is making me problems understanding how this actually functions in same manner as initial orientation of set object, i just cant figure out the logic.
(Doing 3d printed speaker stand for 3d and I am workarounding this "issue" in sweat and tears ;) )
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.
Well sorry cant explain it better (i lack the terminology, just started playing with) but looks like UCS is involved... Thank you anyway will try to figure it out on my own.
SolveSpace is quite fantastic as a technical achievement, but it's rather limited in terms of CAD. It's great for simple designs or just messing around, though, I'm very impressed.
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 ;)
I just took a look. It's really good. But, yeah. Has limits right now. The plan is to obviously make more possible, and a whole lot is possible right now. I know I could do a ton in that software and didn't know about it. Cool!
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.
Yeah. This is the a similar problem with alternatives to 2D AutoCAD replacements. 2D CAD application can pretty much all do the same things. However, most of the really useful productivity features such as dynamic blocks, sheet sets, constraints etc. are absent from the cheaper or free alternatives.
I'm a hobbyist, so I don't care if things like finite element analysis simulations are missing, but I do want basic things like constraints, some of which I think SolveSpace is missing.
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.
Thanks! I had similar issues trying to jump into freecad to design a piece of sheet metal the other weekend for a classic car project. SolveSpace looks perfect.
FreeCAD is a traditional CAD tool based on sketches, pads, and pockets. CAD designers I’ve spoken with who use that style tool think out their designs outside the CAD tool. They know how to translate concepts into the parametric CAD language.
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!
The sketches/pads/pockets are just one of the workbenches in FreeCAD (Sketch/Part Design). There is also Part, which is CSG on geometric primitive. And a bunch of others that almost nobody uses, like Ship Design.
Installed it multiple times on multiple machines over the last few years and it"s always worked absolutely perfectly via Wine (and I'm always surprised every time I fire it up and everything works, not sure why!)
I started with OpenSCAD but:
a) found the language to be clunky
b) had a hard time doing chamfered unions between objects (needed for sand casting patterns).
So - I wrote my own tool/library in Go and it's essentially replaced my OpenSCAD usage.
SDF = signed distance function. A function mapping a 2d/3d coordinate onto a scalar. The scalar is the shortest distance from that point to the surface of the object. (+ve outside, -ve inside)
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....
"On the other hand, I found creating drill holes, countersunk or counterbored incredibly easy and powerful."
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.
I was in the same place you are, brushing up on CAD w/ a 3D printer. OnShape is a web based CAD service from some of the original technical creators Solidworks. I found that going through their tutorials helped a lot in understanding how the tools think.
Not open source like the other options discussed here, but free for hobbyists.
The assembly system is very nice. Once I learned you could enter variables and equations into most of the operations & constraint fields in OnShape, my ability to model in it became much better. It's great for placing multiple symmetric attachment points onto parts to construct assemblies for example.
Good to know. I also encountered this same frustration recently as someone with very little CAD experience. I could not get some simple shapes drawn with precise sizing in FreeCAD. It would not lock to grid properly nor let me manually enter dimensions. I tried the same with Fusion360 and it was painless, almost easy.
I'm in the exact same boat as you are. Right now, I'm doing my best to work with FreeCAD, but Blender3D has an interesting precision-modelling plugin that makes for a somewhat complicated but reliable alternative. You're going to need to watch a few Youtube tutorials, but it may be worth it.
I like FreeCAD but it has one major issue (compared to something like OnShape which I use now), it doesn't have a smart naming topology.
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.
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.
As someone who uses Solidworks regularly for mechanical designs this problem basically makes FreeCAD unusable in any real sense. There isn't a single model I've made that I didn't need to do something like in your example.
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.
Having spent more time working on open source tools and projects recently: although yes, many codebases have limitations, there's often a rewarding escalation path towards improving the situation.
* 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.
Self-reply: perhaps this wasn't the most useful comment; and on reading further there is a proposed project[1] related to trying to resolve the naming issue. Hopefully the principles in the comment are reasonable, but it's definitely a tricky problem for FreeCAD to solve.
I believe when one wants to use a software the incentives are not to spend time on testing or improving it but to save time on the original task at hand. Getting help from the software and not helping the software, not participating in its interest group society. For the purpose of the software - helping and carrying out tasks - lengthy digging in discussions for essential information is counter efficient.
Yep - it's completely fine to simply use software and not expect or contribute anything more to it; and in that sense it's good to have multiple options for any given task.
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've concluded that for me the price that I should pay for good open source software is good bug reports. If I'm not contributing at the very least help the contributors make their project better. This can sometimes take a little time to get a reasonably minimal set of steps to repeat and appropriate screenshots. Admittedly this is easier as I'm a software engineer so I have decent intuition as to what is needed so they don't have to come back to me.
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.
Huh. Let me try with a programming analogue: so you have that statement earlier in the program where a bunch of named variables are introduced (with values assigned to them). You change this statement, so it now computes differently named variables. Of course, all the later statements keep using the names they're using, and things become weird. Is this roughly correct?
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 need to know which autogenerated names from the last generation correspond to which autogenerated names in the current generation.
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.
So, could you potentially store more metadata than just the face name, like it's normal for example, or the location and approximate surface area, and try to use that to reduce the problem space for an educated guess?
That will fail when, instead of turning the rectangle into a pentagon, you rotate it 45 degrees into a rotated rectangle.
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.
I'm also not sure if I understand the problem description correctly, but based on my little experience with 3DSMax, Blender and SolveSpace, I'd use this programming analogy:
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.
Yeah, but that's hard, because imagine you have an edge with UUID 1, then you edit the history which lead into that edge being cut in half. Which one of the two edges has UUID 1?
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.
1. sketch a rectangle, extrude up. edge_1 in question created.
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.
> So they both get a new UUID, but you have to modify the next operation to apply to what "was" the edge 1.
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.
But how? Let's take a cube, of which I modify one face. Then I change the cube to be a pentagon (let's assume it's a parametrized object). What face of the cube corresponds to which face of the pentagon?
yes, it's correct.
That why editing the model history of an object is actually way harder than re-running a program after an edit. I feels superficially the same but after you've spent a few hours on the CAD thing, you realize that it's doing things way smarter than what it seems.
> That is one area SolveSpace really shines too, but there is no chamfer tool
As discussed in related SolveSpace issue thread, "chamfer" feature could be implemented in same way as "tangent arc" (aka "fillet") already implemented.[0]
I really want to like FreeCAD but it’s very very easy to screw up things irreparably in the parts designer. For example if you want to cut several faces and then realise you have made a mistake on one of the earlier sketches or need to adjust something, the whole model can fall apart. It just disappears. You have to unpick everything you did back to the point you did the original sketch and do it again.
This is a shame because the constraint modelling is actually better than F360.
"disappears": there's a kind of weird bug that may be a feature (not sure) where when you undo something, objects don't display anymore.
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.
As a total amateur I've run into states where I've been "spacebaring" everything I can but it still wont work. I believe you when you say it's possible to fix it, but for people like me that use FreeCAD to do some 3D models to print once a while it's near impossible to change anything and end up in a working state.
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.
In the part design workbench you can create a sketch, you draw a rectangle and you can extrude your box to its precise dimensions with a precise wall thickness.
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.
I agree, it only takes 10 min to make a pretty complex box. But to make it nice you usually need fillets, and then you're better off making the design again then to try to move the hole.
Since it goes fast to make a new box it's not a huge issue. Just incredibly annoying.
Fillets should always be the last operations. That means when one wants to add more features like holes/pads etc, one should add those to the object before the fillets. Sometimes the fillet operation fails in odd ways though, usually when the number of edges changes. Then one should re-do that last operation, either by removing the Fillets and adding again. Or in 0.18 edit the Edges that the Fillet operation is using in the Property window.
FreeCAD supports fillets, if your order of operations is set up the fillet will be applied to your features after and it will update the fillet with the changed dimensions, like a parametric cad system should do.
For the record, I'm not pushing FreeCAD in any way, I have no dog in this fight, I'm just a happy user.
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).
Yes, this is how I usually do it and it's not uncommon that it becomes an issue when moving the circle.
To be fair there is usually a fillet or something connected to the hole, but I still don't see why that should be a problem.
Moving the circle doesn't usually present a problem.
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.
Getting into an "unsolvable" state is a major painpoint in FreeCAD (and in many other parametric modellers). However you rarely, if ever, need to do everything again. There is usually a way to rebase your features to solve the issue. But how to achieve this requires strong conceptual understanding, and knowledge of some FreeCAD quirks. Map Sketch to Face is a key tool, and knowing that one has to show/select the correct version of the object. For really tricky cases the DAG graphviz visualizer can be useful.
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...
I second and third it. I've only done simple stuff and had to restart enough that I don't want to try anything complicated and lose days of work so I don't even try.
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.
I feel like this is comparing apples to oranges. A mostly 2D creative work environment, where it has to be good enough for the human eye versus a 3D modeling software that has to hold up against real world physical constraints.
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.
Citroen Ami is not quite a car, it's classed as quadricycle. For the sake of providing an example though, there are cars (recognized as such) having even a lower price: https://en.wikipedia.org/wiki/Tata_Nano
Affinity products are wonderful. Affinity Photo is not as good as Photoshop but it's getting there and prices don't even compare. Affinity Design is excellent. I usually draw 2D shapes in Design then export to svg into FreeCAD for extruding. Works perfectly.
Rhino is, in my experience, full of strange, hidden bugs.
Solidworks is fantastic but so expensive it's not worth considering.
Sure, because CAD software is dramatically more difficult to make than photo editing software or even video editing software, and it is a more niche product and it is mainly bought by large companies that can afford it.
Of course it's going to be more expensive. It does suck though. I wish Solidworks would do an affordable hobby license.
They do. For members of experimental Aircraft Association, www.eaa.org. And now that I know such a thing simply exists I’m completely fascinated with it!
Yeah I just found that. Unfortunately you cannot export to any non-native formats with the student edition you can get from there, so not particularly useful if you want to 3D print or laser cut anything.
Thank you. I’ve wanted to start using Solidworks for a long time. Just could never justify the cost. If you can’t export other formats that’s a big negative.
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.
I often feel like this. CAD software is almost expensive enough that I want to just write my own.
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.
Yeah, I think if you are going to use Photoshop, you might as well use other softwares like Illustrator, After Effect so you can use Adoble Creative Cloud Subscription.
Consider that SolidWorks is software used to design products where your tooling for a project can easily top $100k. Spending a small fraction of that on the software that actually allows you to design the product makes it seem relatively cheap. It isn't meant to be software focused at the 3D printing crowd.
CAD software is generally inexpensive compared to the price engineers are paid to use it and how much money is made from it. You have to also realize that the paying audience is relatively small and at the end of the day commercial producers of this software have to pay the bills and make a profit to make more software.
You could say the same thing about SWEs and basically all the free or low cost software we use to get our work done. And we’re usually paid more than the engineers that use CAD.
Doesn’t mean that CAD software should be so expensive. It’s probably holding the field’s growth from outsiders back.
Frankly, the work that most software developers do is a joke compared to what is done in even a low-end CAD package. Biffing a minor detail in Uber For Toothbrushes isn't a big deal. Biffing a minor detail in a wiring harness for a plane or military vehicle is a multi-million mistake that people may not notice until they actually attempt to put the whole thing together, or worse, after somebody is already using it. When you start talking about software that needs to work the first time, things get similarly expensive.
Shapr3D on iOS is free or $240/year for the pro version. I've barely used it (I use Solidworks for work) but it does use the same Parasolid kernel as Solidworks, Onshape, NX and many other serious CAD packages.
https://www.shapr3d.com/
Well the point I tried to make is that one software is used to build billion dollar products on which human life depends while the other one is just a CAD software (or was it the other way round :-) )
And both are simple products available in free variants serving non-overlapping purposes.
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.)
I tried to use FreeCAD, I'm new to CAD, and I found it very frustrating, I was able do to some complex parts but it took me time, it crashed multiples times and the drawing was not as parametric as I expected it to be (again I'm not an export).
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.
This mirrors my experience, FreeCAD is practically new user hostile and horrifically buggy. I'm very inexperienced and had really only used Autodesk Inventor and Fusion360 previously, but FreeCAD was like moving from modern Photoshop to an early version of Gimp
Freecad is, imho, a terrific project filling a huge void: there are very few free/open source solutions that are a substitute for the extremely expensive commercial CAD solutions.
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 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
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.
I think this is why we need an actively developed open source implementation that is backed up by multiple universities in multiple countries. It needs to be so useful and functional that it gains traction in commercial applications a like Blender does.
SolveSpace has it's own geometric kernel that is dramatically smaller than Open Cascade. It's also lacking some features, but IMHO better to build on something small and digestible that try to find bugs in a monolith. There are some bugs in there too, but I think they're solvable.
Compared to OCC these libraries seem like toys. They support basic functionality but lack the other 90% that OCC already supports.
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.
Coming from Sketchup and being a Software Engineer, parametric design in FreeCAD is a game changer for me.
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.
You’re correct that parametric is cool & FreeCAD adds that flexibility.
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.
My favorite part of FreeCAD is that it is scriptable. It's very satisfying to define shapes via some math (or I/O) in python, then turn them into a solid in FreeCAD, then export for 3D printing.
As an engineering tool, though, it still feels rudimentary (and sometimes buggy) compared to e.g. Solidworks. Keep going, guys!
I need a simple, low brain space but open source solution for 3D printing. Would you recommend FreeCAD?
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.
If you're a developer have a look at openscad: you can "program" your model. if you need fancy features like fillets however, that's rather difficult in openscad.
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.
To be fair, you have to tolerate bugs in commercial products as well. The AutoDesk products I use for work crash daily. If you look at the developer documentation, though (https://www.autodesk.com/developer-network/platform-technolo...) you kind of get an idea of how mind-blowing complicated this software is. Any particular part might be implemented in C++ or .NET or VBA or a custom Lisp. There's maybe 30ish years of layers AutoCAD is built on. After a few weeks of learning F# and the ACAD API, I concluded that I would much rather just do everything manually than ever write a plugin.
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.
wow, thanks for getting my attention to CadQuery. It looks really promising! It has some of the things I've come to depend on in Fusion 360 which makes it hard to go back to OpenSCAD: workplanes, construction geometry, fillets, etc
* 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.
I think your workflow is what I will end up doing. I am usually making parts that have precise dimensions which Blender doesn't facilitate well, but I also want them to look interesting which is where Blender gets fairly intuitive.
FreeCAD can be made to work, but it's very buggy. I've seen frequent error dialogs, redraw bugs, and menu state issues in my trivial usage of it. Since it's not at all intuitive to novices it can be hard to tell if one is using it wrong or it's just not working again. Often saving, exiting, and re-opening the model is the "work around" so it's very frustrating.
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.
I love that the example image on the homepage of OpenSCAD has an edge case and comment explaining it. OpenSCAD does look like a good tool for me though, I will just have to hope I don't find too many edge cases...
I used FreeCAD 3 years ago and found it functional but particularly unstable.
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.
I started with OpenSCAD and loved it at first. But there are many things you can't do in OpenSCAD. Fillets and chamfers are impossible. But the big problem is export options: you can't export to STEP or really to any format that a manufacturer will accept.
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.
STL files are the "standard" in 3d printing but everyone else uses step files. EDA packages like HorizonEDA only accept step files as 3d model for electronics components and every single manufacturer that offers a 3d model so far has always used step. Most CNC manufacturers want you to upload step files.
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.
It 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
Unfortunately, FreeCAD has a steep learning curve, with an opaque workflow for beginners. It would be awesome if the FreeCAD developers worked on usability, documentation, and tutorials.
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.
FreeCAD 0.18 (releasead March 2019) supports such constraints. There are now many "Map Modes" for a sketch besides just "map to face" (the default, and in previous versions the only one).
Unfortunately there is not really much intuitive UI available to start that workflow. You have to make the sketch with some/no mapping. And then in the Property editor for "Map Mode" click ... - from that point on there is a pretty nice dialog for chosing the modes etc.
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 don't know FreeCAD specifically, but #2 SHOULD be very hard. You do not want to rotate the part, you want to draw the sketch on an already slanted plane. Your sketch (and resulting solid) should be agnostic to reference plane orientation, otherwise the whole parametric model becomes "spaghetti code"
3D? Yes. 2D in a sketch? Nope. It's all parametric, everything has to be defined through constraints, and there's no way that I can see to define such a constraint.
- 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.
To extrude a complex shape from 2D I usually first draw the 2D design elsewhere (Inkscape or Affinity Design) and import to FreeCAD as SVG. This works very well.
Have a look at onshape.com. It's a web-based cad tool and I found that it was easy enough to learn in a couple hours using video tutorials. I now use it to make all my 3d printed parts. I mainly work on Linux so the web interface is a big plus for me.
if you're going web based you can do sketchup or fusion360 as well. Personally I am allergic to web based 3d design apps - they don't run anywhere near as fast as native applications, there are privacy and future continuity concerns, and I don't have to upgrade to the latest version if I dont want to.
I suspect the whole reason this discussion is happening is because AutoDesk just announced Fusion360 is becoming crippleware at the end of the month.
(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
I looked at it but everything you do on the free version is public facing and that's an automatic no from me. I would the option to make a final product "public"/open to all but all my fuckups? no thanks. Also it's just a general matter of privacy.
I would actually recommend avoiding the Part workbench and only using Part Design, at least to start with.
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.
Yes. It's packed full of random features and modes, like for architects and so on. Once you figure out which workbench to use it's not too tricky. Save often.
They're slowly crippling it. Make 2017 was (I believe) the last semi full featured gratis desktop version. They've been pushing the web version pretty hard for a while now.
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.
In my experience, SketchUp produces terrible STL files, full of duplicate or non-watertight geometry. I frequently had to manually repair the exported models in Blender before they would slice correctly.
I have tried the free version, while a bit limited it is the kind of simple interface I want. Unfortunately not open source and you need accounts and to be online to use it. I may end up using it anyway though.
Unfortunately, SolidWorks "encourages" you to upgrade by not providing any way to save/export native files that earlier versions can read. If you're receiving files from a 3rd party, you need to have a version that is at least as recent as theirs.
This is unlike, say, Excel 2007, which can export .xls files that Excel 2000 can read.
That's not just Solidworks. It's pretty much all parametric CAD systems. I don't expect that to change any day soon. The problem they have is massive development, small market, big costs. Back revision compatibility would kill their development engines. It's a tough scene. I worked in it for 25 years.
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.
The other thing people need to really think about is their role.
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.
I 100% agree with this. However, FreeCAD is also NOT awesome because it lacks the 'timeline' approach that Fusion 360 uses and so you end up with a million random intermediate objects cluttering up your project.
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.
FreeCAD is truly impressive and wonderful software, but yeh compared to commercial solutions it's lacking the same degree of polish (and that's not a criticsm, considering the price-points!).
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.
Are you using the PartDesign workbench? In my experience for simple things (not 3D sketches) that almost follows the same workflow as Solidworks sketch -> extrude.
I should have made it more clear: this may be my inexperience with the software showing. I guess in SW it flows a bit more smoothly, probably due to making some (apparently relatively safe) assumptions. For exmaple, when I click on the surface of an extruded cube to sketch on it, SW will just assume I'm extruding normally to that surface. I haven't (yet) been able to reproduce that.
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.
I'm new to FreeCAD (and have never used other CAD software), but I think in your case, you can click the face on Part Design view, then click New Sketch. It will auto-select that plane with placement automatically set to the selected plane. The UI/UX wasn't very intuitive, though, as it won't work if you click New Sketch first, then select a plane.
I'm fine with the UI. I never used another CAD software and Free Cad is intuitive enough for me to learn the basics in one day from a youtube video. Draw in 2d, pad, click on a face, create sketch, draw in 2d, pocket/pad, repeat. Simple.
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 love the idea of FreeCAD and how much value it provides if you don't need 'advanced' stuff.
That being said, it often leaves me with impression that UI, UX could and should be so much better in order to become a go to solution for hobbyist and licensing cost mindful people.
p.s-Anyone here into StepNC format?
I kind of stumbled on it since I work with CAM (recently more so).
I was surprised that I haven't heard of it before since from what I've seen the framework is mature and the API's seem quite complete (?). The official channels of ISO standard and especially company steptools.com provide a lot of info on the framework, but what I'm missing is some more success stories on implementation in companies (besides the ones that were part of development).
Do you work with it?
Thanks for posting this, it looks interesting. However, I don't seem to be able to get FreeCAD to even do things like pan in the sketch view on a Mac using the trackpad (googling doesn't find any answers either).
Could you raise an issue on github.com/raspberrypilearning
The repo name will be the project's URL slug. The weekend has started now, and I know I'll forget this by Monday.
Frecad has come a LONG way since I started using it in 2016, and I encourage those who had a hard time with it a few years back to give it another try. Also - make sure you are getting a recent version, some distros have a tendency to ship a horendously outdated version. The current stable version is 18.4, there should be 19.0 release soon with a ton of improvements, but it is not quite there yet.
Is it still a nightmare to compile? It's not in the Gentoo tree, because aparently, getting FreeCAD to compile cleanly, ~~requires human sacrifice to The Ancient Ones~~ is quite difficult.
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.
I have never tried to build it, but I imagine it is still a nightmare to compile. Where I am in life these days I leave that to the package maintainers.
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...
I hate what Autodesk did with Fusion, but the problems i've ran into while searching for an alternative are:
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 want to likes FreeCAD, but it’s just not there for reasons mentioned elsewhere in the thread.
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.
FreeCAD saved me a lot of headaches when I bought a flat last year. My wife wasn't happy with me spending a lot of time drawing stuff by the entresol ended up exactly as we expected and since I modeled and positioned every piece of furniture in FreeCAD, only a single power outlet is in a wrong position (and that's because we got a different locker than we origianly intended).
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.
I do a lot of woodworking, from timber framing to small furniture and I have yet to find a convenient software to design projects.
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 :)
I'm also interested in the "quick sketch" approach. Is there a tool for rough things like a shed, a cabinet, welding something out of angle iron or woodworking?
It would take me more time to design shelves in Freecad than to weld them.
I tried both this and Sketchup for a home modelling project. I ended up paying for Sketchup because it was so much easier to use. I did not need the degree of control you can get with FreeCAD, so it was just wasted time and energy.
I just replied this elsewhere today (the thread about Fusion 360), but this tutorial was extremely eye-opening to me and got me started a year or so ago for part design, which is probably what most folks are looking to do:
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:
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.
What's hard is #1 compared to other tools, the rest of the steps you mentioned are the same everywhere. FreeCAD makes #1 hard, but it's a very very important tool to exist. I'm looking forward to the day where I switch to it.
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.
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.
Anyone here ever try ironCAD? I've thought about buying a personal license of a professional CAD package. Solidworks (my most familiar) is too expensive for personal use. OnShape I'd consider if I could sign up month-by-month and go dormant. But I'd like an old-school software package that I could keep indefinitely but knew it could do all my entry-level work.
-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)
Regarding point 1, there's a bunch of 3rd party assembly plugins (A2+, A3, A4...), but no standardised assembly workbench yet. Hopefully one of the 3rd party ones will be accepted as good enough to make the standard one soon. It's not a great situation for the casual user who just wants to glue parts together.
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 tried A2+ before and it did not work well for me. I wrote this at the time:
> 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!
Yes, looks as if this is adressing the problem space. The tutorial seems to be lacking. E.g. is there fubctionality to put in the surface roughness symbol with number? How would one do it? It leaves a bit if question.
I use FreeCAD and Solvespace mainly for personal use, but I use Fusion, Inventor, Solidworks, and Rhino at work with Inventor and Rhino being my two main CAD programs. We also have Revit and I had been using IDEAS back in 1997.
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.
* 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, ...
In OpenSCAD you write scripts to create shapes, in FreeCAD you will find a more traditional graphical approach. In fact FreeCAD has OpenSCAD support built in.
If you don't like the OpenSCAD Syntax, I found solidpython quite ok
I am trying to create a CAD driven design tool for a farming project. An equivalent from a different sector would be Helioscope (https://www.helioscope.com/) for Solar Plant planning.
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?
I work with AutoCAD, ACAD Architecture and VectorWorks. I think and hope in the not-so-long-run FreeCAD will be serious competition for traditio9nal mainstream/enterprise CAD.
That being said, I do agree with some on the fact that the UI needs a little work, and improved tutorials.
Do you know if it's possible to export a house plan in FreeCAD to use on AutoCAD? I need to draw the 2D floors of my house and send to an architect who is using AutoCAD..
Anyone knows if it's possible to export a house plan in FreeCAD to use on AutoCAD? I need to draw the 2D floors of my house and send to a professional architect who is using AutoCAD..
Haven’t tried FreeCAD, but it kind of sounds like OpenSCAD (openscad.org). There you only use scripts to generate models which is nice, but a bit too clunky and slow to iterate. The lack of direct visual feedback makes for a less intuitive interface. FreeCAD seems a lot better in that aspect, and in difference to say Fusion360 you can use your models for commercial purposes!
No, OpenSCAD and FreeCAD aren't similar. OpenSCAD is functional CSG, FreeCAD includes a module to do that (with a interactive GUI), and more importantly, FreeCAD includes OpenSCAD as a workbench- write an openscad program, get the geometry output and then use it FreeCAD for further steps.
Ah, right, I was under the impression that scripting was an integral part of the workflow, but with more graphical options for manipulating shapes after basic generation. But I might very much be mistaken, I haven’t had the chance to try it yet :)
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...
Joko Engineeringhelp (channel with a lot of FreeCAD tutorials) just posted a video answering questions like: should I learn FreeCAD, can it be used commercially, how does it compare to industry standard tools?
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.