GeoConvert::Surface2BSpline() - infinite surface

Discussions about the development of the TechDraw workbench
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
PAS_Drafter
Posts: 338
Joined: Mon Aug 02, 2021 6:29 am
Location: California, USA

GeoConvert::Surface2BSpline() - infinite surface

Post by PAS_Drafter »

I am using TechDraw to put together some drawings for my manufacturer. The drawings were of an Assembly4 object. I had created separate pages of each view for them. When I originally created them, everything looked good and worked. I then saved the file closed FreeCAD and came back to the drawings later.

When I did, a number of the pages started giving me an error "GeoConvert::Surface2BSpline() - infinite surface" for the various views. I tried deleting and recreating multiple times, restarting, etc. to get it to work, but I could not figure out why it all of the sudden seemed broken.

I did a search for the error and didn't find much, but I did find one page in the Assembly forum that had it.
Zolko wrote: Mon May 17, 2021 1:25 pm
LSoltmann wrote: Mon May 17, 2021 1:05 pm 'GeomConvert::SurfaceToBSplineSurface() - Infinite surface'.
...
It appears that wrapping the PartDesign body in the Assembly4 container is causing the issue.
Nah, that works well. You might have a datum plane or axis (that would indeed have an infinite dimension). If so, try to hide it, or to set its size to "manual".
I did not have any datum planes active. However I did go back and find that one of my LCS axis was on. I hid the axis and went back to Techdraw WB and and recalculated. That solved all the errors.

I just wanted to pass on what I learned about the LCS when working with Assembly4 for others in case they ran into this error. It would be nice if Techdraw WB would ignore these though so it didn't try drawing them in the first place.
Last edited by PAS_Drafter on Thu Apr 06, 2023 10:49 pm, edited 1 time in total.
User avatar
wandererfan
Veteran
Posts: 6268
Joined: Tue Nov 06, 2012 5:42 pm
Contact:

Re: [SOLVED] GeoConvert::Surface2BSpline() - infinite surface

Post by wandererfan »

PAS_Drafter wrote: Sun Jun 05, 2022 12:18 am I just wanted to pass on what I learned about the LCS when working with Assembly4 for others in case they ran into this error. It would be nice if Techdraw WB would ignore these though so it didn't try drawing them in the first place.
This is issue #6655.

What version are you using?

git commit 7c24e54704 implemented a work-around for this around the end of March. If you are still encountering problems with a recent version, we will need to revisit the work-around.
PAS_Drafter
Posts: 338
Joined: Mon Aug 02, 2021 6:29 am
Location: California, USA

Re: [SOLVED] GeoConvert::Surface2BSpline() - infinite surface

Post by PAS_Drafter »

wandererfan wrote: Sun Jun 05, 2022 2:39 pm What version are you using?
Sorry, forgot to add that to my message.

OS: Windows 10 Version 2009
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.24267 +99 (Git)
Build type: Release
Branch: Branch_0.19.3
Hash: 6530e364184ce05ccff39501e175cf2237e6ee4b
Python version: 3.8.6+
Qt version: 5.15.2
Coin version: 4.0.1
OCC version: 7.5.3
Locale: English/United States (en_US)

Glad to see it will be/is fixed. I've been patiently. waiting for the next release.
aapo
Posts: 615
Joined: Mon Oct 29, 2018 6:41 pm

Re: [SOLVED] GeoConvert::Surface2BSpline() - infinite surface

Post by aapo »

PAS_Drafter wrote: Sun Jun 05, 2022 6:35 pm Glad to see it will be/is fixed. I've been patiently. waiting for the next release.
If you want to test the fix, you can download weekly-built prereleases from here:

https://github.com/FreeCAD/FreeCAD-Bund ... kly-builds
PAS_Drafter
Posts: 338
Joined: Mon Aug 02, 2021 6:29 am
Location: California, USA

Re: [SOLVED] GeoConvert::Surface2BSpline() - infinite surface

Post by PAS_Drafter »

wandererfan wrote: Sun Jun 05, 2022 2:39 pm What version are you using?

Code: Select all

OS: Windows 10 Version 2009
Word size of FreeCAD: 64-bit
Version: 0.20.29177 (Git)
Build type: Release
Branch: releases/FreeCAD-0-20
Hash: 68e337670e227889217652ddac593c93b5e8dc94
Python 3.8.10, Qt 5.15.2, Coin 4.0.1, Vtk 8.2.0, OCC 7.6.2
Locale: English/United States (en_US)
Installed mods: 
  * Assembly4 0.12.0
  * Curves 0.4.4
  * ExplodedAssembly
  * fasteners 0.3.45
  * Manipulator 1.4.5
  * MOOC 2022.4.21
  * OpticsWorkbench 1.0.8
  * sheetmetal 0.2.49
  * ToolViewReverse_ToolBar
I just wanted to pass on that I've upgraded to v.20 and this issue with the LCS causing the infinite surface is still happening for me. I know how to "fix" it now so I can at least keep working without redrawing everything, but I wanted to pass on that v.20 doesn't seem to have prevented it from happeing.
User avatar
wandererfan
Veteran
Posts: 6268
Joined: Tue Nov 06, 2012 5:42 pm
Contact:

Re: [SOLVED] GeoConvert::Surface2BSpline() - infinite surface

