Capabilities of the SolidWorks Shell Command
There’s a bit of a conversation over on the Top10 site going on about the Shell feature. The conversation is worthwhile, and I just wanted to share some specific cases I have.
First, I must have misinterpreted something, but the topic said ‘Offset Surface “consume surface function”‘. I’m taking the Offset and Shell to be roughly the same thing for the purposes of this discussion. When he said “consume”, I assumed he meant “eliminate”. Like what happens when you have a box with a fillet on a corner and the shell is thicker than the fillet. The shell consumes the fillet faces on the shell.
But then there are other cases that should be simple, but don’t work, like the one to the left here. This part is all straight lines and circles, except where some draft turns a circle into an ellipse. The thing is that there is no uncontrolled curvature here. Most shell failures are due to curvature. But not in this case. In this case, the shell failure is due to internal cavities inside the block, and when you shell it, SolidWorks would have to create multiple bodies to do the shell. This might be hard to visualize, but you can imagine that with internal faces to shell around, the shell is much more complex than just shelling around exterior faces.
In the end, this shell had to be done manually, using solid bodies to represent the interior passageways, and even using the Indent feature to create shells around the holes, and some manual extruding to fill in undercuts. Ugh.
Then there is other stuff. Here is one I couldn’t get to shell because there were sections where I had integrated fillet features into a spline shape. Notice the fillet-like shape in the lower right corner. This was not made with a fillet, but with a spline, in order to make the transition smoother. So I couldn’t just shell first, then fillet. I had to shell around the shape. But SolidWorks wouldn’t do it. I broke this part into 3 sections. Two sections shelled correctly, and the middle section I had to shell by hand. How do you shell something like this by hand? You create planes, create offset splines, manually creating them if you have to, and then use the manually created surfaces to cut away the solid that should be shelled out. There are other ways, but that’s the way I did it on this part.
The problem with the automatic shelling on this center section is that SolidWorks would have to eliminate just part of a face. It’s ok when SW eliminates an entire face, as shown in the first example, but eliminating just a part of a face is a problem. But not always a problem…
In the example to the left, there are 2 images. One of a variable radius fillet from the outside, and one of the shelled fillet from the inside. SW can in this case eliminate just part of a face.
But if you complicate it just a little bit more, say with a fillet that goes from small to large to small, and then try to fillet that, it doesn’t work, but the failure is strange. To the right is a shell of that small-large-small var rad fillet. If you notice, the inside does not reflect the fillet at all. In fact, you can see that the shell actually breaks through to the outside of the fillet. This is an invalid result, even if you don’t get a failure. Just as a note, you will only get this invalid result if “Verification on Rebuild” is not activated (Tools>Performance), and it is not activated by default. If verification is activated, you get a garden variety error, and the feature will not rebuild.
Just for reference, the verification setting makes sure that every face is checked against every other face in the model to make sure that the faces aren’t penetrating or touching except at edges. Turning verification off means each face is only checked against its neighbors – the faces it shares edges with. SolidWorks implemented this to save rebuild time. The lesson here is to be careful what you ask for, because SolidWorks may solve your problem by creating a different problem.
Let’s do it again, this time with a var rad fillet that goes from large to small to large. This time it works correctly with no errors and no invalid geometry. I’m sure there’s a general rule or maybe a couple of conflicting rules behind these results, but I can’t tell what it is. Just that it works when it shouldn’t and doesn’t work when you think it should.
And then finally, we get to stuff like what is shown on the right. This was scanned in, and then the point cloud was surfaced over badly, and my job was to shell it. Obviously, the Shell feature didn’t work for this. This was shelled manually by offsetting the outer surface to the inside, trimming out some undercuts, then creating a solid from the original, offsetting a sketch to the inside of the back of the solid block, and cutting up to the offset and trimmed surface. Ugly, and certainly not exact, but it worked, and they are casting parts now.
Below is another part that wouldn’t shell, but I shelled it anyway. This was even more complex, but used basically the same method. And this part below was built from scratch in SolidWorks.
Do I understand shells 100%? No. I don’t think anyone outside of CAD developers really understand, and they might not even understand the application to general models.
I think most shell failures come from curvature issues. Some curvature issues can be solved by looking at your model with a more analytical eye. For example, pay attention to curvature combs for splines and even on Boundary surface features. Also make use of the curvature checking tools that SolidWorks has. These won’t directly solve your problem, but they may show you where your problem is, and knowing where the problem is will set you on the path to fixing it. This is the reason I keep asking for tools to be able to specify the maximum curvature (minimum radius) of splines and all types of interpolated surfaces.
Hi matt,
how about a comparison between Solidworks and Solid Edge? Just try to create a model like the “Medical Devices” sample in both systems.
@Kevin Quigley
Lofting from open to closed profile would include lofting a circle to a point, a common way to cap off a shape smoothly, or lofting from say a circle to a line to get a chisel point. You can do the first but not the second in SolidWorks.
@Dan Staples
Can you elaborate on lofting an open profile to a closed profile? I’m struggling to visualise how that would work and why you would ever need to do that.
Fill Surface is probably one of SolidWork’s crown jewels. It is like anything else – C0/C1/C2 means nothing if the surface you are attempting to create is valid. What I mean is I see lots of people moan about it failing and giving odd results but a lot of the time they are being unrealistic about what can be achieved.
What I mean here is if you have surfaces that join at a pinch point, or you have drive curves coming off at G0 you will never ever get G2 – it is impossible maths.
For me, the Fill surface is that “get out of jail” option for crap imported geometry, or for situations where you have nasty n sided patches. Another case I use it for is a capping surface. But like any tool, you need a bit of compromise.
But the real benefit of fill is that you get a nice 4 sided nurbs (when untrimmed) with no degenerate points (esp useful for capping).
It is by no means perfect, but it is pretty effective.
I think Fill is more like C1.5+ ie. pretty good but not quite as smooth as you would always like.
Sometimes Fill struggles to generate a valid a solution depending on the edges or perhaps its not the shape you are really looking for.
Constraint curves help some. Fill is certainly a useful tool but its not perfect.
Are variable conic fillets available? That would be cool. 🙂
@Rick McWilliams
Rick, actually I mispoke when I said the Solidworks Boundary Surface is a bit better than ours. What I meant was their FILL surface is a bit better — according to the documentation it can do C2 at the fill boundaries — that would be impressive in the cases where you need fill (more than 4 sides). How often does that work?
Our Blue Surf is roughly equivalent to their Boundary Surface, although we can loft an open profile to a closed profile and I don’t believe they can. I see they added C2 on all sides in SW2007. That has been in Blue Surf since 2003.
@Rick McWilliams
Yes, a loft should be completely smooth in Solid Edge. We have all the standard stuff, Sweep, Loft, boundary surface (Solidworks one is a little better, but we are working to address that), complex fillets including Rho conics. Probably our best feature is Blue Surf, which Matt alluded to some time back. It does everything from a 1×1 to nxn to ruled surfaces all in one command. The power in that (which is lost on a lot of people) is there are times when you need to change a loft to a sweep or add a guide to something that started out ruled. Because in most systems this means a whole nuther command/object replaced in the tree, it will usually fall apart badly. With Blue Surf you just change the input parameters and it all recomputes fine.
Does solid edge accurately follow loft profiles? No wrinkles or tits? What are the kinds of surface features available? Sweep, Loft, boundary surface, complex fillets?
@Chris
Solid Edge offers two commands for “shell” parts (thin wall and thin wall region). I think If you can use them, you will satisfied. 🙂
Dan, integrate that stuff into SolidEdge and I’ll buy it tomorrow 🙂
I was fortunate enough to know one the AEs in the UK and he was constantly nagging me to buy it so I had some use of one for a bit. After a few hours you get the hang of it. The other thing it was great for was setting up animations – when you position (say) a foot of a product to sit on a surface you could feel the surface as you dragged the foot to it. Very very slick stuff.
There is a company here in the UK that uses this kit to do a lot of the action toy figures – very specialist but no other way to do it.
Now all I need is my lottery numbers to come up….
@Dan Staples
Yeah there are a few ‘love to have’ technologies out there but they are beyond the pocket of independants and small business, or hard to justify if you would only use them occasionally. If you look at SW these days, as useful as it is, there is a fair gap in capability opening up between it and high end Catia. Naturally thats not helped by the Catia/SW glass ceiling policy or SW’s stagnation while they blow clouds up their ___
Avid users are always looking for more, for not a lot, of course, but it would be great if some of these goodies could be picked over for the midrange toolbox even if they are fairly limited versions. Every now and again you need a Torx bit and vise grips just won’t do the job no matter how you try. You can still get down to the store and get the whole top quality 30 piece kit if you really have a full need for it 😉
@Neil
The thing you can’t get from the videos is that you actually FEEL the clay when you are sculpting. It will blow your mind. (guaranteed) It does require however that you have enough artistic ability to sculpt. (The only thing I ever personally made that looked pretty cool was a velociraptor, but I lack artistic talent. The guys with talent can make it sing.)
I had forgotten about textures. We did that in V2, I think. You can give it any bitmap and it will make a height map from the shading and replicate it in 3D. It is unbelievably good as a starting point for engravings and reliefs and stuff like that.
@Dan
that is my experience, check what is posible in SWX or ProE with the options for this command and compare it to Solid Edge and you get the answer.
I work since 3 years with Solid Edge.
Somehow FreeForm escaped my notice before or most likely I have forgotten about it. Distracted by cloud misadventures no doubt.
Looking at the videos the tech is quite cool, although it seems the result might end up being a little lumpy/eroded at times.Like the textures capability though.
Maybe I add to my Santa wish list some texture capability somehow…
FreeForm Lite perhaps 😉
@Kevin Quigley
That is correct. Shelling in SensAble Freeform will never fail. That however is NOT because its a polygonal modeler (it’s not), and polygonals can in fact fail on shelling. It’s because its a Voxel-based modeler. And you can easily nurbify the result afterwards. For those that do the messy organic stuff like Matt showed with the Acanthus leaves (I think) there is no substitute for SensAble FreeForm. If you can afford it out of the gate, it will pay for itself many times over if you do organic stuff at all.
PS> As Roger says, I used to be VP of development there, when we built FreeForm from V1 to V5. It is still totally rockin technology for those that can afford it. I know a couple customers who use it in conjunction with Solid Edge after nurbifying and I am sure there are SolidWorks folks like that out there too.
@Chris
Kinda cryptic there — care to elaborate on where you got this data/impression? Anything to back up that statement?
I could be wrong but I seem to remember that Dan Staples was involved with SensAble prior to Solid Edge (please forgive me if I’ve gotten this wrong Dan).
These cases just demonstrate the issues with NURBS based modelling. If you happen to have Modo (or any sub div modeller) and T Splines, you can circumvent most of these issues. Polygonal based modelling systems just do not suffer from shelling issues (Cadjunkie has a great demo video of tysElements where he models a toy car in Modo and shows this offset mesh trick into SolidWorks via TsElements).
I remember a few years back I had an extended demo of the SensAble modelling system. With that (again primarily mesh based) shelling never fails – ever (or at least that is what the AE told me, and what I could see for myself).
This is why I think the future is a combination of mesh and nurbs. Imagine a kernel where if the NURBS shell failed, the mesh would take over in the areas the surfaces struggled to offset.
The Shell command is in Solid Edge much more poor.
Hi, can you post a file where SolidWorks fails.
I would like to tray with Catia and NX.
Excellent post, Matt. After reading it, I tried a couple shelling cases where I had problems before and it does work better now. All the shelling that I’ve been doing in the last several years has been for formed “sheetmetal” parts, so I always either made sure I had the proper radii prior to shelling, or I added the fillets after shelling.
You can get rid of wrinkles in lofts with Bondo. Similar to the A-Bomb of fillets.
Matt, do you ever get to try these things on other software? Are the issues specific to SW?
I find that shells usually fail because the underlying surface hs microscopic wrinkles or tits. Lofts, sweeps and boundary surfaces all can produce defective geometry. Lofts generate nasty “stretch lines”. The resulting surface almost never fits the profiles. Look at the curvature display and note the streaks, that were never in the nice continuous curvature profiles.
Boundary surface is the most reliable as long as no intersection involves more than two curves.
My first post was lost in the cloud.
I have most trouble with Solidworks shells for parts that have conceptually generous radii. These airplane parts will be fabricated in a female mold using fiberglass cloth and epoxy. The problem stems from bad lofts, sweeps or boundary surfaces that have microscopic wrinkles or tits over microscopic regions. They are of the worst kind, sometimes they shell, but fail to shell on re-opening.
Sweeps and lofts will generate high curvature “stretch lines”. Look at the curvature display and note the streaks. All sections and guides have large, smooth and continuous curvature, why not the loft? In the small scale lofts rarely fit the profiles. If they did the curvature would match the sections.
Boundary surface seems to be the most trustworthy of the Solidworks surfacing features. Things get weird if any point is shared by more than two curves.
Surface features should not generate surface curvature greater than the curves that define them. As long as those curves do not present a geometric impossibility. In those cases the surface should do the right thing and smooth over the spot and let you decide the maximum curvature.