Surface to surface tangency

Have some feature requests, feedback, cool stuff to share, or want to know where FreeCAD is going? This is the place.
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
User avatar
Pauvres_honteux
Posts: 384
Joined: Sun Feb 16, 2014 12:05 am
Location: Far side of the moon

Re: Surface to surface tangency

Postby Pauvres_honteux » Wed Sep 23, 2020 5:55 am

mnesarco wrote:
Tue Sep 22, 2020 5:29 pm
... access only from paid support or from the OCCT Commercial platform.
I knew it! Them greedy bastards want to force us to pay through our noses to get access to tangency and toponaming stuff!!!
.
mnesarco wrote:
Tue Sep 22, 2020 5:29 pm
Another approach is to develop the algorithm from scratch on top on OCCT fundation and modeling classes...
.
Maybe there's a way around that if someone
? in here with an already existing OCCT-account can poke around in their code to find clues to how they have set it up?
.
mnesarco wrote:
Tue Sep 22, 2020 5:29 pm
The basic idea is to connect both surfaces with bezier curves ...
Isn't this what Chris_G already have done in his "Curves workbench"? If so, that particular idea is faulty due to the fact that he starts with approximating the original curve which is the basis/start of both surfaces, i.e. he starts the whole process by introducing a fault! And microelly2 copied that into his nurbs workbench... :cry:
But approximating curves do have another application, making jagged intersect curves and jagged reflect curves smooth (and forced on a surface if a user want that) but that is a separate function and feature request (denomination: "Smoothing"?).
.
mnesarco wrote:
Tue Sep 22, 2020 5:29 pm
There are classes like
GeomFill_ConstrainedFilling (https://old.opencascade.com/doc/occt-7. ... lling.html)
I'd say it's a start anyway!
User avatar
Pauvres_honteux
Posts: 384
Joined: Sun Feb 16, 2014 12:05 am
Location: Far side of the moon

Re: Surface to surface tangency

Postby Pauvres_honteux » Wed Sep 23, 2020 6:27 am

vanuan wrote:
Wed Sep 23, 2020 1:39 am
I don't have enough math/geometry background.
Sorry to hear that, but I think there is salvation in this fora! Out of nearly 30 000 members there must surely be at least a few with the knowledge required to get this moving forward.
.
vanuan wrote:
Wed Sep 23, 2020 1:39 am
... require me several months to only understand the basics of surface mathematics...
Well, as long we do not give up or give in, we will move forward, step be step we'll get there!
See it like this: if it was impossible, no CAD-software would exist, but it does!
.
I would try to reach out to the community to encourage a lot more cooperation and problem solving. United we stand, alone we break down!
Up on the barricades! Vive la revolution!! :P
User avatar
tanderson69
Posts: 1545
Joined: Thu Feb 18, 2010 1:07 am

Re: Surface to surface tangency

Postby tanderson69 » Thu Sep 24, 2020 10:10 am

mnesarco wrote:
Tue Sep 22, 2020 5:29 pm
I believe it is doable using OCCT but it requires some obscure API that you can access only from paid support or from the OCCT Commercial platform.
How did you come to this conclusion?


mnesarco wrote:
Tue Sep 22, 2020 5:29 pm
There are classes like GeomFill_ConstrainedFilling (https://old.opencascade.com/doc/occt-7. ... lling.html) but there are no working examples or documentation on how to use that.
I don't think that is what you want. There are several layers in occt and that one is deeper than you want/need. Roman uses 'GeomPlate_BuildPlateSurface' and in the comments 'BRepFill_Filling' is mentioned. I think 'BRepFill_Filling' is what you want.surface modeling part 6


Pauvres_honteux wrote:
Wed Sep 23, 2020 5:55 am
I knew it! Them greedy bastards want to force us to pay through our noses to get access to tangency and toponaming stuff!!!
There is a proprietary toponaming api? link?
User avatar
mnesarco
Posts: 197
Joined: Thu Mar 26, 2020 8:52 pm

Re: Surface to surface tangency

Postby mnesarco » Thu Sep 24, 2020 4:56 pm

tanderson69 wrote:
Thu Sep 24, 2020 10:10 am
mnesarco wrote:
Tue Sep 22, 2020 5:29 pm
I believe it is doable using OCCT but it requires some obscure API that you can access only from paid support or from the OCCT Commercial platform.
How did you come to this conclusion?
It is doable because you can see smooth surfaces in OCCT commercial products. But there is not official documentation on how to achieve that in opensource OCCT core.

tanderson69 wrote:
Thu Sep 24, 2020 10:10 am
mnesarco wrote:
Tue Sep 22, 2020 5:29 pm
There are classes like GeomFill_ConstrainedFilling (https://old.opencascade.com/doc/occt-7. ... lling.html) but there are no working examples or documentation on how to use that.
I don't think that is what you want. There are several layers in occt and that one is deeper than you want/need. Roman uses 'GeomPlate_BuildPlateSurface' and in the comments 'BRepFill_Filling' is mentioned. I think 'BRepFill_Filling' is what you want.surface modeling part 6
I have tried BRepFill_Filling without success, i have read surface modeling part 6 many times, many times it leads to invalid shapes, segfaults, in general I never got a desired result. Maybe I am doing something batantly wrong, but again the documentation does not help.

OCCT formun is rarely useful, questions get never answered or partially answered or answered with "contact our paid support services"

It looks like you have knowledge about this topic, it would be great if you can share it.
User avatar
tanderson69
Posts: 1545
Joined: Thu Feb 18, 2010 1:07 am

Re: Surface to surface tangency

Postby tanderson69 » Thu Sep 24, 2020 7:16 pm

mnesarco wrote:
Thu Sep 24, 2020 4:56 pm
tanderson69 wrote:
Thu Sep 24, 2020 10:10 am
mnesarco wrote:
Tue Sep 22, 2020 5:29 pm
I believe it is doable using OCCT but it requires some obscure API that you can access only from paid support or from the OCCT Commercial platform.
How did you come to this conclusion?
It is doable because you can see smooth surfaces in OCCT commercial products. But there is not official documentation on how to achieve that in opensource OCCT core.
I don't really know, but I guess if they had an advanced, proprietary surfacing API, they would be advertising it.

mnesarco wrote:
Thu Sep 24, 2020 4:56 pm
tanderson69 wrote:
Thu Sep 24, 2020 10:10 am
mnesarco wrote:
Tue Sep 22, 2020 5:29 pm
There are classes like GeomFill_ConstrainedFilling (https://old.opencascade.com/doc/occt-7. ... lling.html) but there are no working examples or documentation on how to use that.
I don't think that is what you want. There are several layers in occt and that one is deeper than you want/need. Roman uses 'GeomPlate_BuildPlateSurface' and in the comments 'BRepFill_Filling' is mentioned. I think 'BRepFill_Filling' is what you want.surface modeling part 6
I have tried BRepFill_Filling without success, i have read surface modeling part 6 many times, many times it leads to invalid shapes, segfaults, in general I never got a desired result. Maybe I am doing something batantly wrong, but again the documentation does not help.

OCCT formun is rarely useful, questions get never answered or partially answered or answered with "contact our paid support services"

It looks like you have knowledge about this topic, it would be great if you can share it.
Welcome to occt programming, where the first thing you learn is how to properly swear. :) This person has made at least a few 'fill' surfaces. https://neweopencascade.wordpress.com/2 ... ng-part-i/
User avatar
mnesarco
Posts: 197
Joined: Thu Mar 26, 2020 8:52 pm

Re: Surface to surface tangency

Postby mnesarco » Thu Sep 24, 2020 7:46 pm

tanderson69 wrote:
Thu Sep 24, 2020 7:16 pm
Welcome to occt programming, where the first thing you learn is how to properly swear. :) This person has made at least a few 'fill' surfaces. https://neweopencascade.wordpress.com/2 ... ng-part-i/
Yes I know. And I have also tryied https://neweopencascade.wordpress.com/2 ... ng-part-i/, unfortunatelly it works on simple cases but no in my complex surface problem, and it is extraordinary slow.

BTW, that is the most close example you will find. At least today (2020-09)
User avatar
tanderson69
Posts: 1545
Joined: Thu Feb 18, 2010 1:07 am

Re: Surface to surface tangency

Postby tanderson69 » Thu Sep 24, 2020 11:20 pm

mnesarco wrote:
Thu Sep 24, 2020 7:46 pm
unfortunatelly it works on simple cases but no in my complex surface problem, and it is extraordinary slow.
Do you have your problem posted somewhere? I probably won't get any farther than you, but I will look at it.
User avatar
mnesarco
Posts: 197
Joined: Thu Mar 26, 2020 8:52 pm

Re: Surface to surface tangency

Postby mnesarco » Fri Sep 25, 2020 3:46 am

tanderson69 wrote:
Thu Sep 24, 2020 11:20 pm
Do you have your problem posted somewhere? I probably won't get any farther than you, but I will look at it.
Unfortunatelly no, I was trying everything that I encountered on internet but finally because nothing works in that direction I changed to another approach.

This is where I am now:
93716909-f6c37880-fb37-11ea-88fd-995dbabfc295.png
93716909-f6c37880-fb37-11ea-88fd-995dbabfc295.png (78.45 KiB) Viewed 400 times


But my current solution is far from a general surface-to-surface tangent transition (C1). I hope at some point I discover a more general solution.
User avatar
Pauvres_honteux
Posts: 384
Joined: Sun Feb 16, 2014 12:05 am
Location: Far side of the moon

Re: Surface to surface tangency

Postby Pauvres_honteux » Fri Sep 25, 2020 11:28 am

Is New e-OpenCascade a site OCCT has created?
That Sébastien seams to have gained some knowledge in this area anyway. I'm curious on how he got his hands on that information?
User avatar
saso
Posts: 1600
Joined: Fri May 16, 2014 1:14 pm
Contact:

Re: Surface to surface tangency

Postby saso » Fri Sep 25, 2020 12:15 pm

Does not the silk WB https://github.com/edwardvmills/Silk provide some of the methods how to do this, with the difference that it implements a very manual workflow to set it up, so the thing to develop would be to automate this and change from using sketches to some internal control curves... ? :|

microelly2 also has developed some methods to do this in his workbenches, but mixing nodes workflow in to standard surfacing is not the way to do it, it has to be a property of the standard surfacing tools...