Post by wandererfan »

PAS_Drafter wrote: Tue Jun 28, 2022 6:04 pm I just wanted to pass on that I've upgraded to v.20 and this issue with the LCS causing the infinite surface is still happening for me. I know how to "fix" it now so I can at least keep working without redrawing everything, but I wanted to pass on that v.20 doesn't seem to have prevented it from happeing.
The fix I spoke of only addresses the handling of the infinite shape within TD. If you have an example where TD is not handling this appropriately, I'd appreciate a copy so I can debug.
PAS_Drafter
Posts: 338
Joined: Mon Aug 02, 2021 6:29 am
Location: California, USA

Re: [SOLVED] GeoConvert::Surface2BSpline() - infinite surface

Post by PAS_Drafter »

wandererfan wrote: Tue Jun 28, 2022 10:33 pm If you have an example where TD is not handling this appropriately, I'd appreciate a copy so I can debug.
I've got to head out of town for a few days. I'll try getting you a file that does it when I return. Most of my stuff is large assemblies where I run into the problem. I'll have one of the LCS deep in the assembly still turned on somewhere and when I try to TD the whole assembly at that point, it gives me that error

I'll see if I can duplicate the error on a simple file and get it to you.

Thanks for looking into it.
PAS_Drafter
Posts: 338
Joined: Mon Aug 02, 2021 6:29 am
Location: California, USA

Re: [SOLVED] GeoConvert::Surface2BSpline() - infinite surface

Post by PAS_Drafter »

@wandererfan

I ran across this error a few more times on the latest builds and remembered I was supposed to provide an example. Sorry for the delay.

Code: Select all

OS: Windows 10 Version 2009
Word size of FreeCAD: 64-bit
Version: 0.21.31155 (Git)
Build type: Release
Branch: master
Hash: 6f1b29769b33676edca2bd883b80bed25a0758c8
Python 3.8.15, Qt 5.15.4, Coin 4.0.0, Vtk 9.1.0, OCC 7.6.3
Locale: English/United States (en_US)
Installed mods: 
  * Assembly4 0.12.4
  * CurvedShapes 1.0.4
  * Curves 0.6.4
  * DynamicData 2.46.0
  * fasteners 0.4.25
  * fcgear 1.0.0
  * MOOC 2022.4.21
  * sheetmetal 0.2.59

Anyway, I still have this problem with TechDraw when I have an LCS from Assembly 4 enabled. Now that I know what is causing the error, I can just go in and disable the LCS in the drawings and everything works fine. However, it would be nice if FreeCAD could handle them more gracefully.

I've got the example down to a simple box with an LCS. To keep things consistent with how I use the program, I have also created another file that just holds the TechDraw pages. I have found keeping drawings with the original part file seems to slow things down considerably, especially when I'm working with an Assembled Part. The part I want to keep track of in the drawing file is simply a Link to the original part in the original file.

If you load the two files and look at the Drawing_Base file, you will see that the Page, View has an exclamation point. The report view shows the SurfaceToBSplinedSurface() - infinite surface error.

If you go into the part and see the LCS_Top line and disable it (press spacebar), go back to the Techdraw page and recompute, everything works fine.

Let me know if this is not what you are seeing.

Thanks
Attachments
Limitless.zip
(36.9 KiB) Downloaded 39 times
PAS_Drafter
Posts: 338
Joined: Mon Aug 02, 2021 6:29 am
Location: California, USA

Re: [SOLVED] GeoConvert::Surface2BSpline() - infinite surface

Post by PAS_Drafter »

@wandererfan

I think the problem is due to the way I'm using links to an external file. After rereading the posts on the "fix", I had a thought and went back and created a Techdraw page within the same file as the part and left the LCS on. In this instance, I DID NOT get the same error.

So I think the problem occurs with linked objects. Hope that helps you narrow down the issue.
PAS_Drafter
Posts: 338
Joined: Mon Aug 02, 2021 6:29 am
Location: California, USA

Re: GeoConvert::Surface2BSpline() - infinite surface

Post by PAS_Drafter »

Code: Select all

OS: Windows 11 Version 2009
Word size of FreeCAD: 64-bit
Version: 0.21.0.32662 (Git)
Build type: Release
Branch: master
Hash: 312fe9b5c822126b251ca1c3cfb55dde0de1920c
Python 3.10.10, Qt 5.15.8, Coin 4.0.0, Vtk 9.1.0, OCC 7.6.3
Locale: English/United States (en_US)
Installed mods: 
  * Assembly4 0.12.5
  * CurvedShapes 1.0.4
  * Curves 0.6.5
  * fasteners 0.4.53
  * OpticsWorkbench 1.0.9
  * sheetmetal 0.2.60
@wandererfan

I wanted to open this back up as the error is still coming up when I do an Techdraw with Assembly4. If I have an Assembly with any of the LCS lines still visible, TechDraw WB will give me the "<Exception> GeomConvert::SurfaceToBSplineSurface() - infinite surface" error yet. Since I know that when I get this error, I just go in and hide all the LCS in the part, I can get by and it hasn't stopped me from doing anything, but I figured it would be good to bring this back up on the radar so it could be properly fixed so others wouldn't run into it.

If you are unable to duplicate the error, I can try to put together a simple example and upload it.
Post Reply