Create A "Clean" Sweep of this!

Post here for help on using FreeCAD's graphical user interface (GUI).
Forum rules
and Helpful information
IMPORTANT: Please click here and read this first, before asking for help

Also, be nice to others! Read the FreeCAD code of conduct!
TheMarkster
Posts: 980
Joined: Thu Apr 05, 2018 1:53 am

Re: Create A "Clean" Sweep of this!

Postby TheMarkster » Sat Jul 20, 2019 11:32 pm

We can give it some extra support so that the all the pieces of the array are connected.

phpBB [video]
User avatar
bejant
Posts: 5712
Joined: Thu Jul 11, 2013 3:06 pm

Re: Create A "Clean" Sweep of this!

Postby bejant » Sun Jul 21, 2019 11:46 am

chrisb wrote:
Sat Jul 20, 2019 10:07 pm
Can someone please confirm?
I can reproduce the crash in a different manner. Open the cadre.fcstd file from the second post and edit Sketch to change the Arc from a 1/4 circle
20190721a.png
20190721a.png (16.34 KiB) Viewed 122 times

to a 1/2 circle
20190721b.png
20190721b.png (17.37 KiB) Viewed 122 times

FreeCAD crashes for me after closing Sketch.

OS: Ubuntu 18.04.2 LTS (ubuntu:GNOME/ubuntu)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19. (build date 2019-07-08)
Build type: Release
Python version: 3.6.8
Qt version: 5.9.5
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/UnitedStates (en_US)
chrisb
Posts: 16852
Joined: Tue Mar 17, 2015 9:14 am

Re: Create A "Clean" Sweep of this!

Postby chrisb » Sun Jul 21, 2019 12:26 pm

bejant wrote:
Sun Jul 21, 2019 11:46 am
I can reproduce the crash in a different manner.
I can confirm that crash.

OS: macOS High Sierra (10.13)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.17360 (Git)
Build type: Release
Branch: master
Hash: 348160d4ea970f5f6d0850272c04800c0222c8ba
Python version: 3.7.3
Qt version: 5.9.7
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/Germany (en_DE)
User avatar
bejant
Posts: 5712
Joined: Thu Jul 11, 2013 3:06 pm

Re: Create A "Clean" Sweep of this!

Postby bejant » Sun Jul 21, 2019 1:09 pm

I **should** be able to create the model entirely in Part Design, but using the shape contained in Sketch001 fails.

If I substitute a rectangle for the geometry in Sketch001 I can create the model in Part Design as I intended but the result fails Check Geometry when BOPCheck = True.

20190721c.png
20190721c.png (21.27 KiB) Viewed 113 times

20190721b-PartWB-cadre.FCStd
(202.34 KiB) Downloaded 2 times


OS: Ubuntu 18.04.2 LTS (ubuntu:GNOME/ubuntu)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19. (build date 2019-07-08)
Build type: Release
Python version: 3.6.8
Qt version: 5.9.5
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/UnitedStates (en_US)



Dropping back to the 0.16 Appimage version, the Part WB > Sweep along a Sweep path of the fourth of the model in the +X, +Y quadrant works using the geometry of Sketch001. The Sweep passes passes Check Geometry when BOPCheck = True.

20190721d.png
20190721d.png (9.89 KiB) Viewed 113 times

20190721b-016-cadre.FCStd
Created with FreeCAD 0.16
(104.1 KiB) Not downloaded yet


OS: Ubuntu 18.04.2 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.16.6712 (Git)
Build type: None
Branch: releases/FreeCAD-0-16
Hash: da2d364457257a7a8c6fb2137cea12c45becd71a
Python version: 2.7.6
Qt version: 4.8.6
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17
chrisb
Posts: 16852
Joined: Tue Mar 17, 2015 9:14 am

Re: Create A "Clean" Sweep of this!

Postby chrisb » Sun Jul 21, 2019 3:44 pm

We see perhaps a regression in OCC?
User avatar
bejant
Posts: 5712
Joined: Thu Jul 11, 2013 3:06 pm

Re: Create A "Clean" Sweep of this!

Postby bejant » Mon Jul 22, 2019 2:03 am

I'm not sure, I have to wonder if the problem could be how FreeCAD deals with Sketcher Arcs arcs (also thinking about the Trim problem with Arcs). If I go to the Draft WB and use the Bi-Directionally Convert tool to convert the Sketches of the path and the profile of cadre.fcstd to DWires, Part WB > Sweep in the +X +Y quadrant works and passes Check Geometry with BOPCheck = True.
Edit: a Part WB > Sweep using Sketch001 as the cross-section works and passes too.


