Scan-and-Solve for Rhino

Simulate Early, Simulate Often... In Rhino

Hi Scan-and-Solve community,

I work with 3d scans of plastic parts in a manufacturing quality and inspection environment.  The scans of real world parts are compared to the design CAD data associated with each part.  Critical dimensions are checked in this manner to ensure customer part manufacturing tolerances are within required specifications.

3d scanning is usually best accomplished if there's nothing blocking the view of the scanner.  But sometimes it's helpful to restrain a part to a fixture of some sort.  Sometimes it's *required* to restrain a part for specific measurements.  In such cases the part is deformed by applying forces that cause the part to change shape and take on a geometric state that is consistent with some kind of fit, form, or functional requirement.  This complicates the 3d scanning process, though, because the extra hardware gets in the way of the cameras.

I'd like to be able to scan a plastic part in a free state, and then warp (un-warp) the 3d scan by virtually forcing it onto the required geometry.

For example, I have included a screen shot of a plastic part that naturally comes out of the injection mold with a slight potato chip warp.  (Please see attached screen shot.  The color legend represents deviations between CAD nominal and an actual sample part scan.)  Would it be possible to virtually apply some pressure on the broad flat areas of this 3d mesh to virtually flatten it out somewhat?  Is this something that can be accomplished with scan and solve?  I'm kinda getting the impression that scan and solve is not made for contact simulations of this nature.

Views: 655


Reply to This

Replies to This Discussion

Hello Aaron,

Scan&Solve can compute the amount of bend you will get when pressures are applied to areas of your choosing.  You can then use the deformation slider to scale these deformations (essentially scale the effects of the pressures you apply) and then "bake" the results into your Rhino document for further processing.  Note that this baked mesh may be a higher resolution version of your input since it is used to sample the simulation results.

Have you also tried some of the options in Rhino's Transform menu (like Bend, Twist, Taper, Stretch)?  I understand if they won't do what you want since it sounds like you want the deformation to be based on physics.

Does this help?


Hi Michael,

I have demoed Scan&Solve and successfully performed a few simple examples.  I am familiar with the capabilities you have described.  I am also quite familiar with Rhino3d.  (don't want bend, twist, etc.)

For context: I am working with scans of actual sample parts. 

My desire is to simulate the contact of these imperfect scans with perfect virtual copies of production gaging.  (I want to smash distorted rubber part scans against CAD perfect flat planes.)  The question is:  Can Scan&Solve do this?  It's quite easy to select an area on a mesh derived from a part scan and apply a restraint --but this is not my goal.  I want to apply a pressure or force of some form to flatten or otherwise force conformity to defined geometry.

Hello Aaron,

Yeah, if you want to virtually smash your distorted parts into contact... Scan&Solve isn't going to be able to help you much.  Sorry.


Do you think this might be a future capability?

Contact is on the "wish list" but it is an advanced capability that probably will not be added in time to help with your immediate problem.

Could you do something like the following:

1.  Restrain facets of mesh A that are in contact.

2.  Apply pressures to bend other regions into submission.

3.  Bake deformed results to a mesh B.

4.  Repeat steps 1, 2, 3 to meshes B, C, D, and so on until your baked mesh is close to what you're looking for.


I thought about that, but I think such a process would substantially decrease my colleagues confidence in the results.  (And then it's probably not worth the time.)

Awesome plug-in, though!  I haven't found anything else that handles scan mesh geometry quite this effortlessly.

Hi Michael,

I've been trying to get other multi physics simulation software to perform the contact analysis that we discussed here a few weeks ago.  It seems that volume meshing the scans is quite a hindrance.  I don't have a problem producing good closed stl surfaces, but that doesn't seem to guarantee a successful internal subdivision of the volume.

So I was thinking about how Scan and Solve avoids this issue...  and had a question about the bonded contact feature.

What if I did something like this? (see attached image)

The attached image is supposed to illustrate a warped piece of plastic bonded to a thin layer of super easily compressible material, which is in turn bonded to a super stiff flat plate.


I anticipate you'll have difficulties with the super-compressible material approach since it seems that you want to crush it to zero thickness. You would also need to tune its material properties so when it gets crushed to zero, it happens everywhere simultaneously.  That sounds hard.

Is the first image typical? i.e. 0.1 mm of warp over 20 mm or so, and you know the shape to which it is supposed to fit?  If you know the amount of error, can you adjust the Z-coordinates of the vertices of your mesh so they are at the Z-coordinate you want?   For example for some vertex at (X,Y,Z) the error is +delta so adjust the coordinates to (X,Y,Z-delta).

Regarding (X,Y,Z-delta):  The first image is typical.  But I can't simply adjust the mesh to correct for the z-displacement error.  I uploaded an image with this post that shows what I think you are suggesting.  (Please see attached image.)  In this example there is a hypothetical dimension between two clip-like features that is labled dimension x.  Let's say that this particular length must be measured while the opposite side of the part is held flat against a flat surface.  (This is a common requirement.)  I can't simply adjust the mesh to make one side flat.  Such an operation wouldn't create the required condition for measurement because the features that are relevant to dimension x would remain unchanged.  The idea here is really to unroll the part onto a flat surface  --this would probably cause the clips to spread out a little bit.  Then measure distance x.

Does this make sense?  I wasn't sure if I correctly understood your suggestion.


Yes, I think I understand.  For mostly flat parts the "rotation" component might be negligible, but for shapes with towers or other protrusions, their rotation due to bending will no longer be insignificant.  My suggestion induces a "shear" instead of a "bend".

I think the best we can offer is to restrain the facets that you know will be in contact initially and apply forces to bend the shape into submission.  This would be followed by baking as a deformed mesh.  Since we do linear stress analysis, you can tune the forces by scaling to get the deformations close to what you are after.



© 2022   Created by Michael Freytag.   Powered by

Badges  |  Report an Issue  |  Terms of Service