我有三个不规则圆柱体物体的模型(stl-files),我想沿着长轴以设定间隔进行测量。结果应该是直径的分布(或椭圆形横截面的长轴和短轴的长度)。 有没有一种方法可以使用3D软件(Geomagic,Meshlab,Solidworks)的标准件之一的内置函数来实现这一点?计算不规则三维圆柱体的直径分布
回答
下面是我想借此Solidworks的API方法:
1收集你身体的所有边缘,将其转换为载体。如果它是一个曲线,只需要endPoint - startPoint。 IPartDoc::GetBodies2IBody2::GetEdges
2使用这些向量作为潜在的轴找出您的身体适合使用IBody2::GetExtemePoint的最小盒子。
3箱子的最大尺寸将是您的长轴。
**如果你事先知道你的身体的方向(即汽缸顶部看起来总是方向为X/X),你可以跳过前三步
4取4个面,你发现那些箱子平行于最长的维度。例如,如果您的盒子是x,y,z轴,x是最长的,则必须将2个面平行于xy平面,2个面平行于xz平面。
5对于这4个脸部中的每一个脸部都会生成一个均匀覆盖脸部的点的网格,点的数量取决于所需结果的准确性,我建议以每个脸部100个点开始。
6从这些点拍摄射线虽然身体与IModelDoc2::RayIntersections。
7忽视不与身体相交的射线,那些会给你2分 - 入口和出口,计算它们之间的距离会给你你的直径。
8因为你的光线将横跨表面相交圆柱体,不仅在最厚的部分,每行网格点只使用最大直径。
这是最常用的方法,可以适用于任何'不规则圆柱状物体',因为圆柱体的高度大于其直径。
让我知道如果你需要澄清任何步骤,我可以画一些草图。
感谢您的建议!问题是一些圆柱体是弯曲的,所以边界框的长轴不会与长轴同向。最简单的情况是当物体由两个相对直线段通过45度转弯连接时。 –
你可以上传几个样品部件? – Vlad
- 1. 如何计算外接不规则物体的圆的直径?
- 2. R中的三维圆锥和圆柱体
- 3. Python:计算圆柱体的表面积
- 4. 如何计算椭圆的直径?
- 5. 如何画平面着色的三维圆柱体
- 6. 计算n维圆弧路径
- 7. 如何使用gl_polygon绘制三维圆柱体
- 8. 三柱流体布局
- 9. 在Python中计算用户输入半径的圆柱体高度
- 10. 用于计算圆柱体圆柱体矩形的体积,方法超载更容易去这个
- 11. 圆柱算法
- 12. 映射到一个三分之一的圆柱体
- 13. L系统 - 减少更新分支的圆柱体半径
- 14. Bresenham的三维圆形算法?
- 15. 计算的不规则物体的准确体积
- 16. 在圆柱体内用相机视图绘制html5画布圆柱体
- 17. 三维立方体的圆角边缘
- 18. 圆柱类计算显示0.0
- 19. 圆的直径
- 20. 倒圆半径计算
- 21. 规则间隔点的三维网格
- 22. 圆柱形轨迹的三维可视化
- 23. MATLAB:如何绘制三维的概率分布? (涉及贝叶斯规则)
- 24. 圆柱体部分可见WebGL
- 25. 如何计算圆柱体“顶部”圆心,给定旋转角度?
- 26. d3四分之一圆圈的路径半径计算
- 27. 在MySQL中计算规范分布
- 28. 计算图的直径
- 29. 计算不规则空间的面积
- 30. 查找圆柱体和三角形之间的法线
也许你会在http://forums.solidworks.com得到响应 – AndrewK
如果你知道圆柱体的轴,你可以通过获取从顶点到轴的距离来估计半径。对于椭圆轴长度,您可以将圆柱轴重置为垂直,并计算投影点的惯性椭圆(或只是切片中的点)。 –
如果您愿意进行一些编码工作,我可以用Solidworks API指出您正确的方向 – Vlad