Assembly3 preview

Discussion about the development of the Assembly workbench.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
tom
Posts: 165
Joined: Sun Mar 29, 2015 9:20 pm

Re: Assembly3 preview

Post by tom »

realthunder wrote: Tue May 12, 2020 2:09 pm Thanks for reporting. It has been fixed. Please try the latest image.
Yes, it's fixed now. Thanks.
cos4
Posts: 15
Joined: Wed Feb 05, 2020 8:37 pm

Re: Assembly3 preview

Post by cos4 »

realthunder wrote: Sun May 10, 2020 11:47 pm
cos4 wrote: Sun May 10, 2020 9:33 pm I'm using Assembly3 now for a while to assemble my new 3D-Printer. The only issue I have is that while the assembly gets more and more complex with sometimes having to modify sub-assemblies again I get frequent problems with "inconsistent contraints". Do you have any recommendations on how to identify what is causing the problem other than deleting constraints and checking when the solver can solve the assembly again?
You don't need to delete the constraint, just disable it. Right click the constraint in the tree and select disable. You can limit the solving to the selected assembly by disabling the 'AutoSolve' option, and select the sub-assembly (or any of its children) and then click the 'Solve' button manually. Not the 'QuickSolve', but a full 'Solve' will give you more diagnostic information in the report view. Make sure you don't see the 'Redundant constraint' warning to avoid future inconsistent constraint error.
Thanks! I managed to remove all inconsistent and redundant constraints. Need to have a deeper look why some constraints are marked as redundant and fix that.
Would be nice if you could select multiple constraints and en-/disable them as a batch for such procedures.
Does the "freezing" of a subassembly prevent the it's constraints from being solved? Or put differently is it viable to freeze all sub-assemblies to check if the a constraint issue is originating from a constraint in a sub-assembly?
tom
Posts: 165
Joined: Sun Mar 29, 2015 9:20 pm

Re: Assembly3 preview

Post by tom »

I encountered another issue with the asm3 branch when opening a document created with the standard FC version. The attached file was created by the standard version of FC 0.19 (last saved with FC-0.19-21007). The file was stripped down from a larger project, so that it can be uploaded here. When opening the file with the asm3 version the Sketch007 loses its external references to Sketch006:

Code: Select all

6e-08 <App> Document.cpp(3032): Failed to restore sketch_reference_test#Sketch007: Failed to restore external geometry
Opening the same file in the standard version of FC does not show the problem.

When using external references I try to reference only sketches but not edges generated by the OCC kernel, because I think that the IDs used in sketches are under control of FC and thus not subject of sudden change. I wonder why the asm3 branch fails in restoring those "easier" references while it does a pretty good job in restoring references to OCC generated edges or face.

OS: macOS High Sierra (10.13)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.20886 +2256 (Git)
Build type: Release
Branch: LinkStage3
Hash: 330e59cb5ce14d465934dad1df07a0a0d9a5248c
Python version: 3.7.6
Qt version: 5.12.1
Coin version: 4.0.0
OCC version: 7.4.0
Locale: English/Germany (en_DE)
Attachments
sketch_reference_test.FCStd
(208.71 KiB) Downloaded 46 times
realthunder
Veteran
Posts: 2190
Joined: Tue Jan 03, 2017 10:55 am

Re: Assembly3 preview

Post by realthunder »

tom wrote: Tue May 12, 2020 10:07 pm Opening the same file in the standard version of FC does not show the problem.
The error occurs because that sketch somehow has duplicated reference to the same external geometry. It does not seem to cause any harm however, so I will relax the migration check, and you'll only see a warning message.

tom wrote: Tue May 12, 2020 10:07 pm When using external references I try to reference only sketches but not edges generated by the OCC kernel, because I think that the IDs used in sketches are under control of FC and thus not subject of sudden change. I wonder why the asm3 branch fails in restoring those "easier" references while it does a pretty good job in restoring references to OCC generated edges or face.
There are major changes in the way geometries are named and referenced in sketch. In fact the whole development of topo naming in my fork starts with refactoring sketch geometry naming and referencing.
Try Assembly3 with my custom build of FreeCAD at here.
And if you'd like to show your support, you can donate through patreon, liberapay, or paypal
realthunder
Veteran
Posts: 2190
Joined: Tue Jan 03, 2017 10:55 am

