Kevin Quigley

XNurbs - further investigations

Discussion created by Kevin Quigley on Feb 7, 2018
Latest reply on Nov 9, 2018 by X. Liu

Following on fron the original Xnurbs thread - I thought I was perhaps being a bit unfair in not properly reviewing what this offers. The other thread got a bit out of hand so I decided to install it (on SolidWorks 2018 SP0.1) and run it through a couple of typical types of jobs we do -and where we have had issues with SolidWorks own surfacing commands.

One of the problems with the way the XNurbs guys presented the other thread was to show it as a glorified Fill Surface tool working on complex patches. This has merits in many situations (I mean, who here has never used Fill to get them out of a hole occasionally). But as a product designer I knew that this is a kind of irrelevent example for design phase surfacing. We always set up curves - the curves define the form.

So I set up a form based on a medical product we are working on right now, and did a comparison.



So excuse the snipping tool mouse text, but the above is typical of a set up - curves (always splines not lines and arcs), define the form, helper surfaces at the centre line (this form is symmetrical) and at the split line - taking off at 2 degrees draft.

So the above shows the X nurbs surface - which was very easy to pick and select the edges of surfaces and curves. There are actually two Xnurbs in this - the main surface and the front capping surface.


The next one below shows the SolidWorks Boundary Surface - with exactly the same inputs. I have sectioned the part to show the differences, and mirrored the Xnurb surface for clarity.



Straight away you see the issue with the SolidWorks Boundary Surface tool - this is very typical of this tool - you can see clearly that the surface created is not at all right and it creates a huge undercut - this despite setting up helper draft take off surfaces. In short, it does not follow my "design intent". In the past we have had to add more intermediary sketches to define the form (same with a loft) but this generates ripples and lumps and bumps. I also did a Loft surface for comparison and tried a few different variations but this created some nasty ripples and the same generic form as boundary with the big undercut.


Next I tried SolidWorks Fill Surface. The Fill Surface uses technology taken from CATIA, so gives a slightly different variant of the form.

fill surface.JPG


Not bad but you get this lump at the front, which would be unacceptable. In the past using Fill for these types of surfaces has caused this kind of issue - you think it is OK but when you do a deep dive taking sections and using environmental reflection analysis the flaws pop up.


Only by deep diving into a surface can you actually see the issues. For comparison here are all 4 versions on a section.



In this context, wioth these inputs, only the Xnurbs and Fill are following the design intent. The others generate undercutting surfaces.


Finally I imported the Boundary, Fill and XNurbs into SharkFX software - where I can display the surface CVs and create interactive surface ISOs. FYI Shark FX is pretty good.



Here you can clearly see the differences between the surfaces and the way they are generated. Boundary is created to the edges, and that is the edge of the underlying surface, so the CVs and ISOs all follow these curves - so this will give you the best "flow". As a boundary surface goes this one is not actually too bad in terms of numbers of CVs. Most that we do have a LOT more than this. But note the bunching at the front. These areas can lead to issues further downstream.

The Fill and the XNurbs are both trimmed NURBs surfaces - so you take a 4 sided Nurbs (all NURBS are 4 sided) and trim the form to fit the boundary edges. You can see that the XNurbs underlying surface has a bit more "space" than the Fill surface version - though the Fill surface is less twisted (rlative to the inputs). But note that lump at the front of the Fill.


So in summary, I think XNurbs is actually pretty good! I cannot say if it is the "best NURBS tool ever", but I can say that compared to the existing toolset in the latest version of SolidWorks it offers something worth having. One final point.


I mentioned issues with CVs bunching leading to downstream issues. This dhows itself particularly in operations like shelling, where the software has to create an offset surface, trim it, then stitch it all into a solid (all happening under the hood). Look at those surfaces above - the untrimmed versions. The XNurbs surface is the least bunched so you have a better chance of offsetting and shelling.


What I did was finish the component off - mirrored the surfaces, created XNurbs for the back and base (rather than planar - which for some reason did not take), stitched it all up then shelled. I then made some tweaks to the curves to see how robust the XNurbs construction was. We all know that SOlidWorks in built tools are generally OK but can lose associativity occasionally, but XNurbs seems fine.

shell1.JPG  shell2.JPG



So in summary, I think XNurbs has promise. In terms of improving it if there was a way to force the surface created to flow along a particular vector that would be good, but as a v1 it is a very nice add on - quick, robust and surpasses many of the in built SolidWorks tools.


I like it.


But please xNurbs - stop using those daft n sided patches as examples files!!