Seems problem (pb!) with boolean fonctions integrated in PartDesign LinkBranch

Report observations made with the new Toponaming branch.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
User avatar
jpg87
Posts: 809
Joined: Thu Mar 16, 2017 7:16 am
Location: Limoges - France
Contact:

Seems problem (pb!) with boolean fonctions integrated in PartDesign LinkBranch

Post by jpg87 »

After seeing @ppemawm's fantastic work with FreeCAD version 0.20 and Assembly 4 (https://forum.freecadweb.org/viewtopic.php?f=24&t=67784 ), I tried to redraw the frame with FreeCAD LinkBranch to try my turn to stay in PartDesign thanks to the new tools integrated by @realthunder.

First attempt, the frame.
Reminder of the construction flow :
After integrating the dimensioned images of the project at scale 1 and in order to limit calculation times when the body has several Sweeps, I chose to build the frame in several bodies joined together at the end of the construction site by a Boolean union (operation included in PartDesign LinkBranch).
The principle of construction is of course the same as that of @ppemawm, except that LinkBranch makes it possible to remain in PartDesign.
I also incorporated solid bars: the problem of tube joints can be circumvented by an internal sweep of the main tube at the end of the run, but the files quickly become huge.
(https://forum.freecadweb.org/viewtopic.php?f=24&t=69101 )

I noticed that after a 3D sketch sweep, the result is not automatically merged with the previous step, although the Refine property is True. This required making multiple steps visible simultaneously, which is usually not possible but oddly sometimes worked.
To overcome this problem I decided to perform intermediate Boolean fusions. It seems abnormal to me.
fusions.png
fusions.png (99.42 KiB) Viewed 3172 times
Following a comment from @ppemawm, his file is 13.1 Mb while mine (full) is 212 Mb !!!
I want to believe that the fusions that I have regularly added are responsible for this, but I would like other opinions and remarks.

realthunder wrote: Fri May 20, 2022 1:23 am...
The file : https://www.dropbox.com/s/okx8ym5r0t1tc ... FCStd?dl=0
Last edited by jpg87 on Sun Jun 05, 2022 9:47 am, edited 2 times in total.
My website : http://help-freecad-jpg87.fr updated 2023/11/06
User avatar
bambuko
Veteran
Posts: 2160
Joined: Thu Oct 24, 2019 12:53 pm
Location: UK, England, North Devon

Re: Seems pb with boolean fonctions integrated in PartDesign LinkBranch

Post by bambuko »

@jpg87
I am very interested in "remaining in Part Design" (my preferred environment :mrgreen: ) and would like to examine your file in detail, please.
Is it possible to share (even if temporarily?) the file for use by interested parties?
thank you!
I am using Link branch and Assembly3
you can also download ... and try it here
excellent Assembly3 tutorials here
User avatar
jpg87
Posts: 809
Joined: Thu Mar 16, 2017 7:16 am
Location: Limoges - France
Contact:

Re: Seems pb with boolean fonctions integrated in PartDesign LinkBranch

Post by jpg87 »

bambuko wrote: Sat Jun 04, 2022 9:55 am...
I just added it above (without the sources from a paying site!).
My website : http://help-freecad-jpg87.fr updated 2023/11/06
User avatar
bambuko
Veteran
Posts: 2160
Joined: Thu Oct 24, 2019 12:53 pm
Location: UK, England, North Devon

Re: Seems pb with boolean fonctions integrated in PartDesign LinkBranch

Post by bambuko »

jpg87 wrote: Sat Jun 04, 2022 10:06 am ...I just added it above..
or below (depending on your forum settings ;) :lol: )
Can you, please explain what makes it into 212 Mb file ? (downloaded file is 19.2Mb).
I am confused... :oops:
I am using Link branch and Assembly3
you can also download ... and try it here
excellent Assembly3 tutorials here
User avatar
jpg87
Posts: 809
Joined: Thu Mar 16, 2017 7:16 am
Location: Limoges - France
Contact:

Re: Seems pb with boolean fonctions integrated in PartDesign LinkBranch

Post by jpg87 »

bambuko wrote: Sat Jun 04, 2022 10:12 am Can you, please explain what makes it into 212 Mb file ? (downloaded file is 19.2Mb).
This is just a small part of the construction, to show the disjunction problem between the tree parts. Here are all the steps. If you want, I can send you the complete file in private.

