montagdude wrote: ↑Tue Jan 08, 2019 9:20 pm
Using the FreeCAD 0.17 64-bit Linux AppImage, I get an error like this: 'module' object has no attribute 'matmul.' Apparently, the numpy version packaged with FreeCAD doesn't have matmul. I implemented my own version of matmul instead, and then it worked.
Hi,
Since this workbench is experimental, I must admit that I don't pay much attention about compatibility with the various FC versions.
I only work with current master.
montagdude wrote: ↑Tue Jan 08, 2019 9:20 pm
Is there any way to control the tolerance of the edge curve interpolation? For my use, I need to be able to create closed solids from surfaces using the Part shape builder. I tried changing the Tol2 D and Tol3 D properties of the Gordon surface, which did cause it to be recomputed, but no matter what I was not able to create a valid closed solid (and it didn't seem like the process was taking any longer either), so I'm not sure if those controls actually do anything.
The Gordon surface tool is a python port of a C++ tool. There were several hardcoded tolerances in the C++ source code. I was hoping I could reduce these to the 2 properties of the FC object. I am not sure anymore it is a good idea. And I am not sure Tol2D is really used anywhere.
Tol3D however, is used at the beginning of the computation, to detect the curve intersections.
In my personal experiment, I was able to build valid solids with these surfaces. Would you have some example files to test, please.
montagdude wrote: ↑Tue Jan 08, 2019 9:20 pm
I have a lot of experience with numerical methods and Python and C++ programming, but very little experience with FreeCAD scripting (I'm just getting started). Is there anything I can do to help improve these tools?
I am not a skilled coder, and this python port has been a real challenge for me. The resulting source code is quite a mess. I am lacking time, but I have several things on my TODO list concerning this tool :
- remove all the commented C++ source code
- remove or comment most of the debug commands (it way too much verbose currently)
- think about the various tolerance values, and expose the needed ones to the user
The Curves Workbench repo :
https://github.com/tomate44/CurvesWB
The files are :
- BSplineAlgorithms.py
- BSplineApproxInterp.py
- curve_network_sorter.py
- gordon.py
- gordonFP.py (the FreeCAD FeaturePython object)
Be aware that working on my code is probably not a pleasing experience
