最近碰到三维模型处理问题,我需要使用三维模型的点云,但是手头只有三维模型的solidworks文件,需要把solidworks文件转成点云。 有一种方法是使用meshlab处理。在sw里把文件另存为stl格式,然后在meshlab中打开,然后细分模型,最后另存为xyz格式。但这种方法有一个很大的缺点,就是点云很不均匀,在平面区域点非常少,所以这个方法gg。 知乎上有人给了一个方法link,用pcl库的命令行工具pcl_mesh2pcd或者pcl_mesh_sampling。我用的pcl_mesh2pcd,给出我的操作过程供大家参考。
solidworks中把文件另存为stl格式,然后用crossmanager把stl格式转为obj格式(pcl_mesh2pcd只识别obj和ply格式)
这是转换结果,效果不错。-leaf_size参数控制采样密度,我的采样密度太大了,结果有37万个点,可以增大-leaf_size或者用pcl_voxel_grid命令,不过pcl_voxel_grid输出的文件是二进制格式。 减少了点数量,大概3万个: 上面知乎链接里有人碰到运行pcl_mesh2pcd命令core dumped bug,我的电脑运行没问题,如果有人知道解决办法可以在评论区分享一波。