20190721-cadreDWireSweep.FCStd
(67.77 KiB) Downloaded 4 times


A Part WB > Mirror of the Sweep, then a Part WB > Fusion of the two quarters to make a half, another Mirror of the half, and finally a Fusion of the two halves also passes.

OS: Ubuntu 18.04.2 LTS
Word size of OS: 32-bit
Word size of FreeCAD: 32-bit
Version: 0.18.1.
Build type: Release
Python version: 3.6.7
Qt version: 5.9.5
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/UnitedStates (en_US)
Last edited by bejant on Mon Jul 22, 2019 12:58 pm, edited 1 time in total.
chrisb
Posts: 16852
Joined: Tue Mar 17, 2015 9:14 am

Re: Create A "Clean" Sweep of this!

Postby chrisb » Mon Jul 22, 2019 5:33 am

If I convert the wire back to a sketch the sweep works as well without errors. I will try to extract a minimal example and then Abdullah and Werner hopefully will have a look at this issue.
chrisb
Posts: 16852
Joined: Tue Mar 17, 2015 9:14 am

Re: Create A "Clean" Sweep of this!

Postby chrisb » Mon Jul 22, 2019 5:46 am

I have to row back.
bejant wrote:
Mon Jul 22, 2019 2:03 am
If I go to the Draft WB and use the Bi-Directionally Convert tool to convert the Sketches of the path and the profile of cadre.fcstd to DWires, Part WB > Sweep in the +X +Y quadrant works and passes Check Geometry with BOPCheck = True.
If I create the sweep with the original sketch from your uploaded file it passes BOPCheck as well.
kisolre
Posts: 1076
Joined: Wed Nov 21, 2018 1:13 pm

Re: Create A "Clean" Sweep of this!

Postby kisolre » Mon Jul 22, 2019 6:38 am

I made an experiment with Part sweep and PartDesign sweep with the same profile and path. In the attached file both work. But when I add PointOnLine constraint between center of path arc and horizontal axis Part sweep is still Ok but PartDesign sweep fails. In my understanding they are the same operation and since the PD one is first feature in the body no extra union is performed and the result should be the same. The sould either both succeed or both fail.
PD SweepFail.JPG
PD SweepFail.JPG (62.4 KiB) Viewed 64 times
OS: Windows 8.1
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.17433 (Git)
Build type: Release
Branch: master
Hash: 125380ddd9a1fdeb45ffc736040dad1f6343daa4
Python version: 3.6.6
Qt version: 5.6.2
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: Bulgarian/Bulgaria (bg_BG)
Attachments
PD SweepFail.FCStd
(200.2 KiB) Downloaded 2 times
User avatar
bejant
Posts: 5712
Joined: Thu Jul 11, 2013 3:06 pm

Re: Create A "Clean" Sweep of this!

Postby bejant » Mon Jul 22, 2019 12:46 pm

chrisb wrote:
Mon Jul 22, 2019 5:46 am
I have to row back.
bejant wrote:
Mon Jul 22, 2019 2:03 am
If I go to the Draft WB and use the Bi-Directionally Convert tool to convert the Sketches of the path and the profile of cadre.fcstd to DWires, Part WB > Sweep in the +X +Y quadrant works and passes Check Geometry with BOPCheck = True.
If I create the sweep with the original sketch from your uploaded file it passes BOPCheck as well.
Part WB > Sweep using Sketch001 in that file as the cross-section works here too, so I think this is now isolated to being a Part Design problem?

kisolre wrote:
Mon Jul 22, 2019 6:38 am
But when I add PointOnLine constraint between center of path arc and horizontal axis Part sweep is still Ok but PartDesign sweep fails.
In the file you posted, for me Additive Pipe passes Check Geometry with BOPCheck = True.

Your Sketch001 profile only has one arc while the problem Sketches have two arcs that form an S shape. When I change the profile in Sketch001 to include the other arc FreeCAD blinked out of existence after exiting Sketcher. When I reopen the FreeCAD file and edit Sketch001 a second time FreeCAD didn't crash, but Additive Pipe didn't update.

20190722b-PD SweepFail.FCStd
(219.33 KiB) Downloaded 1 time

OS: Ubuntu 18.04.2 LTS (ubuntu:GNOME/ubuntu)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.
Build type: Release
Python version: 3.6.8
Qt version: 5.9.5
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/UnitedStates (en_US)
cron