Re: Assembly3 preview

Post by realthunder »

cos4 wrote: Tue May 12, 2020 8:49 pm Would be nice if you could select multiple constraints and en-/disable them as a batch for such procedures.
Will do in the future

Does the "freezing" of a subassembly prevent the it's constraints from being solved? Or put differently is it viable to freeze all sub-assemblies to check if the a constraint issue is originating from a constraint in a sub-assembly?
Freezing is for a different purpose, although yes it does prevent solving. However, the sub-assembly is only solved if it is touched. By following the the assembly with the exclamation mark you can easily find the deepest sub-assembly that is causing the problem. Any deeper sub-assemblies are just fine.
Try Assembly3 with my custom build of FreeCAD at here.
And if you'd like to show your support, you can donate through patreon, liberapay, or paypal
User avatar
jpg87
Posts: 809
Joined: Thu Mar 16, 2017 7:16 am
Location: Limoges - France
Contact:

Re: Assembly3 preview

Post by jpg87 »

realthunder wrote: Wed May 13, 2020 2:38 am...
Hello,
I wanted to use Asm3 to answer a question of animating a sketch on the French forum.
I built my sketches in different bodies, then moved it all into an assembly container as usual, like for solids. Everything works, including for mouse animation with AxialMove.
However when I use my macro to animate automatically, the calculations take place, but the result is only displayed at the end. I tested on another of my assemblies and it works!
Do not understand !!!!!!!
biellmani.gif
biellmani.gif (700.43 KiB) Viewed 2223 times
Attachments
Asm3BiellMani.FCStd
(45.85 KiB) Downloaded 78 times
anim_asm3biellmani.py
(387 Bytes) Downloaded 72 times
My website : http://help-freecad-jpg87.fr updated 2023/11/06
realthunder
Veteran
Posts: 2190
Joined: Tue Jan 03, 2017 10:55 am

Re: Assembly3 preview

Post by realthunder »

jpg87 wrote: Wed May 13, 2020 1:47 pm I wanted to use Asm3 to answer a question of animating a sketch on the French forum.
Just add the following call before sleeping

Code: Select all

FreeCADGui.updateGui()
Try Assembly3 with my custom build of FreeCAD at here.
And if you'd like to show your support, you can donate through patreon, liberapay, or paypal
User avatar
jpg87
Posts: 809
Joined: Thu Mar 16, 2017 7:16 am
Location: Limoges - France
Contact:

Re: Assembly3 preview

Post by jpg87 »

realthunder wrote: Wed May 13, 2020 11:59 pm Just add the following call before sleeping
Thank you. It's OK.
I don't understand why my other mechanisms worked without this line.
My website : http://help-freecad-jpg87.fr updated 2023/11/06
tom
Posts: 165
Joined: Sun Mar 29, 2015 9:20 pm

Re: Assembly3 preview

Post by tom »

realthunder wrote: Wed May 13, 2020 2:33 am The error occurs because that sketch somehow has duplicated reference to the same external geometry. It does not seem to cause any harm however, so I will relax the migration check, and you'll only see a warning message.
I think, the duplicated reference was caused by saving the document in the asm3 version and then going back to the standard version of FC (same root cause as in the invalid group issue). It would really help to relax the migration check for this case, because probably other users are also switching between the two FC versions as long as the asm3 version is not merged with the standard version. Not breaking the models, when switching between the FC versions, would be very appreciated.
Grawp
Posts: 45
Joined: Sat Mar 03, 2018 9:34 am

Re: Assembly3 preview

Post by Grawp »

Hello @realthunder,
Topological naming is absolutely great and a must have feature, still I'd like to whether there is or will be a possibility - in your FC fork - to reference things more dynamically similar to what can be done in CadQuery: https://pythonhosted.org/cadquery/selectors.html

I often (try) to make enclosures for various electronic boards in FC and a functionality to e.g. select top most point of a board and use it to create working plane representing roof of an inside space in an enclosure would come handy. Does this make sense?
Post Reply