FredOP wrote: ↑Tue Jun 15, 2021 4:16 pm
...
Is it doable in PartDesign though ?
I'd rather stay in PD, this is already confusing enough
Yes, but, somewhere along the line you want/need to use Draft array, right? And that, takes you out of PD.
This example uses PD, you'll note the point array USES a PD Body, the result is not in a Body, it is a Draft object. Thus the Boolean is done with a Part WB Boolean.
Snip macro screenshot-dd6a2c.png (88.04 KiB) Viewed 768 times
papyblaise wrote: ↑Tue Jun 15, 2021 3:50 pm
but as soon as you want to have 20 or 30 (and more) it becomes impossible
Draft Array has no limits
not more! This is fixed in 0.20dev!
Not really
Talking about Pocket / Multitransform performance here
I made this box with a 30x30 ( 900 ) square holes through pocket. While this clearly is done in a reasonable time (35 seconds on my workstation, still a very long time IMO) and the result looks good, every operation after that (downstream) requires 30 seconds just to be accepted, and every time you move one point in a sketch downstream, you have a 5 second wait. This is the point where I would give up. In 0.20 Version: 0.20.25025 (Git) AppImage. And I have unlimited RAM and CPU power (64 GB RAM, DUal Xeon E5-2670, 32 cores total). Even
FredOP wrote: ↑Tue Jun 15, 2021 4:39 pmI made this box with a 30x30 ( 900 ) square holes through pocket. While this clearly is done in a reasonable time (35 seconds on my workstation, still a very long time IMO)
For that part is sound pretty good. Before the optimization, i am pretty sure, that it took around 5min in PartDesign (normally 0.3s per operation).
What is important is if your OCCT is compiled with TTB. Than you gain max. 50%. By the way, the only CAD system know that uses muitcore is FreeCAD with OCCT with TBB (but an operation took longer than the others).
I usually use scripting with Part and make some hole (maybe and array of 30x30) is not taking forever, the down side is that you have to script the model and use the Part Module only (I suspect that is more efficient as there no overloads, as it is the most direct way to use OCCT).
I've found some slow down in the past, but only with some complex solids, or if many boolean operation has to be applied, but recently I've tried to code something with 100 or more holes in a "plate" and the operation was executed in less than 1 minute, maybe 30 or 30 seconds, with a slow i3-2100 and 4GB of RAM.
Regards
Carlo D.
GitHub page: https://github.com/onekk/freecad-doc.
- In deep articles on FreeCAD.
- Learning how to model with scripting.
- Various other stuffs.
Shalmeneser wrote: ↑Tue Jun 15, 2021 5:30 pm
You can easily draw all the holes in the same sketch with Sketcher_RectangularArray (more than 200 constraints).
Draft + Part : ~080 seconds
PartDesign: ~100 seconds
The 20 seconds difference are because PartDesign has no rectangle array, only a the multitransform tool, so there is a small internal extra step, while the draft array tool have a rectangle pattern as default. Before the PartDesign optimization that would took around 15min.
Shalmeneser wrote: ↑Tue Jun 15, 2021 5:30 pm
You can easily draw all the holes in the same sketch with Sketcher_RectangularArray (more than 200 constraints).
Maybe you are out of RAM? FreeCAD uses here ~14.8GByte. Try it if the sketcher. I am pretty sure that will not work with the sketcher. With the amount of elements, the solver of the sketcher needs minimum quadratic of power.