This tutorial will take you step-by-step through how to drive density in a shoe sole based on a foot pressure jet map.
Following best practices, all blocks are renamed by double-clicking on the name and made into variables by right-clicking on the block header.
Skill Level: Intermediate
Topics Covered: Field from Point Map, Ramps, Lattices, Variable Density
Step 01: Create Foot Pressure Map
To use the foot pressure data, the jet map image needs to be converted into a Real Point Map in a CSV file type. The file should have the X, Y, Z locations and the intensity. Converting this is beyond the scope of this tutorial, but it can be accomplished through Python or other programming languages. The image size has also been scaled to match the size of the shoe sole model.
Once you have the data, use the Import Real Point Map block and import the CSV file and choose units for the data. Nothing will show up after importing this. The next step is to create a Field using the Point Map. Add the block Field from Point Map. Insert the Real Point Map variable and set Interpolation to Natural and Extrapolation to Nearest.
Press 'f' or go to View > Field Viewer to see the foot map.
Step 02: Import Shoe Sole Model
Use the Import Mesh block to bring in the Shoe Sole model. After importing, add a Remesh Surface block to clean up the mesh. It is the best practice to always remesh the imported meshes.
Step 03: Create a Field-Driven Density Modifier
Now that we have our Field Map and Shoe Sole imported, we need to link them together. In order to do this, we need a Ramp block. Want to know what a Ramp is and what it does? Follow this link here!
In the Real Field of the Ramp block input the Foot Pressure Map variable from Step 01. This will allow the Ramp to vary any value according to the Foot Pressure Map. For the In min and max values, the allowable range for the Jet Color Map is 0 - 255, with 0 being dark blue and 255 being dark red. In this tutorial, set the values to:
- In min: 14
- In max: 200
The Out min and max values will be in mm, with the min being a larger number and the max being a smaller number. This will allow values closer to the dark red hue (higher pressure) to be smaller and denser, increasing the density where it is needed the most. Set the values to:
- Out min: 5 mm
- Out max: 2.5 mm
Step 04: Vary the Density of the Surface Mesh based on the Field Map
In order to vary the Surface Mesh based on the field map, we will use the Ramp density modifier as the Edge Length (this will change the size of the triangles based on the field map values). Add a Remesh Surface block using the Remesh Sole as the Surface and the Density Modifier as the Edge Length. Choose triangles for the Shape.
Step 05: Vary the density of the Volume Mesh
Add a Volume Mesh block and using the Density Modifier as the Edge Length and the Driven Remeshed Surface as the Domain. This will allow the entire volume mesh to vary based on the field values.
Step 06: Turn the Field Driven Volume Mesh into a Lattice
After creating a Volume Mesh, use the Lattice from Volume Mesh block to turn the mesh into a lattice.
Step 07: Create the Final Shoe Sole
Add a Thicken Body block and use the Lattice from Volume Mesh as the input. Set the Thickness to 1 mm. This will create the final shoe sole model. If you want to change the density, edit the values in the Ramp block. To see the density throughout the model, use Section Cut (x).
See the attached file for the complete workflow.
In use is nTop Version 2.4.5 - Methods and interface may have changed in different versions.