‘Impossible’ Modeling Challenges Part 6: Volume Control

This is the sixth article in the SOLIDWORKS Power User Challenges (SWPUC) series. Read the other articles in the series via the links below:


Everyone knows how to calculate the volume of a solid body using 3D CAD. For SOLIDWORKS users there are several options, including:

  • Using the Mass Properties tool
  • Using a Sensor
  • Using a Custom Property (for a part containing only one solid body)
  • Using a Cut-List Item Property (for a solid body)

Figure 1 – Using the Mass Properties tool.

Figure 2 – Setting up a Volume Sensor.

Figure 3 – Volume reported by a Sensor.

Figure 4 – Volume reported by a Custom Property.

Figure 5 – Volume as a Cut-List Item Property.

The Challenge

So far, the reported volume is that of the glass, and not of the fluid that fills the carafe.

If we were to pour a liquid substance in the carafe, let’s say an expensive Cabernet Sauvignon, it is important to ensure that the carafe is accurately graded.

When the level of liquid is known, it is relatively easy to compute its volume. The opposite is less simple, requiring a repetitive cycle of trial and error.

For an in-depth study of this problem, the power-users from the SOLIDWORKS Forum competed in the 10th SOLIDWORKS Power User Challenge (SWPUC).

They were provided with a model of the carafe and seven measurement lines already inscribed. The challenge was to ensure the lines were located at the proper height.

Figure 6 – Are these lines accurate?

Step 1 – Fill the Carafe to a Given Level

All solutions had one thing in common: the procedure for filling the carafe to a given level. For that we need to create a second solid body, representing the liquid. The best technique takes advantage of the Intersect tool:

  1. Create a horizontal plane at a known height.

Figure 7 – The plane will act as a cap for the solid body representing the wine.

2. Run the Intersect tool, using the Create internal regions option, without merging regions.

Figure 8 – Intersect is perfect for filling in closed spaces.

3. A new solid body is created to represent the wine.

Figure 9– Pour the wine until it reaches 4” height.

Step 2 – Determine the Level of a Given Volume of Liquid

The participants proposed different solutions for this step. Let’s consider determining the 40oz mark.

Solution #1 – Manually Modify the Locating Dimension of the Capping Plane and Reading the Volume

As you can imagine, this is a repetitive, time-consuming exercise.

Figure 10 – Manual, repetitive process of adjusting the plane dimension and reading the volume.

Solution #2 – Use Instant3DMode to Quickly Adjust the Locating Dimension of the Capping Plane and Read the Volume Sensor

Step #1: Create a Volume Sensor for the wine solid body.

Figure 11 – Creating a Volume Sensor for one body only.

Notice the volume units are not expressed in the type of unit you want. That is because of a known bug: SPR# 588882: Units in sensor are not consistent when editing/updating the volume sensor

Figure 12 – Wrong volume units.

Fortunately, the fix is simple, just edit the document units and re-select the unit for the volume.

Step #2: Correct the measuring units.

Figure 13 – Specify the desired measuring unit.

Figure 14 – Correct units are now reported.

Step #3: Ensure Instant3D is on.

Figure 15 – Instant3D will allow for the sensor to be updated in real-time while the dimension is quickly adjusted.

Step #4: Double-click on the capping plane to reveal its dimension.

Figure 16 – Reveal the plane dimension.

Step #5: Drag and release the Instant3D handle of the plane dimension.

Figure 17 – Drag and release the Instand3D handle.

Notice that, as you drag the handle, you can move the cursor over the ruler to ensure precise measurement modifications.

Figure 18 – Using the Instant3D Ruler for precise dimensioning.

Step #6: After each drag and release of the Instant3D handle, register the value of the Volume Sensor.

Figure 19 – Monitor the Volume Sensor.

Repeat Steps 5 and 6 until the reported volume of wine is within an accepted tolerance.

Tip: Zoom-in to the handle to perform more precise adjustments.

Figure 20 – Zoom in for precision.

It takes about 30 seconds to get the volume of liquid within an acceptable range.

Figure 21 – Pretty close to 40 oz.

Solution #3 – Use a Design Study to Automate the Trial and Error Process

The previous two solutions were labor intensive, requiring repetitive user input. What if we were to ask SOLIDWORKS to do all the work for us?

Step #1: Right-click on the Motion Study on the Status Bar and select Create New Design Study.

Figure 22 – Start a New Design Study.

Step #2: In the Variable View, add a variable parameter.

Figure 23 – Add a parameter.

Step #3: Select the Plane dimension and name it “Level”.

Figure 24 – Select the dimension you want to vary.

If you have a licence of Simulation Professional or Premium, follow steps 4 to 7. If you do not have a licence of Simulation Professional or Premium, follow steps 8 to 11.

With a Simulation Professional or Premium license, you can use Optimization functionality along with Goals to quickly obtain the desired result.

Step #4: From the Goals dropdown, select the Volume Sensor. If needed, you can create the sensor at this time.

Figure 25 – Add Volume Sensor.

Step #5: Set the goal to have the Volume = 40 oz.

Figure 26 – Set the target volume to exactly 40 oz.

Step #6: Establish the range for the Volume Variable.

Figure 27 – Quick results with Optimization.

Step #7: Click Run.

Figure 28 – The study is running.

The study quickly converges to the optimal result:

Figure 29 – Optimal result.

Note that the result can be further refined by narrowing the range.

Figure 30 – Narrow the range to increase precision.

If you do not have a licence of Simulation Professional or Premium, follow steps 8 to 11.

Step #8: Add the Volume as a Constraint. Set it to Monitor Only.

Figure 31 – Volume to be monitored.

Step #9: Set the variable Level as a Range with Step between 3” and 4” with a step of 0.1”.

Figure 32 – The Level will vary between 3″ and 4″ with a step of 0.1″.

Step #10: Click Run.

Figure 33 – The Volume is reported for each value of the Level dimension.

Step #11: Examining the final results it is clear that the optimal volume can be found for a level of wine between 3.5” and 3.6”.

Figure 34 – The user needs to determine the optimal results.

To increase precision, narrow the range and re-run the study.

Figure 35 – Range narrowed to 1/10th .

Figure 36 – 3.53″ is again the optimal number.

Winners of the 10th SWPUC

This was one of the most popular Power-User challenges so far. With 3161 views, 88 viewers, 84 replies, and tens of solutions, it was really hard to select a unique winner.

In the end, we recognized all the original solutions submitted by:

Todd Blacksher, Andreas Rhomberg, Scott Stuart, Brandon Graham, Muhammad Aamer, Bill Toft, Michael Fernando, Krzysztof W., Dan Pihlaja, John Stoltzfus and Elmar Klammer.


It’s easy to determine the volume of an existing solid body. It is more challenging to determine the level of a known volume of fluid poured in a given shape. For that, a trial-and-error procedure is needed.

SOLIDWORKS has an excellent tool for automating such trial and error processes, called Design Study. It can be used for a wide range of purposes, not only for computing volumes.

For example, if you love basketball, watch this video for another exciting application of design studies.

Recent Articles

Related Stories

Enews Subscribe