Asm3 - assembly with ~200 fasteners.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
Asm3 - assembly with ~200 fasteners.
Hello everyone!
Need advise on my current project. I'm working on cnc design and now it almost ready. All I have to do is place all fasteners and create BOM.
At first glance it should be around 200 screws and bolts, so it will produce 200 more constraints and 400 more elements to deal with on top of existing... For me it looks like too much for one assembly. What do you think?
For now I see few option:
1) place fasteners inside sub-assemblies
2) place them all into main and hope for a best
3) create new assembly, add main assembly into it as a part and deal only with fasteners.
Although project almost done it doesn't mean that it will not be changed here ant there in a feature, so it's not good to freeze constraints. And also I have plans to animate main assembly using macros that will change offset values of PointDistance constraints, so assembly should remain solvable.
Project is here if someone would like to look: https://github.com/Shkolik/CNC4060
Thank you!
Need advise on my current project. I'm working on cnc design and now it almost ready. All I have to do is place all fasteners and create BOM.
At first glance it should be around 200 screws and bolts, so it will produce 200 more constraints and 400 more elements to deal with on top of existing... For me it looks like too much for one assembly. What do you think?
For now I see few option:
1) place fasteners inside sub-assemblies
2) place them all into main and hope for a best
3) create new assembly, add main assembly into it as a part and deal only with fasteners.
Although project almost done it doesn't mean that it will not be changed here ant there in a feature, so it's not good to freeze constraints. And also I have plans to animate main assembly using macros that will change offset values of PointDistance constraints, so assembly should remain solvable.
Project is here if someone would like to look: https://github.com/Shkolik/CNC4060
Thank you!
Re: Asm3 - assembly with ~200 fasteners.
Hello,
for me there is no hesitation : an assembly element belongs to the same sub-assembly as the parts it links.
On the other hand, I learned from the start of my studies in mechanical construction (a long time ago!) that in the representation of a project, only one connecting element per type and per function was sufficient. Of course, with the ease provided by CAD software, and for the image, this rule is rarely respected.
Finally, with regard to the constraints, the Attachment constraint should be able to be used in most cases, which does not consume any additional resources from the point of view of the solver.
My website : http://help-freecad-jpg87.fr updated 2023/11/06
Re: Asm3 - assembly with ~200 fasteners.
Svet wrote: ↑Mon Jul 12, 2021 10:59 pm ...Project is here if someone would like to look: https://github.com/Shkolik/CNC4060
I have downloaded the files available on github and I am unable to look at your project because a lot of parts "do not exist" and there are problems with linked objects "link not restored"jpg87 wrote:...
Shame because I would have loved to have a look at it.
However... (for what it is worth - I am not an expert like jpg87) here are my comments:
I have avoided fasteners (in my case screws, rivets) for now, precisely because of the concerns you are having, but I have given it a lot of thought.
and as far as I am concerned fastener parts belong in assemblies to which they belong physically.
This does not mean neccesarily constraints and element for all of them.
If the assembly is static, the parts are controlled by placement not by constraints in my project. In this case parts are in assembly container, but elements and constraints folders are empty. Of course you can use constraint if you prefer or want to for some reason, but don't have to (at least as far as I am concerned).
The issue here is not "consumption of additional resources from a point of view of the solver" as jpg87 suggests, although it clearly matters, but vast number of constraints and elements that have to be somehow managed
Just imagine a tree view for such a project...
If the assembly is kinematic (i.e. is animated) then I use Assembly3 constraints, elements and solvers to animate.
This already works very well in my assembly project, where (even without fasteners) number of constraints and elements is overwhelming
Here all the fasteners used in specific assemblies will have to be constrained in them (using Attachment, to keep things simple) and will use assembly solver when assemblies are animated.
My assembly project contains both static and kinematic sub-assemblies inside one assembly with no problem.
It is made easier in my model because all the static assembly parts are created using shapebinders and placed relative to earlier parts/assemblies.
I have not used externally imported components and this may force me down the route of using constraints rather then placement even for static assemblies?
Re: Asm3 - assembly with ~200 fasteners.
It's very strange. I'm running project from same exact folder. Did you open it with latest Linkstage3 or with master? Project created in Link branch version 0615 (latest as of today).I have downloaded the files available on github and I am unable to look at your project because a lot of parts "do not exist" and there are problems with linked objects "link not restored"
Shame because I would have loved to have a look at it.
Main assembly resides in file CNC4060\cads\4060CNC.FCStd
PS: If you running latest Link daily try to disable partial linked file loading. I saw this issue few times latest week. Disabling this option can help.
Re: Asm3 - assembly with ~200 fasteners.
agree
same here
yes, latest link branch version
yes
don't know how to do it. Will search and try again.
for now that's what it looks like: and the report view on openning the file:
Code: Select all
17:09:38 <Exception> File '/home/bambuko/Documents/parts/Ballscrew.FCStd' does not exist!
17:09:38 Exception opening file: /home/bambuko/Documents/parts/Ballscrew.FCStd [File '/home/bambuko/Documents/parts/Ballscrew.FCStd' does not exist!]
17:09:38 <Exception> File '/home/bambuko/Documents/parts/Z axis plates.FCStd' does not exist!
17:09:38 Exception opening file: /home/bambuko/Documents/parts/Z axis plates.FCStd [File '/home/bambuko/Documents/parts/Z axis plates.FCStd' does not exist!]
17:09:38 <Exception> File '/home/bambuko/Documents/parts/HGR20.FCStd' does not exist!
17:09:38 Exception opening file: /home/bambuko/Documents/parts/HGR20.FCStd [File '/home/bambuko/Documents/parts/HGR20.FCStd' does not exist!]
17:09:38 <Exception> File '/home/bambuko/Documents/parts/NEMA23-76.FCStd' does not exist!
17:09:38 Exception opening file: /home/bambuko/Documents/parts/NEMA23-76.FCStd [File '/home/bambuko/Documents/parts/NEMA23-76.FCStd' does not exist!]
17:09:38 <Exception> File '/home/bambuko/Documents/parts/BallNut.FCStd' does not exist!
17:09:38 Exception opening file: /home/bambuko/Documents/parts/BallNut.FCStd [File '/home/bambuko/Documents/parts/BallNut.FCStd' does not exist!]
17:09:39 <Exception> File '/home/bambuko/Documents/parts/HGH20CA.FCStd' does not exist!
17:09:39 Exception opening file: /home/bambuko/Documents/parts/HGH20CA.FCStd [File '/home/bambuko/Documents/parts/HGH20CA.FCStd' does not exist!]
17:09:39 <Exception> File '/home/bambuko/Documents/parts/X axis plates.FCStd' does not exist!
17:09:39 Exception opening file: /home/bambuko/Documents/parts/X axis plates.FCStd [File '/home/bambuko/Documents/parts/X axis plates.FCStd' does not exist!]
17:09:39 <Exception> File '/home/bambuko/Documents/parts/Extrusion.FCStd' does not exist!
17:09:39 Exception opening file: /home/bambuko/Documents/parts/Extrusion.FCStd [File '/home/bambuko/Documents/parts/Extrusion.FCStd' does not exist!]
17:09:39 <Exception> File '/home/bambuko/Documents/parts/Y axis plates.FCStd' does not exist!
17:09:39 Exception opening file: /home/bambuko/Documents/parts/Y axis plates.FCStd [File '/home/bambuko/Documents/parts/Y axis plates.FCStd' does not exist!]
17:09:39 <Exception> File '/home/bambuko/Documents/parts/Table.FCStd' does not exist!
17:09:39 Exception opening file: /home/bambuko/Documents/parts/Table.FCStd [File '/home/bambuko/Documents/parts/Table.FCStd' does not exist!]
17:09:39 <Exception> File '/home/bambuko/Documents/parts/Spindle.FCStd' does not exist!
17:09:39 Exception opening file: /home/bambuko/Documents/parts/Spindle.FCStd [File '/home/bambuko/Documents/parts/Spindle.FCStd' does not exist!]
17:09:39 4.86e-07 <App> Document.cpp(3165): X_axis#Link024.LinkedObject: Link not restored
Linked object: Body001
Linked file: parts/Extrusion.FCStd
17:09:39 0.0206065 <App> Document.cpp(3165): X_axis#Link.LinkedObject: Link not restored
Linked object: Assembly001
Linked file: parts/HGR20.FCStd
17:09:39 0.0701588 <App> Document.cpp(3165): X_axis#Link005.LinkedObject: Link not restored
Linked object: Assembly
Linked file: parts/X axis plates.FCStd
17:09:39 0.0759749 <App> Document.cpp(3165): X_axis#Link004.LinkedObject: Link not restored
Linked object: Assembly001
Linked file: parts/X axis plates.FCStd
17:09:39 0.0873227 <App> Document.cpp(3165): X_axis#Link008.LinkedObject: Link not restored
Linked object: Assembly
Linked file: parts/NEMA23-76.FCStd
17:09:39 0.0900344 <App> Document.cpp(3165): X_axis#Link007.LinkedObject: Link not restored
Linked object: Assembly001
Linked file: parts/NEMA23-76.FCStd
17:09:39 0.0931592 <App> Document.cpp(3165): X_axis#Link006.LinkedObject: Link not restored
Linked object: Assembly003
Linked file: parts/Ballscrew.FCStd
17:09:39 0.101331 <App> Document.cpp(3165): X_axis#Link009.LinkedObject: Link not restored
Linked object: Assembly003
Linked file: parts/X axis plates.FCStd
17:09:39 0.107224 <App> Document.cpp(3165): X_axis#Link013.LinkedObject: Link not restored
Linked object: Assembly001
Linked file: parts/HGH20CA.FCStd
17:09:39 0.113227 <App> Document.cpp(3165): X_axis#Link012.LinkedObject: Link not restored
Linked object: Assembly
Linked file: parts/HGH20CA.FCStd
17:09:39 0.130132 <App> Document.cpp(3165): X_axis#Link022.LinkedObject: Link not restored
Linked object: Assembly005
Linked file: parts/X axis plates.FCStd
17:09:39 0.136105 <App> Document.cpp(3165): X_axis#Link023.LinkedObject: Link not restored
Linked object: Assembly005
Linked file: parts/X axis plates.FCStd
17:09:39 0.13926 <App> Document.cpp(3165): X_axis#Link020.LinkedObject: Link not restored
Linked object: Assembly
Linked file: parts/BallNut.FCStd
17:09:39 0.144889 <App> Document.cpp(3165): X_axis#Link021.LinkedObject: Link not restored
Linked object: Assembly
Linked file: parts/BallNut.FCStd
17:09:39 0.353749 <App> Document.cpp(3160): Y_axis#Link.LinkedObject: Link not restored
Linked object: Body005
Linked file: parts/Extrusion.FCStd
17:09:39 0.353795 <App> Document.cpp(3076): Reload partial document Y_axis
17:09:39 0.370282 <App> Document.cpp(3165): Z_axis#Link.LinkedObject: Link not restored
Linked object: Assembly
Linked file: parts/Z axis plates.FCStd
17:09:39 0.376453 <App> Document.cpp(3165): Z_axis#Link007.LinkedObject: Link not restored
Linked object: Assembly002
Linked file: parts/Ballscrew.FCStd
17:09:39 0.379713 <App> Document.cpp(3165): Z_axis#Link011.LinkedObject: Link not restored
Linked object: Assembly
Linked file: parts/HGR20.FCStd
17:09:39 0.385359 <App> Document.cpp(3165): Z_axis#Link012.LinkedObject: Link not restored
Linked object: Assembly
Linked file: parts/HGR20.FCStd
17:09:39 0.391414 <App> Document.cpp(3165): Z_axis#Link017.LinkedObject: Link not restored
Linked object: Assembly004
Linked file: parts/Z axis plates.FCStd
17:09:39 0.394477 <App> Document.cpp(3165): Z_axis#Link018.LinkedObject: Link not restored
Linked object: Assembly
Linked file: parts/NEMA23-76.FCStd
17:09:39 0.402905 <App> Document.cpp(3165): Z_axis#Link019.LinkedObject: Link not restored
Linked object: Assembly001
Linked file: parts/NEMA23-76.FCStd
17:09:39 0.408856 <App> Document.cpp(3165): Z_axis#Link029.LinkedObject: Link not restored
Linked object: Assembly001
Linked file: parts/HGH20CA.FCStd
17:09:39 0.414786 <App> Document.cpp(3165): Z_axis#Link028.LinkedObject: Link not restored
Linked object: Assembly
Linked file: parts/HGH20CA.FCStd
17:09:39 0.420481 <App> Document.cpp(3165): Z_axis#Link030.LinkedObject: Link not restored
Linked object: Assembly
Linked file: parts/HGH20CA.FCStd
17:09:39 0.423547 <App> Document.cpp(3165): Z_axis#Link026.LinkedObject: Link not restored
Linked object: Assembly
Linked file: parts/BallNut.FCStd
17:09:39 0.426266 <App> Document.cpp(3165): Z_axis#Link027.LinkedObject: Link not restored
Linked object: Assembly005
Linked file: parts/Z axis plates.FCStd
17:09:39 0.437541 <App> Document.cpp(3165): Z_axis#Link031.LinkedObject: Link not restored
Linked object: Assembly001
Linked file: parts/HGH20CA.FCStd
17:09:39 0.486464 <App> Document.cpp(3165): Z_carriage#Link015.LinkedObject: Link not restored
Linked object: Assembly001
Linked file: parts/Z axis plates.FCStd
17:09:39 0.490072 <App> Document.cpp(3165): Z_carriage#Link013.LinkedObject: Link not restored
Linked object: Assembly002
Linked file: parts/Z axis plates.FCStd
17:09:39 0.493339 <App> Document.cpp(3165): Z_carriage#Link014.LinkedObject: Link not restored
Linked object: Assembly002
Linked file: parts/Z axis plates.FCStd
17:09:39 0.500177 <App> Document.cpp(3165): Z_carriage#Link016.LinkedObject: Link not restored
Linked object: Assembly003
Linked file: parts/Z axis plates.FCStd
17:09:39 0.508622 <App> Document.cpp(3165): Z_carriage#Link010.LinkedObject: Link not restored
Linked object: Assembly
Linked file: parts/BallNut.FCStd
17:09:39 0.511753 <App> Document.cpp(3165): Z_carriage#Link023.LinkedObject: Link not restored
Linked object: Assembly001
Linked file: parts/Spindle.FCStd
17:09:39 0.517513 <App> Document.cpp(3165): Z_carriage#Link004.LinkedObject: Link not restored
Linked object: Assembly001
Linked file: parts/HGH20CA.FCStd
17:09:39 0.52353 <App> Document.cpp(3165): Z_carriage#Link003.LinkedObject: Link not restored
Linked object: Assembly
Linked file: parts/HGH20CA.FCStd
17:09:39 0.80841 <App> Document.cpp(3165): Y_axis#Link.LinkedObject: Link not restored
Linked object: Body005
Linked file: parts/Extrusion.FCStd
17:09:39 0.828815 <App> Document.cpp(3165): Y_axis#Link001.LinkedObject: Link not restored
Linked object: Body003
Linked file: parts/Extrusion.FCStd
17:09:39 0.861293 <App> Document.cpp(3165): Y_axis#Link008.LinkedObject: Link not restored
Linked object: Body005
Linked file: parts/Extrusion.FCStd
17:09:39 0.876465 <App> Document.cpp(3165): Y_axis#Link012.LinkedObject: Link not restored
Linked object: Assembly002
Linked file: parts/HGR20.FCStd
17:09:39 0.882323 <App> Document.cpp(3165): Y_axis#Link011.LinkedObject: Link not restored
Linked object: Assembly002
Linked file: parts/HGR20.FCStd
17:09:39 0.885395 <App> Document.cpp(3165): Y_axis#Link015.LinkedObject: Link not restored
Linked object: Assembly003
Linked file: parts/Y axis plates.FCStd
17:09:39 0.891214 <App> Document.cpp(3165): Y_axis#Link016.LinkedObject: Link not restored
Linked object: Assembly002
Linked file: parts/Y axis plates.FCStd
17:09:39 0.89979 <App> Document.cpp(3165): Y_axis#Link014.LinkedObject: Link not restored
Linked object: Assembly004
Linked file: parts/Ballscrew.FCStd
17:09:39 0.902841 <App> Document.cpp(3165): Y_axis#Link013.LinkedObject: Link not restored
Linked object: Assembly004
Linked file: parts/Ballscrew.FCStd
17:09:39 0.90859 <App> Document.cpp(3165): Y_axis#Link018.LinkedObject: Link not restored
Linked object: Assembly
Linked file: parts/Y axis plates.FCStd
17:09:39 0.914251 <App> Document.cpp(3165): Y_axis#Link017.LinkedObject: Link not restored
Linked object: Assembly001
Linked file: parts/Y axis plates.FCStd
17:09:39 0.922911 <App> Document.cpp(3165): Y_axis#Link020.LinkedObject: Link not restored
Linked object: Assembly001
Linked file: parts/NEMA23-76.FCStd
17:09:39 0.928673 <App> Document.cpp(3165): Y_axis#Link019.LinkedObject: Link not restored
Linked object: Assembly001
Linked file: parts/NEMA23-76.FCStd
17:09:39 0.93187 <App> Document.cpp(3165): Y_axis#Link021.LinkedObject: Link not restored
Linked object: Assembly
Linked file: parts/NEMA23-76.FCStd
17:09:39 0.937521 <App> Document.cpp(3165): Y_axis#Link022.LinkedObject: Link not restored
Linked object: Assembly
Linked file: parts/NEMA23-76.FCStd
17:09:39 0.943306 <App> Document.cpp(3165): Y_axis#Link023.LinkedObject: Link not restored
Linked object: Assembly004
Linked file: parts/Y axis plates.FCStd
17:09:39 0.949052 <App> Document.cpp(3165): Y_axis#Link024.LinkedObject: Link not restored
Linked object: Assembly005
Linked file: parts/Y axis plates.FCStd
17:09:39 0.957491 <App> Document.cpp(3165): Y_axis#Link025.LinkedObject: Link not restored
Linked object: Assembly
Linked file: parts/Table.FCStd
Re: Asm3 - assembly with ~200 fasteners.
I thought I try your file with FreeCAD on Windows (which you use, I believe?) just in case it some problem with backward/forward slashes
but not, I get exactly the same errors in Windows.
The only thing that is different is that when I close the file I get this: I thought you would be interested in this
but it seem to happen only in Windows (didn't happen yet in Linux)
Might help you with your other issue raised on github?
I will continue playing on Linux and report if I discover more...
but not, I get exactly the same errors in Windows.
The only thing that is different is that when I close the file I get this: I thought you would be interested in this
but it seem to happen only in Windows (didn't happen yet in Linux)
Might help you with your other issue raised on github?
I will continue playing on Linux and report if I discover more...
Re: Asm3 - assembly with ~200 fasteners.
Yep, when I closing file I got the same error - already reported as issue in github.
What the absolute path to the 4060CNC.FCStd on you machine? Links in xml project file are relative and I believe it's a problem.
Could you please try to open some file prom 'parts' folder. Like Extrusion or z-axis plates? This files doesn't have links to other documents.
Regarding partial load - you can find this option here:
What the absolute path to the 4060CNC.FCStd on you machine? Links in xml project file are relative and I believe it's a problem.
Could you please try to open some file prom 'parts' folder. Like Extrusion or z-axis plates? This files doesn't have links to other documents.
Regarding partial load - you can find this option here:
Re: Asm3 - assembly with ~200 fasteners.
Yes, I know, but what is interesting, is that I never (so far) had this error in Linux when openning and closing your file repeatedly,
and yet first time I have opened it in Windows I straight away got this message.
/home/bambuko/Documents/cad_test/Svet wrote:...What the absolute path to the 4060CNC.FCStd on you machine? ...
it seems likely?Svet wrote:...Links in xml project file are relative and I believe it's a problem...
18:06:47 Unknown exception while processing file: /home/bambuko/Documents/cad_test/parts/Z axis plates.FCStdSvet wrote:...Could you please try to open some file prom 'parts' folder...or z-axis plates?...
doesn't make a blind bit of difference - same error messages.Svet wrote:...Regarding partial load ...
Re: Asm3 - assembly with ~200 fasteners.
Ok, I just tried to open this file on brand new fresh windows laptop. What I did:
1) Windows 10 pro fresh install
2) FreeCAD LinkDaily dowloaded and run
3) Install Fasteners workbench from AddonManager
4) Restart FreeCad
5) Disable partial loading in preferences
5) Clone Git repo into C://Projects
6) Drag&Drop C://Projects/CNC4060/cads/CNC4060.FCStd into FreeCAD window
Everything got recomputed without any issue.
For your problem in Linux - try to copy 'parts' folder into you home folder - looks like FreeCAD trying to look for this files here. But still - it's weird. Looks like an bug for me - FreeCAD should look for linked documents with respect to parent doc path.
It's a shame, but I have no pc running linux to test... and cannot install it on my work laptop a well
1) Windows 10 pro fresh install
2) FreeCAD LinkDaily dowloaded and run
3) Install Fasteners workbench from AddonManager
4) Restart FreeCad
5) Disable partial loading in preferences
5) Clone Git repo into C://Projects
6) Drag&Drop C://Projects/CNC4060/cads/CNC4060.FCStd into FreeCAD window
Everything got recomputed without any issue.
For your problem in Linux - try to copy 'parts' folder into you home folder - looks like FreeCAD trying to look for this files here. But still - it's weird. Looks like an bug for me - FreeCAD should look for linked documents with respect to parent doc path.
It's a shame, but I have no pc running linux to test... and cannot install it on my work laptop a well
Re: Asm3 - assembly with ~200 fasteners.
I have tried in Linux with parts folder moved to my home directory and partial loading disable - it didn't make any difference - still the same error messages...
I will try now in Windows 10
Can you please translate for me:
later edit:
I have recreated/copied your folders and files into C and disable #d partial loading and still the same error
(and BTW also "illegal storage" message in Windows)
I will try now in Windows 10
Can you please translate for me:
I am a bit slow5) Clone Git repo into C://Projects
later edit:
I have recreated/copied your folders and files into C and disable #d partial loading and still the same error
(and BTW also "illegal storage" message in Windows)