<p>The regions you are looking for can be found using cross-section analysis.</p>
<p>Cutting the model with a plane will result in a polygon(s). The area of the polygon can be computed saved and compared to other cross sections. This information is compared with changes in the cross section size to reject edge regions and find areas where there are sudden changes in size. The plane is rotated and the process repeated. The number of angles of the plane can be limited to about 16 to get a reasonable analysis.</p>
<p>The entire algorithm depends on a relatively easy to write function that computes the distance from the plane. When the end points of an edge has both a positive and a negative distance to the plane, then the edge intersection point with the plane is computed and saved. (corner cases must be dealt with as well). The individual vertices that are generated also have to be bucket sorted into individual polygon's using the edge info.</p>
<p>There are engineering tools that <em>might</em> be able to do this automatically such as  ParaView (open source) and SolidWorks (commercial).</p>

CC BY-SA 4.0
2023-02-03T22:36:38.587Z
2023-02-03T22:36:38.587Z
pmw1234
<p>I'd like to identify transition points in an STL where the model goes from relatively large surface to a relatively small surface.<a href="https://i.sstatic.net/ANUlC.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/ANUlC.png" alt="enter image description here" /></a></p>
<p>I think that if I had a function that showed me the minimal cross section area at any point I may be able to get this from a gradient of that scalar field.</p>
<p>Forgive me, I'm not sure what this is called or even how to start googling around for this so anything is appreciated.</p>

CC BY-SA 4.0
2023-02-02T22:01:13.590Z
It might help if you can include a description of what you intend to use this information for — that will help identify whether a particular definition of such regions, or algorithm to find them, is suitable for the purpose.
Kevin Reid
<computational-geometry>
Are there any techniques or algorithms for marking regions of a 3D model with small cross sections
Dave Fol
# Are there any techniques or algorithms for marking regions of a 3D model with small cross sections

(Asked by: username_0 on 2023-02-02)

I'd like to identify transition points in an STL where the model goes from relatively large surface to a relatively small surface.[![enter image description here](https://i.sstatic.net/ANUlC.png)](https://i.sstatic.net/ANUlC.png)

I think that if I had a function that showed me the minimal cross section area at any point I may be able to get this from a gradient of that scalar field.

Forgive me, I'm not sure what this is called or even how to start googling around for this so anything is appreciated.

**Tags:** computational-geometry

> **Comments:**
> **username_1**: It might help if you can include a description of what you intend to use this information for — that will help identify whether a particular definition of such regions, or algorithm to find them, is suitable for the purpose.  

---

## 1 answers

### Answer by username_2 on 2023-02-03. Score: 2

The regions you are looking for can be found using cross-section analysis.

Cutting the model with a plane will result in a polygon(s). The area of the polygon can be computed saved and compared to other cross sections. This information is compared with changes in the cross section size to reject edge regions and find areas where there are sudden changes in size. The plane is rotated and the process repeated. The number of angles of the plane can be limited to about 16 to get a reasonable analysis.

The entire algorithm depends on a relatively easy to write function that computes the distance from the plane. When the end points of an edge has both a positive and a negative distance to the plane, then the edge intersection point with the plane is computed and saved. (corner cases must be dealt with as well). The individual vertices that are generated also have to be bucket sorted into individual polygon's using the edge info.

There are engineering tools that *might* be able to do this automatically such as ParaView (open source) and SolidWorks (commercial).


---

