Simulate Early, Simulate Often... In Rhino
As the 2014 beta release approaches, I thought I'd throw out some ideas for future feature enhancement.
I attempted a small project unsucessfully with S&S recently. I was trying to find the static load capacity of a clamping shaft collar, which is a common mechanical component. To do this successfully, several additional features would be either very helpful or simply necessary.
The largest new feature would be support for assemblies of multiple parts in contact, where force is equalized at surfaces in contact. There are lots of cases where unifying multiple parts into a common solid just isn't appropriate. For just one simple example, consider two steel flanges separated by a "softer" gasket material. Even if assemblies are restricted to non-sliding or kinematically-restrained ones, it would be necessary in practice to "grow" the surface patches in contact due to elastic deformation. (And, obviously, be sensible about models whose surfaces interpenetrate slightly due to numerical approximations in the model geometry. Actually, I'm not sure how S&S would handle that with its grid-based approach.)
While clamping forces (e.g., due to a bolt) can often be modeled by a vector force (or an opposed pair of them), when the clamped surfaces are not in initial contact the force directions generally will change due to elastic deformation. A new opposed-force primitive load would be very helpful. Surface faces would be selected for each half of the load, and the force vectors would always be parallel to the line between the mean locations of the surfaces on each side.
It would be extremely useful to be able to use auxiliary geometry to "section" a model post-analysis to allow display of internal stresses. The existing axis-aligned sections are very handy, but don't allow for display of stress over a cylindrical surface, for example. (Internal stress in this context definitely includes stress at assembly surfaces in contact, but is not restricted to that.)
Together with arbitrary sections, the integration of stresses over some face(s) of the section surface is quite valuable. A limited version of this capability was in SnScript to approximate reaction forces, but if it's in the current WIP I can't find it.
Tools to analyze "interference fits" would be useful. The solids in an interference fit do not actually interpenetrate or interfere, because their free surfaces have been elastically deformed by each other. Engineering handbooks have tables of common cases, but a solution is sometimes needed for something other than a smooth round solid shaft in a smooth round bore. This is a particular case of support for assemblies.
Two long-standing desires deal with weldments. At the moment, I have to join all the pieces of a weldment into a single polysurface prior to S&S analysis. This is quite a lot of work, work which must be repeated over and over again as the weldment design evolves, and work which is not cost-effective to perform at a fully accurate level of modeling. It would be an immense time saver if a group of physically interpenetrating (poly) surfaces could be given to S&S, because the weld beads could be more quickly modeled (complete with accurate penetration) separately from the actual component parts of the weldment. That may not be readily apparent, but Rhino's (or any other CAD modeler's) limitations on boolean operations on very complex polysurface objects is a significant factor. My understanding of the S&S internals suggests using a group of object for input geometry should be relatively straightforward. Membership is trivial, and the boundary problem is immensely easier than solving for the NURBS surface of a boolean union. This is different from assemblies, as a single solid is being analyzed; it is just handed to S&S as an implicit union of multiple interpenetrating chunks of geometry.
The second feature related to weldments may have applications I haven't considered. Unless very expensive procedures are specified, every weld contains a stress riser. These show up in S&S analysis as points of infinite stress, and can make it difficult to evaluate analysis results for "real" problems. Some degree of support for plastic deformation, which would knock those virtual infinities down to real-world material values, would be beneficial. For my particular application, this need not be a full-on solver for plastic deformations!
Stuart, thank you very much for this very thoughtful post. Some of the features you envision (such as bonded assemblies) should be "coming soon" in the future versions of Scan&Solve. Others (such as general contact) are non-trivial extensions and will require some careful analysis. We do appreciate your input very much.