Non uniform scaling (to control shrinkage on vacuum casting)


I am a prototypes maker.
My job is building silicon molds, and pour a bi-composed resin into it using a vacuum chamber in order to avoid bubbles to remain inside (it’s called vacuum casting).

we can assure a precision up to 0.1mm with this method, but we have a problem sometime about the shrinkage.
the shrinkage rate is proportional to the thikness of the part, so in general we just have to uniformly 3D scale the part and it’s quite good.

BUT sometimes we have pieces with VERY thick parts, and another parts quite thin. As a result, the shrinkage rate can be very different depending on the part of the same piece. the sink marking can be quite visible also for this kind of piece.

I am looking for: a way to scale (or I should say “inflate”) a solid piece, proportionally to its thickness.
so for example if there is a thin wall, the scaling rate of the zone will be about 1.0018 but if the same piece have also a very thick cylinder in another place, it will inflate by 0.015 in this zone.

is it possible to do this a way or another? (plugin? script?)
I searched a lot, but nothing fits…

thank you

I can kinda see the problem with even having a function like this if it were to exist. What about the blending between the thick and thin zones? Even if you get the separate distinct scaling ratios, how are you gonna blend the joints? Are you going to distort your thin part, and blend that thin part towards the end of the thin zone to become thicker than it was originally designed? I understand the problem here quite well. I work with glass, etc…In glass thick parts take longer to heat up, and cool a lot slower than thin parts. When you have a say 1.5 in thick region, with a 6mm attached rod/joint here are the problems. As they cool, the thin part contracts a lot more than the thick part, thus sucking up heat from the thicker part. The actual problem is the design. You have to literally account for these cooling rates in your design, not in scaling. It really doesn’t matter what your design pattern is when it comes a giant mass with a big diameter, attached to a thin region. You could have with say 6mm rods made a fence like pattern with 6mm holes every centimeter into a mesh of acrylic, but this flat fencelike grid is only 6 mm in thickness, attached to this is a 4 inch thick acrylic sphere. The design is not as structurally solid as if the 4inch sphere were attached to something 2 inches in thickness. That’s just the way casting, heating, cooling, coe’s, and shrinkage rates work.

But I would think that even if there were a script, you would to break your model into sections, or Boolean split the regions, distort them to their scaling rates. Then you would have to figure out a way of fixing/blending the joints to somehow make it a solid again.

So, I think you need to actually do this yourself with no scripts, if you didn’t want to change your designs thick to thin rapid changes.

Lets look at what would happen if you had this example.

  1. A 4 inch sphere attached to a 7mm rod. You design your mold so that the 7 inch rod is facing down, and the ball is up, with of course a sprue.

  2. Now you want to account for the shrinkage.

  3. So, using your rates. 4 inches=101.6mm, then the 7mm rod. The 101.6 mm gets multiplied by 1.015=103.124 Now, your 7mm rod gets multiplied by? Your shrinkage rates weren’t real clear above on the 1.0018, because you added in inflating not shrinking. Are you saying that because the thin part cools so much faster, that it sucks heat from the thick part, and leaves air pockets on the inside of your thick parts leading to a different shrinkage or actual inflation?

ANyways, lets say instead of 1.5% shrinkage that you get in the thick parts, you have 3% shrinkage in your thin areas. So 7mm x 1.03=7.21mm So you change your design, and do some sort of blending at the joint, or join. WHats gonna happen is your gonna get a different rate of shrinkage with the new thickness, and you may want to blend in the original thickness+shrinkage rate to the new shrinkage accounted thickness/shrinkage rate.

So, the thickness and shrinkage rate might have a actual equation that you would use to find the best new shrinkage rate to be as precise as you can be. That’s why I sort of did that example. I just wanted to show what I thought could happen, and that is that there be a new shrinkage rate, and you may want to blend these numbers with a equation made based off of studies made from your shrinkage rates per thickness.

Now, I also see that rate. Basically your thick parts shrink about 7-8 times as much as your thin parts, but still have only up 1.5% shrinkage.

Hi Benn- There is no tool for this in Rhino- I can imagine it might be possible to do something like this, somehow, as a mesh offset operation, but on surfaces I’d think it might be very difficult.


thanks you two.

yep I was thinking about performing such a thing on a mesh.
to say it even simpler, I am looking for a way to foresee the behavior of the casted piece after shrinkage, and “invert” the process to counter it as naturally as possible (so yes, with a smooth junction provided by a smooth change of shrinkage rate between thick and thin parts).

There is great tools (like solidworks plastics) to foresee the behavior of the shrinkage during molding, but there are ALL dedicated to injection molding in metallic die, and those are quite useless for silicone molding…
And by the way those tools are REALLY expensive.

thanks, I will continue my research.

@rafaeldelmolino is there anything RhinoMold can do here or might be able to in a future version?

I can not talk in a specific sector, but in automotive we always apply an scale NU. The plastic provider will give details about shrinkage. In some cases, when a piece is much bigger in one direction, we apply a different factor in this direction.
I think it doesn’t make sense to have this feature!! In the real life, the injection parameters can affect more than 3%! :smile: Even where you place the injected model in cooling process.

thanks a lot for bringing the topic up. This is great conversation. I haven’t really played with scaleNU before, and I tried it out. First, It does seem that making a script to scale Rafael’s method would be easy, but kinda infeasible.

Rafael, so you basically scale the whole part or casting, and maybe a different rate for the U’s and V’s?

  1. If you have a object, and you kept the sections separate, or you have all your separate solids split up with thin, and thick portions you would once again run into the smooth problems. Once, you have scaled a thin part, you would have to have a base alignment point on 2 or more sides of the thin part. Bascially, once it shrinks, you will have to move from center to the large part point you were originally aligned to.

WHAT MAY HELP HERE IS A BOTHSIDES/ALLSIDES SCALE TOOL, so that you do not have to move the object at all after scaling. So, maybe you reference the middle(point where you want to consider the center/portion that does not change), then reference the right side boundary).
This Imaginary Tool would only work on symmetrical objects, so you would have to separate non-symmetrical objects beforehand. Then you would scale the non-symmetrical objects via the scaleNU, and re align them accordingly.
Or maybe this tool would scale inwards to the baseline no matter what the shape. You probably have this, but im a rook.

Also, a Auto Innershape Crossection Command, which creates the baseline centers of innermost symmetrical shape would be way sweet. So, lets say you have a Michelin Man model, and its a solid. It might be a cylinder/cone/box/ from groin to head, markout inner cylinders in leg, arms, etc.(if arms and legs were straight) You would choose which one you wanted, and it would cylinder all areas inside that it could. This would be useful for scaling, and a lot of other things.

How to code this I have no idea, but I’m thinking if you treated it like a finite element mesh model, and somehow calculated for each element how many elements from the wall it is in 3 or 4 or 8 or 12 directions (I don’t know), then you weight the scaling of each element by it’s total distance from the walls, then you may be able to achieve your desire.

EDIT: Whoah see what happens when you search, I thought it was from sept 14th 2020, not sept 2014 haha.