网站首页 > 技术教程 正文
数星期前,有人问说,如何才能保证零件可基于世界坐标系进行设计,而又不影响建模
恰巧是昨晚,吾之小伙伴check一个坐标系变换功能有出入,我随便推导下,分享一番,还望少批评多鼓励。
【背景】
存在即是合理的,在装配时,零部件自身的坐标系和世界坐标系默认是重合的,因此,若产品是基于世界坐标系进行设计的,由于基准一致,装配在一块就无须再进行约束操作。当然,搞事情难免有所束缚,也就是会影响到建模效率,不能忍也。因而,才会衍生出开发需求,吾之其一方案:基于零件内部轴系进行设计,按照固有方式进行装配约束(会更改零件局部坐标系),最后程序计算零件姿态,将零件局部坐标系和世界坐标系重合,仅由更改轴系参数保证位置位姿。
【原理】
在CATIA中,涉及多个坐标系,有世界坐标系、局部坐标系、和零件内的轴系。一般而言,世界坐标系是顶级参考,局部坐标系基于父层甚至世界坐标系来表征的,而轴系是创建在零件体内部,是相对于零件自身坐标系而言的。装配的本质就是坐标系的构造,搭建了立体的产品。
直奔此本目的,对问题进行抽象有:轴系A在坐标系B下的表示为P,坐标系B在世界坐标系C下的表示为Q,求取轴系A在C下的表示M。有结论:M=Q*P
Q通过GetAbsPosition,直接获取其在世界坐标系下的表示
P通过CATIMf3DAxisSystem接口,间接构建其在轴系B下的表示
【验证】
通过程序进行了结论验证,执行前后效果如下图所示。
【Reference】
1. 坐标系表征
坐标系A在坐标系B下的表征用4阶齐次矩阵表示:
其中, X轴向量为(ax,ay,az)、Y轴向量为(bx,by,bz)、Z轴向量为(cx,cy,cz)、原点坐标P为(px,py,pz)
2. 求取坐标系值
上述坐标系是个4×4的矩阵,在CAA中对应着专门的数据类型: CATMathTransformation,通过该类可以对矩阵进行求逆、点乘、叉乘等操作。通过CATMathTransformation::SetCoef()和CATMathTransformation::GetCoef()可以设置和获取一个坐标系矩阵的值。该数据从CATIProduct的接口获取而来的,其中如SetAbsPosition操作的则是当前对象相对于世界坐标系的值,SetPosition则需要给定参考对象。读写关系具体如下图所示。
3. 求取轴系对象
轴系的值可以通过CATIMf3DAxisSystem(GetOrigin、GetVectors)接口进行操作。具体使用方法见CAA Help Viewer和Encyclopedia。不赘述。
欢迎关注: CAA二次开发 (微信公众号)
开发深似海、疑义相与析!
- 上一篇: 面向制造的CATIA结构建模方法研究
- 下一篇: CAD(计算机辅助设计)的二次开发流程
猜你喜欢
- 2024-10-30 芜湖CATIA三维软件培训|你真的知道CATIA吗
- 2024-10-30 Catia v5/v6 catia自学视频教程
- 2024-10-30 NX二次开发-编辑部件族信息 ug nx二次开发
- 2024-10-30 CATIA功能性建模FMP,助力汽车零部件产品开发效率提升
- 2024-10-30 CAD软件二次开发框架 cad 二次开发
- 2024-10-30 UG/PROE/CATIA/PROE,你会用几个,一起来见证绘图软件的变迁吧!
- 2024-10-30 汽车行业必备设计软件CATIA安装程序与使用教材
- 2024-10-30 python with catia python中with open as的用法
- 2024-10-30 计算机辅助设计软件——CATIA catia辅助设计程序
- 2024-10-30 NX二次开发-NXManager外部开发环境配置
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)