Point Clouds in Implicit Modeling

To drive a field or create implicit geometry, you can import a point cloud or create one from scratch.

Many of the contexts in Inspire Implicit Modeling permit you to drive the properties of a geometry with a field. Examples include changing the relative density or thickness of a lattice, or the radius of a fillet at different points in space. If the field used to control this sizing is defined from geometry, this is very straightforward. However, users often only know about the sizing requirements at specific points in space. The sizing elsewhere is less strict and can be generated automatically using different interpolation techniques, drawing influence from nearby locations where information is supplied. This scenario is handled using the Point Cloud context in Implicit Modeling.

The Point Cloud context asks you to provide data at known locations in space by specifying the x-, y-, and z-coordinate of each point, and also the scalar value of the field at that point. Point cloud data in this format can be imported from a .csv file, or created from scratch using the user interface. The scalar values could be derived from simulation results, known quantities based on engineering experience, driven by an equation, etc. For every position in a field that is not represented explicitly by a point in the cloud, the scalar value is created automatically using interpolation. Example interpolation techniques include Inverse Distance Weighting and Nearest Neighbor interpolation.

Inverse Distance Weighting behaves much like gravitation. For example, a point particle positioned between the earth and the moon would experience the gravitational effects of both the earth and the moon. The contribution of gravitation from the earth and the moon depends on the position of the point particle relative to both bodies, and the strength of the gravitational field from each body at that location. The same is true in Inverse Distance Weighting interpolation, where the influence of each of the cloud’s points (and their respective scalar values) at a certain position in space depends on the distance to each point in the cloud and the sign and magnitude of the scalar values. In the example image, below, Inverse Distance weighting has been used to smoothly interpolate the known relative density values of the lattice that have been specified at the point locations.

Nearest Neighbor interpolation is simpler to imagine. Each position in the field adopts the scalar value of the nearest point in the point cloud. This technique forces abrupt changes in the resulting Interpolating Scalar field as nearby positions in space may "snap" to different scalar values.



Create a Point Cloud

You can import a .csv file or build a point cloud from scratch. When modifying the point cloud, you can change the number and position of points, the interpolation strategy and, for Inverse Distance Weighting interpolation, the exponent. You can save the point cloud as a .csv file.

You can create point clouds from Python scripts, use Python libraries to clean up and filter the point clouds, and then import them in Inspire.

When creating a point cloud to generate implicit geometry, keep in the mind that the main concept in implicit modeling is to represent a surface as the zero level set of an implicit function. This function takes a point in 3D space as input and returns a scalar value. Points with values near zero are considered part of the surface, while points with positive or negative values are outside or inside the surface, respectively.

  1. On the Implicit Modeling ribbon, select the Point Cloud tool.

  2. Optional: For Visualization Quality, select from Low to Very High quality, which corresponds to a low to very high density of elements. A higher quality produces sharper geometry features but is more computationally intensive. When creating a complicated function, it’s recommended to work using a lower quality and then switch to a higher quality after the function is complete.
  3. Optional: To import a point cloud:
    1. In the Point Cloud dialog box, click the Folder icon.
    2. Browse to the .csv file.
    3. Click Open.
    The table is filled with data.
  4. Select a type of Interpolation.
    • Inverse Distance: The scalar value at a position that is not specified in the point cloud data is computed as the weighted average of scalar values of points in the point cloud. The weighting with respect to each point in the point cloud is a function of the distance to each point in the cloud. Scalar values at a point specified in the point cloud data will be exactly equal to the supplied scalar value.
    • Nearest Neighbors: The scalar value at a position that is not specified in the point cloud data is equal to the scalar value of the closest point in the cloud.
  5. Define the Exponent, which can be a constant value or variable. This is a number greater than or equal to one. Smaller values propagate the effect of a point farther through space and larger values make the effect of a particular point's scalar value more localized around that point.
  6. Create a point cloud from scratch or modify the existing one:
    To Do this
    Reposition a point Adjust the X, Y, and Z coordinates and the Value.
    Add a new point Click the + sign and enter the X, Y, and Z coordinates and Value.
    Delete an existing point Select the row, and then click .
    Reposition a row Select the row, and then click the up or down arrow.
  7. To save the point cloud:
    1. Click the Save icon.
    2. Browse to the desired folder.
    3. Enter the file name.
    4. Click Save.
  8. Click OK.
Next, you can:
  • Generate a continuous surface representation from point cloud data to create implicit geometry. For example, you could heal topology optimization data where there's a dimple that you want to remove. You could take the union of the topology optimization field and a point cloud field to fill it in.
  • Create a field with the point cloud as the driving object. You can then map the parameters of an implicit object to the field driven by the point cloud. For example, the scalar values in a point cloud may relate to stress data from a simulation. For this illustrative example, assume this data lies in the range of 1 kPa to 5 kPa, depending on the point's location. If this data is used to create a field that controls the radius of the beams in a strut lattice, these values need to be rescaled to lie in the range of thicknesses that are well-suited to these values. Continuing with this example, you may know that regions experiencing stress of 1 kPa should have a thickness of 1mm, and regions experiencing stress of 5kPa require a thickness of 5 mm. The rescale feature in the Field context should be used to map the range of stresses into the range of strut diameter (i.e., 1 kPa maps to 1 mm and 5 kPa maps to 5mm). Please note that these values are only for illustration purposes and you should use values appropriate for your application.