找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 18031|回复: 7
打印 上一主题 下一主题

[原创] 也来说个实例,大家可以借鉴

[复制链接]
跳转到指定楼层
1
发表于 2010-7-27 09:27:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前几天来论坛找个油水活干干,网友zjs同志说手头很多小活自己做不过来给我一个做,我说这周做做看不保证做出来,结果昨天晚上做到10点做完了发现zjs给我发了一封邮件说自己做出来了,让我自己去研究吧,哎。
既然这样我留着也没用就当个实例来讲讲吧。
大体要求:
功能要求:测量附件:  L0, L1,L2  及 D1, D2 。及头上形状大小 X size, Y size.
图形如下:
[localimg=180,109]2[/localimg]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2010-7-27 09:35:46 | 只看该作者
上图是个二维图,说明了要对这个三维图形所求的几个参数,我的做法如下,考虑到这个模型可能存在旋转的情况,zjs推荐使用UF_MODL_ask_bounding_box_exact求包络立方体大小,鉴于本人对矩阵转化不是很熟悉,所以避开了矩阵使用采取下面的方法:
1、if(UF_MODL_CYLINDRICAL_FACE == faceType)获取圆柱面对象。
2、UF_MODL_ask_face_edges(CylindFaces[i], &edges_list);获取每个圆柱面的两条圆边edge。
3、UF_MODL_ask_minimum_dist(cylindFaceEdges[p][0],cylindFaceEdges[p][1],1,guess[0],1,guess[1],&min_dist,pt_on_obj1,pt_on_obj2);最小距离就是圆柱的高度了,至于圆柱半径在第一步的时候就可以用UF_MODL_ask_face_data(CylindFaces[i], &typeData, pointData, dirData, boxData, &radiusData, &radData, &norm_dirData);可计算出来了。
4、遍历所有面获取法线方向与圆柱轴向相同的面,用函数UF_MODL_ask_face_edges(CylindFaces[i], &edges_list);找出edge个数为4的面既是最上面的举行,求出线段长度就是长和宽了。
5,对法线平行于圆柱轴线的面两两就距离UF_MODL_ask_minimum_dist最大的就是L0了。

这个方法就避免了用矩阵旋转的问题了。

欢迎有二次开发小活的兄弟以后多多关照。在此多谢了
3
发表于 2010-7-27 12:06:56 | 只看该作者
在此多谢了
4
发表于 2010-7-27 19:34:44 | 只看该作者
不能通过特征求的?
5
发表于 2010-7-29 12:01:20 | 只看该作者
楼主是个高手,可以多奉献一下
6
发表于 2010-8-31 01:08:55 | 只看该作者
学习学习..................
7
发表于 2011-7-15 10:14:27 | 只看该作者
楼主是个高手,学习
8
发表于 2011-8-18 14:25:14 | 只看该作者
谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-27 17:29 , Processed in 0.027821 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表