Ok folks, I have finally made an attempt at putting together a script that does the trimming and joining in addition to placing the fillets.
Here is the python script: Filsrf_Join.py (69.1 KB)
The basic premise of this script is that it can be used to connect two polysurfaces with a string of fillet surfaces as a bridge between them. Think of the fillets as a wide intersection between the two polysurfs that is used to trim and join them. The script may extend the string on the ends when that seems to be needed. The extend option is on by default but the user can turn it off.
The script works the same as Rhino’s FilletSrf and the original script (FilsrfEX.py) but this one is limited in what it will accept as inputs. It will not accept two input surfaces from the same polysurface. This version of the script will only make fillets for surfaces that are joined to the two picked input surfaces.
Future versions may not be limited to just working with two polysurfs, but it is simpler to debug and do all the bookkeeping for trimming and joining if the two sides of the Fillet string belong to two separate polysurfaces.
A good example of geometry that works well with this script is the file I posted at the Top of this thread: fillsrf_examples.3dm
In that file a 1mm fillet works on all the examples. OTOH, a 3mm fillet will fail on almost all of those examples. In other words, the script doesn’t work properly when the base surfaces have curvature that is smaller than the fillet radius being applied.
Here is another example:
doodle.3dm (2.9 MB)
This file demonstrates how you can take 7 open polysurfaces and connect them by connecting everything with fillets into one solid. the output polysurface of the script inherits the properties of the first polysurface picked (i.e. it works just like the Join command)
There is no option for trimming and joining. If you don’t want the result joined - just Undo the result one step. If you don’t want the base surfaces trimmed Undo another step and you will have just the fillets and the original surfaces.
The script creates a Layer called “BaqUpz”. The original 2 polysurfaces are saved to that layer before trimming. Be aware that things may pile up in that layer. You can delete that layer anytime you want, but it will be created again when the script is run again. Treat the BaqUpz layer like a Recycle Bin.
I would like users to post geometry that they think should trim and join but does not do it correctly.