FrameStep1.png
FrameStep1.png (289.38 KiB) Viewed 3066 times
FrameStep2.png
FrameStep2.png (229.4 KiB) Viewed 3066 times
FrameStep3.png
FrameStep3.png (260.08 KiB) Viewed 3066 times
FrameStep4.png
FrameStep4.png (366.66 KiB) Viewed 3066 times
My website : http://help-freecad-jpg87.fr updated 2023/11/06
User avatar
bambuko
Veteran
Posts: 2160
Joined: Thu Oct 24, 2019 12:53 pm
Location: UK, England, North Devon

Re: Seems pb with boolean fonctions integrated in PartDesign LinkBranch

Post by bambuko »

jpg87 wrote: Sat Jun 04, 2022 11:58 am ... If you want, I can send you the complete file in private...
Thank you for the explanation - let me have a good look at the file you have shared (and if I think I need more I will come back to you).
I am using Link branch and Assembly3
you can also download ... and try it here
excellent Assembly3 tutorials here
user1234
Veteran
Posts: 3319
Joined: Mon Jul 11, 2016 5:08 pm

Re: Seems pb with boolean fonctions integrated in PartDesign LinkBranch

Post by user1234 »

What means pb in the thread title?


Greetings
user1234
User avatar
jpg87
Posts: 809
Joined: Thu Mar 16, 2017 7:16 am
Location: Limoges - France
Contact:

Re: Seems pb with boolean fonctions integrated in PartDesign LinkBranch

Post by jpg87 »

user1234 wrote: Sat Jun 04, 2022 5:43 pm What means pb in the thread title?
The answer is above, with the boxes on the image.
jpg87 wrote: Sat Jun 04, 2022 9:44 am I noticed that after a 3D sketch sweep, the result is not automatically merged with the previous step, although the Refine property is True. This required making multiple steps visible simultaneously, which is usually not possible but oddly sometimes worked.
To overcome this problem I decided to perform intermediate Boolean fusions. It seems abnormal to me.
jpg87 wrote: Sat Jun 04, 2022 9:44 am Following a comment from @ppemawm, his file is 13.1 Mb while mine (full) is 212 Mb !!!
I want to believe that the fusions that I have regularly added are responsible for this, but I would like other opinions and remarks.
My website : http://help-freecad-jpg87.fr updated 2023/11/06
User avatar
bambuko
Veteran
Posts: 2160
Joined: Thu Oct 24, 2019 12:53 pm
Location: UK, England, North Devon

Re: Seems pb with boolean fonctions integrated in PartDesign LinkBranch

Post by bambuko »

jpg87 wrote: Sun Jun 05, 2022 6:03 am
user1234 wrote: Sat Jun 04, 2022 5:43 pm What means pb in the thread title?
The answer is above, with the boxes on the image.
Like @user1234 I remain puzzled by the abbreviation pb
pb = p.... b.... :?:
I am using Link branch and Assembly3
you can also download ... and try it here
excellent Assembly3 tutorials here
realthunder
Veteran
Posts: 2190
Joined: Tue Jan 03, 2017 10:55 am

Re: Seems pb with boolean fonctions integrated in PartDesign LinkBranch

Post by realthunder »

jpg87 wrote: Sat Jun 04, 2022 9:44 am Following a comment from @ppemawm, his file is 13.1 Mb while mine (full) is 212 Mb !!!
I want to believe that the fusions that I have regularly added are responsible for this, but I would like other opinions and remarks.
It seems to be an OCC problem. I got the file you privately sent to me, and extract it (because FCStd is a zip file in case you don't know). Just sort the extracted files by size, you'll see the largest file is Fillet.Shape.brp (i.e. the shape of the fillet you created) being at 147MiB, and the second largest is Body003 at 139MiB, which is basically just a copy of Fillet. Don't know why it is a bit smaller, but not that much of difference anyway. The third largest is Boolean037 at only 34.9MiB. Note that those are uncompressed size, while FCStd is a compressed zip archive.

So I dig a bit deeper, and found out that indeed those new faces generated by the fillet are responsible for the bulk of the file. The following code selects the faces of the fillet that are bigger than 10MiB.

Code: Select all

def selectFace(obj, size=10*1024*1024):
	Gui.Selection.clearSelection()
	for i, face in enumerate(obj.Shape.Faces):
		if len(face.exportBrepToString()) > size:
			Gui.Selection.addSelection(obj, f'Face{i+1}')
selectFace(App.ActiveDocument.Fillet)
You can also call the function as below and see that there is non of such big face in Boolean feature.

Code: Select all

selectFace(App.ActiveDocument.Boolean037)
Screenshot from 2022-06-05 16-13-23.png
Screenshot from 2022-06-05 16-13-23.png (322.22 KiB) Viewed 2820 times
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
Post Reply