Thanks for watching! Remember, best practices for tidy design aren't always the best for reliability-sometimes, it's about finding the right balance. Let me know your thoughts or questions in the comments below. Have you tried the new Variable Set feature in FreeCAD? How does it fit into your workflow? Feel free to share any tips or challenges you've encountered-I’d love to hear about your experiences!
Thank you for this outstanding tutorial! I really appreciate how clearly and simply you explained everything. As someone with very limited knowledge of FreeCAD, I found it easy to follow and understand your step-by-step approach. The pace was just right, and your examples made even complex concepts seem approachable. This video has boosted my confidence to start using FreeCAD more effectively. Great job!
Being quite new to freecad I was coming across problems with adaptive and adjustable dimensions for a “one model to rule them all” approach with brackets. This has possibly answered why my models were braking and not acting as expected. I will give the methods used here a try later on. Many thanks for the informative tutorial.
I didn't know about the sketch symmetry tool having the symmetry constraints feature keeping the sketch fully constrained. Wow! Also didn't realize that you could control the Placement from the Transform using variables, too. D'oh!
Very nice style on your video, excellent English and presentation skills. You have explained complex Freecad information I took ages to understand in a few minutes in an easy to understand style. Well done!
Finally, a good "datum plane" example. And to answer the question from the end: I don't make them reliable, i just Union/Substracted in Part/Sketch for the win ;) But now things will change.
13:51 oh man, dimensions flipping like that sucks... Nice video for making robust models which don't break. I'll use this as reference when making models like this. BTW, what's the difference between using the new varset feature and the old spreadsheet method? The varset is just faster?
Hey, glad this is useful. I find VarSet to be faster and more intuitive as you do not need to assign Alias for the value (if you don't want to reference by Cell address like A2), like you do in spreadsheet. As well the spreadsheet can get messy if you organize values in multiple columns.
This is a really great video, and it's interesting to see the limits of FreeCAD on display during it. What you describe as the TNP here I don't think really is. You can see that kind of behavior in the sketcher in 2D when you constrain in such a way that a dimension could be valid in more than one orientation, and is really an issue with the solver not being computationally deterministic. You could imagine ways this could be solved (always having to specify a dimension oriented a direction with respect to origin, for example), but how would you do it that isn't a pain in the UI... The VarSet is a step in the right direction for handling variables, but it's still painful from a UI perspective. Having to go through the list and select each time is easier than referencing spreadsheet variables by hand (with no auto-complete - has that changed?), but man it would be nice if the most relevant measurements were at the top, or were incrementally searchable without keyboard mouse back-and-forth. A little polish in creating new variables would be sweet, too. Instead of having to pre-create, or pre-name, allow clicking on a dimension and just bam bam bam. Right where it needs to be tracked, and always the last dimension created on top. I might have gotten spoiled a bit with Fusion 360's parameter view (which also has some flaws). It's getting there, and it's nice to see. Lesser known FreeCAD feature is the ability to reference pretty much anything by name, you can see an example of it when you do the carbon copy; the sketch originally just references constraint dimensions from the original sketch, of which the disadvantage is the TNP. Super cool once you realize it though, that everything is actually there. UI possible improvement (or non-improvement): Make that sort of stuff visible in tree view of variable editor. I'm a fan of using math and formulas anyway, so it's really satisfying that that is, of course, the best way to avoid TNP -- by referencing from a fixed location, the origin.
Hey, you are right, with sketcher it is more precise to call it solver recalculation problem. Sadly, other CAD solvers handle it better. Maybe they somehow keep the relative positioning or something. Varsets are great and usability will hopefully improve over time. My biggest problem is that I do not model existing parts, I try to "invent" for 3D printing. That means that design goes through multiple iterations and need to change rapidly. So I cannot plan ahead and constrain against origins and planes. Final design - sure, but for rapid prototyping it is sometimes pain
This is a fantastic video: Excellent explanations, very well done. The problem is, it could also be a perfect sales pitch for Fusion or Onshape or Alibre Design or … almost any other CAD system, which all don't need these workarounds! I admire your skills and know-how, but my free time is limited and I simply have no patience to put up with a workflow this bad. To paraphrase Jamie Zawinski: FreeCAD is only free if your time has no value.
Thank you for your kind words! And I sadly must agree that FreeCAD is not yet up to the competition. However it is fine for smaller projects and workbenches like FEM, Gears , Fasteners are fantastic. Still in my toolbox. I really hope that with the help of Ondsel team, these workarounds will be thing of the past.
Am I missing something, or is the TNP problem you demonstrated not caused by TNP? It seems to me like the constraints of one point offset from the origin and a fixed width/height allow for four possible interpretations. I'm new to CAD, but I don't see why it says it's fully constraint, unless there is supposed to be an implied relative layout constrained. For example, once you fixed the upper point you can set the width/height to the same value, but depending on where the point opposite to the fixed one is, it's possible to create four different sketches using the same constraints. From my perspective, this isn't a TNP problem, because no references were lost, but a problem with the underlying constraint system. But please explain why that's wrong.
I do not think that you are wrong. Here I am using TNP too loosely. It is indeed a sketcher solver problem. I would assume that there should be implied relative layout constraint. The thinking is that if there is not, then when dragging vertex nothing will happen until new possible interpretation is reached and the sketch should jump. As we do not observe this behavior, means that the "fully constrained" state is somehow locked. I could think of three possible options - relative to the layout, relative sequence of constraints or user interactions are just locked. Otherwise it could jump between possible interpretations every recompute cycle. Unfortunately I am not able to read the code and attempt to contribute to the solution. We can observe is that other cad packages do not experience similar problem - so they are preforming some state monitoring for sketch entities. So in the end I can only highlight that the problem exists and how to workaround it. And hopefully someone can contribute to fix it.
The wrong position of the screw insertion square is not due to re-indexation, but accordingly to the constraints of the square may be on both side of the vertical line. If for example a line is constrained to be tangential to s circle, the line might be on both side of the circle. Such situations may break any CAD program.
Yes, however I would assume that the sequence of the application of constraints is important to determine where it can be located. If it is indeed sequence, then it is indexed by definition, but my assumption could be wrong. By the same logic, in an extreme example one could argue that a point constrained to the Origin axes can be calculated in 4 different quadrants as it is constrained to the distance (always positive) and not coordinates (like -10X / 20Y which would be lock constraint). The problem is that this behavior is mitigated in other CAD packages. This is video (#2) in Workflow series, if you check video (#1) you will see similar scenario compared to Alibre Atom3D. I also checked same in Fusion and Onshape - none exhibit this recalculation problem. I also show how to avoid it in FreeCAD right after this demonstration.
I was trying to follow along. After I click ok to create first datum plane I am asked for a Reference that I did not see you have to address in your video. When I select the (recommended) option Make independent copy. I get an additional item in my model tree CopyXY_Plane. I don't see in your video. I am using 1.0 but not sure why my experience is different than yours.
Ah I figured it out. Replying for anyone that sees the same issue. I was showing the "wrong" origin. I created a part to put my body in. I have to select origin under the body not the one for the part. Then it works as you show above.
Is it possible to "invoke" body with a different varset? For example if we want "boxman" (as snowman) where three boxes of different sizes are arranged on top of each other, do we need to duplicate parts?
Sorry if I didn't understand your question fully. VarSet can be outside the body and can be used in expressions by all bodies in the project. If the VarSet is inside one of the bodies, I tested that you can just invoke the VarSet name in the equation editor and get the varset values, no need to invoke specific body sub-objects. Additionally you can have as many VarSet objects as you want. Let me know if I answered your question.
@@RoadSideMakerPoint is I want to use the same body several times with different varsets. Ie have one big box on xyz=0,0,0; then have the same box build from the same base geometry but small at 0,0,100 and with different dimensions in varset. I checked github and they are working on it. The issue 12531: they call this feature "AGI -- application geometry interface". In future version if you will be able to override varsets from the body: there will be "XLink" property where you can specify varset to use instead of varset inside the one used by the body. So if you create two links to the body, in each case you will be able to set different varset. I.e. box by itself will have its own default values, then linked box at 0,0,0 will have BigBoxVarset with width=height=depth=100 and linked box at 0,0,100 will have SmallBoxVarset with width=height=depth=20
Oh, now I understood. In other CAD packages it is called Configuration - multiple layers of possible variable values that can be chosen from. So when you create and assembly, you are instantiating the box and should be able to select what configuration you want. It seems that they are working on it and it does not exist as of now
If you catch the mistake right away, just right-click the variable and select Remove. Then create again with proper name. If you find the mistake further in the design process, you could do the same - remove and recreate, however you will need to go through your design and reassign the new variable. Or just leave it as it is 👀
@@RoadSideMaker Sometimes I find some names make more sense than the others later so I should rename them. It seems like solutions you mentioned above are the only ways. I hope there will be renaming variables feature in the future.
It was due to holes not being through all. My mistake in the design intent. It did not brake the part and jumped properly in place, when I fixed my mistake. In case of TNP I would have to delete and refilet edges.
While I see your point, I do not believe that anyone who went through engineering school would struggle with FreeCAD. It utilizes classic and strict modeling approach most major CAD packages were built around. This approach is taught in engineering schools and is transferable between CAD packages. While major players evolved and became more approachable, FreeCAD learning curve is still steep. I see general public struggle with FreeCAD while engineers do truly amazing stuff with it.
@RoadSideMaker yees i also get what you mean. But the main advantage i see of this software being taught, or at least mentioned in engineering schools, is from a marketing point of view. Most of my collegues don't even know this software exists! Why do schools have to market comercial solutions (solidworks in my case), for free, instead of this amazing project? It would help bring a lot more people into freecad and i bet lots of students would contribute to it. And universities should adopt freecad, or at least mention it from my point of view. From a technical POV, i agree that it really isn't that diferent and knowledge can be transfered from almost any CAD package to freecad. Thank you for the video btw!
You are welcome! I look at this situation this way - universities main obligation is to prepare you for the job market. Solidworks holds the biggest piece of the market. So there is likelihood that majority of job offers will require Solidworks experience and one is more likely to be accepted if experience of Solidworks or even CSWA is present.
Thanks for watching! Remember, best practices for tidy design aren't always the best for reliability-sometimes, it's about finding the right balance. Let me know your thoughts or questions in the comments below. Have you tried the new Variable Set feature in FreeCAD? How does it fit into your workflow? Feel free to share any tips or challenges you've encountered-I’d love to hear about your experiences!
I have watched countless FreeCad videos but I learned more in this single video than all of them. Great Work!.
Thank you! Much appreciated!
Thank you for this outstanding tutorial! I really appreciate how clearly and simply you explained everything. As someone with very limited knowledge of FreeCAD, I found it easy to follow and understand your step-by-step approach. The pace was just right, and your examples made even complex concepts seem approachable. This video has boosted my confidence to start using FreeCAD more effectively. Great job!
You are welcome!
A masterpiece class...learned something new...
Greatly appreciated 👍 Cheers!
Great video. You do a great job explaining the work process.
Glad you liked it! Thank you for kind words!
Being quite new to freecad I was coming across problems with adaptive and adjustable dimensions for a “one model to rule them all” approach with brackets. This has possibly answered why my models were braking and not acting as expected.
I will give the methods used here a try later on.
Many thanks for the informative tutorial.
Thank you!
I didn't know about the sketch symmetry tool having the symmetry constraints feature keeping the sketch fully constrained. Wow!
Also didn't realize that you could control the Placement from the Transform using variables, too. D'oh!
Yes, and you know what, I haven't seen this functionality in other CAD packages. In FreeCAD you can even change sketch attachment.
Thumbs up for this lesson.
Thank you!
Very nice style on your video, excellent English and presentation skills. You have explained complex Freecad information I took ages to understand in a few minutes in an easy to understand style. Well done!
Thank you for the kind words!
Finally, a good "datum plane" example.
And to answer the question from the end:
I don't make them reliable, i just Union/Substracted in Part/Sketch for the win ;)
But now things will change.
Glad you find it usefull!
13:51 oh man, dimensions flipping like that sucks... Nice video for making robust models which don't break. I'll use this as reference when making models like this. BTW, what's the difference between using the new varset feature and the old spreadsheet method? The varset is just faster?
Hey, glad this is useful. I find VarSet to be faster and more intuitive as you do not need to assign Alias for the value (if you don't want to reference by Cell address like A2), like you do in spreadsheet. As well the spreadsheet can get messy if you organize values in multiple columns.
This is a really great video, and it's interesting to see the limits of FreeCAD on display during it. What you describe as the TNP here I don't think really is. You can see that kind of behavior in the sketcher in 2D when you constrain in such a way that a dimension could be valid in more than one orientation, and is really an issue with the solver not being computationally deterministic. You could imagine ways this could be solved (always having to specify a dimension oriented a direction with respect to origin, for example), but how would you do it that isn't a pain in the UI...
The VarSet is a step in the right direction for handling variables, but it's still painful from a UI perspective. Having to go through the list and select each time is easier than referencing spreadsheet variables by hand (with no auto-complete - has that changed?), but man it would be nice if the most relevant measurements were at the top, or were incrementally searchable without keyboard mouse back-and-forth. A little polish in creating new variables would be sweet, too. Instead of having to pre-create, or pre-name, allow clicking on a dimension and just bam bam bam. Right where it needs to be tracked, and always the last dimension created on top. I might have gotten spoiled a bit with Fusion 360's parameter view (which also has some flaws). It's getting there, and it's nice to see.
Lesser known FreeCAD feature is the ability to reference pretty much anything by name, you can see an example of it when you do the carbon copy; the sketch originally just references constraint dimensions from the original sketch, of which the disadvantage is the TNP. Super cool once you realize it though, that everything is actually there. UI possible improvement (or non-improvement): Make that sort of stuff visible in tree view of variable editor.
I'm a fan of using math and formulas anyway, so it's really satisfying that that is, of course, the best way to avoid TNP -- by referencing from a fixed location, the origin.
Hey, you are right, with sketcher it is more precise to call it solver recalculation problem. Sadly, other CAD solvers handle it better. Maybe they somehow keep the relative positioning or something. Varsets are great and usability will hopefully improve over time. My biggest problem is that I do not model existing parts, I try to "invent" for 3D printing. That means that design goes through multiple iterations and need to change rapidly. So I cannot plan ahead and constrain against origins and planes. Final design - sure, but for rapid prototyping it is sometimes pain
This is a fantastic video: Excellent explanations, very well done.
The problem is, it could also be a perfect sales pitch for Fusion or Onshape or Alibre Design or … almost any other CAD system, which all don't need these workarounds!
I admire your skills and know-how, but my free time is limited and I simply have no patience to put up with a workflow this bad.
To paraphrase Jamie Zawinski: FreeCAD is only free if your time has no value.
Thank you for your kind words! And I sadly must agree that FreeCAD is not yet up to the competition. However it is fine for smaller projects and workbenches like FEM, Gears , Fasteners are fantastic. Still in my toolbox. I really hope that with the help of Ondsel team, these workarounds will be thing of the past.
非常赞。👍👍👍 建议把UI 字体设大 便于学习😁
Thank you, will do that!
Indeed
Newer videos have bigger UI and zoom to relevant actions, learning as we go
Thank you !
You're welcome!
Am I missing something, or is the TNP problem you demonstrated not caused by TNP?
It seems to me like the constraints of one point offset from the origin and a fixed width/height allow for four possible interpretations.
I'm new to CAD, but I don't see why it says it's fully constraint, unless there is supposed to be an implied relative layout constrained.
For example, once you fixed the upper point you can set the width/height to the same value, but depending on where the point opposite to the fixed one is, it's possible to create four different sketches using the same constraints.
From my perspective, this isn't a TNP problem, because no references were lost, but a problem with the underlying constraint system.
But please explain why that's wrong.
I do not think that you are wrong. Here I am using TNP too loosely. It is indeed a sketcher solver problem. I would assume that there should be implied relative layout constraint. The thinking is that if there is not, then when dragging vertex nothing will happen until new possible interpretation is reached and the sketch should jump. As we do not observe this behavior, means that the "fully constrained" state is somehow locked. I could think of three possible options - relative to the layout, relative sequence of constraints or user interactions are just locked. Otherwise it could jump between possible interpretations every recompute cycle. Unfortunately I am not able to read the code and attempt to contribute to the solution. We can observe is that other cad packages do not experience similar problem - so they are preforming some state monitoring for sketch entities.
So in the end I can only highlight that the problem exists and how to workaround it. And hopefully someone can contribute to fix it.
The wrong position of the screw insertion square is not due to re-indexation, but accordingly to the constraints of the square may be on both side of the vertical line. If for example a line is constrained to be tangential to s circle, the line might be on both side of the circle. Such situations may break any CAD program.
Yes, however I would assume that the sequence of the application of constraints is important to determine where it can be located. If it is indeed sequence, then it is indexed by definition, but my assumption could be wrong. By the same logic, in an extreme example one could argue that a point constrained to the Origin axes can be calculated in 4 different quadrants as it is constrained to the distance (always positive) and not coordinates (like -10X / 20Y which would be lock constraint). The problem is that this behavior is mitigated in other CAD packages. This is video (#2) in Workflow series, if you check video (#1) you will see similar scenario compared to Alibre Atom3D. I also checked same in Fusion and Onshape - none exhibit this recalculation problem. I also show how to avoid it in FreeCAD right after this demonstration.
Thanks for that workflow. Wondering, why you cannot just copy the box for the lid and change the lip.
Hey, you can, can't see why not. I am trying to focus on the workflow, so the models are arbitrary. Meaning it is not a tutorial for a box 🙂
I was trying to follow along. After I click ok to create first datum plane I am asked for a Reference that I did not see you have to address in your video. When I select the (recommended) option Make independent copy. I get an additional item in my model tree CopyXY_Plane. I don't see in your video. I am using 1.0 but not sure why my experience is different than yours.
Ah I figured it out. Replying for anyone that sees the same issue. I was showing the "wrong" origin. I created a part to put my body in. I have to select origin under the body not the one for the part. Then it works as you show above.
Glad you figured it out! FreeCAD is sensitive in what you have selected or even the sequence of selection+action
Is it possible to "invoke" body with a different varset? For example if we want "boxman" (as snowman) where three boxes of different sizes are arranged on top of each other, do we need to duplicate parts?
Sorry if I didn't understand your question fully. VarSet can be outside the body and can be used in expressions by all bodies in the project. If the VarSet is inside one of the bodies, I tested that you can just invoke the VarSet name in the equation editor and get the varset values, no need to invoke specific body sub-objects. Additionally you can have as many VarSet objects as you want. Let me know if I answered your question.
@@RoadSideMakerPoint is I want to use the same body several times with different varsets. Ie have one big box on xyz=0,0,0; then have the same box build from the same base geometry but small at 0,0,100 and with different dimensions in varset.
I checked github and they are working on it. The issue 12531: they call this feature "AGI -- application geometry interface".
In future version if you will be able to override varsets from the body: there will be "XLink" property where you can specify varset to use instead of varset inside the one used by the body.
So if you create two links to the body, in each case you will be able to set different varset. I.e. box by itself will have its own default values, then linked box at 0,0,0 will have BigBoxVarset with width=height=depth=100 and linked box at 0,0,100 will have SmallBoxVarset with width=height=depth=20
Oh, now I understood. In other CAD packages it is called Configuration - multiple layers of possible variable values that can be chosen from. So when you create and assembly, you are instantiating the box and should be able to select what configuration you want. It seems that they are working on it and it does not exist as of now
@@RoadSideMaker Lol, youtube killed my comment. Its spam filter misbehaves as usual
@@AM-yk5yd That is weird, I see it on my channel side, but don't see it under the video. And no notifications that it was hidden. Weird
How do you rename the variable named length to, for example, along?
I don't believe you can rename variables. Maybe it will be added in future releases
@@RoadSideMaker In a case where you named the variable wrong, how would you handle it?
If you catch the mistake right away, just right-click the variable and select Remove. Then create again with proper name. If you find the mistake further in the design process, you could do the same - remove and recreate, however you will need to go through your design and reassign the new variable. Or just leave it as it is 👀
@@RoadSideMaker Sometimes I find some names make more sense than the others later so I should rename them. It seems like solutions you mentioned above are the only ways. I hope there will be renaming variables feature in the future.
Agree. It is a very new feature, so being somewhat limited is expected, so let's see what future improvements brings.
In the last seconds of the video it sure looks like the topo problem is not solved :(
It was due to holes not being through all. My mistake in the design intent. It did not brake the part and jumped properly in place, when I fixed my mistake. In case of TNP I would have to delete and refilet edges.
FreeCAD should be taught in engineering schools, in the same way linux is used in computer siencie degrees.
While I see your point, I do not believe that anyone who went through engineering school would struggle with FreeCAD. It utilizes classic and strict modeling approach most major CAD packages were built around. This approach is taught in engineering schools and is transferable between CAD packages. While major players evolved and became more approachable, FreeCAD learning curve is still steep. I see general public struggle with FreeCAD while engineers do truly amazing stuff with it.
@RoadSideMaker yees i also get what you mean. But the main advantage i see of this software being taught, or at least mentioned in engineering schools, is from a marketing point of view. Most of my collegues don't even know this software exists! Why do schools have to market comercial solutions (solidworks in my case), for free, instead of this amazing project? It would help bring a lot more people into freecad and i bet lots of students would contribute to it. And universities should adopt freecad, or at least mention it from my point of view.
From a technical POV, i agree that it really isn't that diferent and knowledge can be transfered from almost any CAD package to freecad. Thank you for the video btw!
You are welcome! I look at this situation this way - universities main obligation is to prepare you for the job market. Solidworks holds the biggest piece of the market. So there is likelihood that majority of job offers will require Solidworks experience and one is more likely to be accepted if experience of Solidworks or even CSWA is present.
good content, albeit at 160 km/hr. Just too fast to comprehend and absorb!!. Cheers
Thank you, will try to slow down
I’m sorry, too tiny for my old eyes.
Sorry, noted, next videos will have UI much bigger.
@@RoadSideMakerThanks for being open to feedback!
My pleasure, learning here as well, so feedback is always appreciated!