CATIA二次开发-装配技术
装配对齐1
常用的装配方法中有两种,约束装配和坐标装配。约束装配涉及约束条件在开发中不易操做,坐标装配在开发中只需给定装配位置和矢量方向就能达到装配目的。
CAA开发中提供了CATIMovable接口支持开发者对组件的位置进行设置。开发者通过CATMathtransfomation.SetVector可以设置定位组件的原点,CATMath3x3Matrix.SetThridVector可以设置组件矢量方向。CATMath3x3matrix矩阵同时控制着组件的空间位置、比例。
这里我们便可以提出一个问题,已知装配位置CATMathPoint point1, 已知装配矢量CATMathVector vector1,已知目标组件CATIProduct product1.要求把product1装配到point1沿vector1方向摆放。
处理方法:
1.通过product1 获取CATIMobale接口,进而通过该接口获取和设置原点和向量矩阵。
2.需要把point1转为 CATMathVector.这里的CATMathTransformation.SetVector实际上是设置组件原点,也不知道为什么要这么命名这个方法。
3.需要把vector1转为向量矩阵,也就是得到这个矩阵的三个分量设置给CATMath3x3Matrix.
通过以上处理之后我们可以让product1的正Z方向沿vector1摆放。(这里我需要注明螺栓本身不是沿Z向摆放的,需要让螺栓方向与vector1重合还需要做进一步的处理。)
void SetProductPosition(CATIProduct *product1, CATMathPoint point1, CATMathVector vector1)
{CATIMovable *pmovable = NULL;product1->QueryInterface(IID_CATIMovable, (void **)&pmovable);if(NULL != pmovable){CATMathTransformation mathtrans;pmovable->GetAbsPosition(mathtrans);CATMath3x3Matrix matrix;mathtrans.GetMatrix(matrix);vector1.Normalize();CATMathVector xvec, yvec;CAA_MATH_ask_vertical_vec(vector1, xvec, yvec);matrix.SetFirstColumn(xvec);matrix.SetSecondColumn(yvec);matrix.SetThirdColumn(vector1); CATMathVector orgvec(point1.GetX(), point1.GetY(), point1.GetZ());mathtrans.SetVector(orgvec);mathtrans.SetMatrix(matrix);pmovable->SetAbsPosition(mathtrans);pmovable->Release();}}
装配对齐2
沿上。
有时候我们需要设置的对齐方向不是部件的正Z方向而是自己定义的方向。这里我给出我自己总结出来的处理方法。
1. 在product1 中发布一条直线,该直线作为目标设置值计算参考。
2. 实际上要装配的位置是在上一节之后要旋转的位置。
3. 假设向量vector2是螺栓部件中发布直线的向量值。vector1和vector2叉乘可以得到一个新的向量vector3。vector1所在的矩阵沿向量vector3旋转vector2到vector1的角度。新的矩阵matrix2才是该例子中需要的解。
CATIA二次开发-装配技术相关推荐
- catia三维轴承_浅谈基于CATIA二次开发的单排四点接触球轴承三维设计论文
浅谈基于CATIA二次开发的单排四点接触球轴承三维设计论文 一.概述 单排四点接触球转盘轴承是一种能够同时承受较大轴向负荷.径向负荷和倾覆力矩等综合载荷,集支承.旋转.传动.固定等多种功能于一身的特殊 ...
- Catia 二次开发 资料
Catia 二次开发 CATIA V5在开发之初就遵循面向对象的设计思想(OO),构建了完全基于组件的体系结构(PPR: Products,Process,Resource),有效地解决了维护.管理. ...
- 【二次开发】如何使用C#进行CATIA二次开发
1. 引言 由于项目需要,最近搜集整理了一些关于CATIA二次开发的资料,貌似国内对于CATIA二次开发需求不大,相关资料比较有限,因此刚开始遇到了不少问题,通过分析网上的一些示例,以及结合CATIA ...
- catia二次开发_侧长条花纹定义
1. 前言 想多写点博文,就把以前完成的小作品贴出来,与大家共勉. 工具:VS2010 C# .Catia R21 参考:<CATIA二次开发技术基础>.API 最好是多写一点模板类,可以 ...
- CATIA二次开发资源汇总
http://blog.olizax.com/post/46403531888/catia 按:本来是为了偷懒,利用python写了一点catia的脚本,结果被领导发现,让我拿出一个成熟点的东西出来, ...
- 想入门CATIA二次开发CAA的盆友看过来(谈谈开发经验,或许对你有帮助!)
前言 刚开始接触CATIA二次开发时候还是比较难熬的,因为没接触过CATIA.更重要的是没有C++基础.帮助文档 很难翻译成可以理解的中文.刚开始时候一头雾水,身边也没人做过开发,都是我一个人在默默的 ...
- CAA教程——CATIA二次开发环境搭建
CAA教程--CATIA二次开发环境搭建 前言 开发环境搭建所需资源 安装注意事项 安装完成后的一些操作 测试程序的运行效果 CATIA帮助文档的设置 VS里利用CATIA帮助文档的查询接口功能 编译 ...
- CATIA 二次开发 CAA笔记.新的开始
CATIA 二次开发 CAA笔记.新的开始 序 正题: 序 之前并没有什么编程的项目经验,说道本人的教育背景,本科化工机械,研究生考的车辆工程,然后在导师的建议下选择了协同方向, 自学了一点微不足道的 ...
- CATIA二次开发:定制化需求、降低错误率和提高工作效率的完美解决方案
CATIA二次开发:让您的设计更高效 如果您是一位CAD工程师,您一定知道CATIA软件.CATIA是目前工业设计领域中使用最广泛的三维CAD软件之一.但是,您可能不知道CATIA还可以通过二次开发来 ...
- 建模系统编程语言c 有限元,基于CATIA二次开发的渐开线直齿轮参数化设计.pdf
基于C A T I A 二次开发的渐开线直齿轮参数化设计 P a r a m e t r i cD e s i g no fI n v o l u t eS p u rG e a rB a s e d ...
最新文章
- Java web—Servlet的请求与响应
- PS教程第四课:PS新建文档和像素
- LeetCode 96. Unique Binary Search Trees
- 2010.11.13网规论文关注点
- 王健林:用深刻教训换来的8点心得
- weui.js汉字乱码
- VGA常用分辨率及计算方法
- 汽车暖风系统操作步骤
- 不小心把文件夹管理员权限删除的回复方法
- 如何在手机上做读书笔记?手机做读书笔记的软件
- gird和flex布局
- 【金钱开道】直捣黄龙!
- Unreal Engine 4 —— Smear Frame效果的实现与分析
- 70 Three.js 导入STL格式的模型
- 基于tf-openpose的动作识别实现街头霸王5对战项目
- 闭关之 C++ Template 笔记(一):PartⅠ基本概念(一)
- k8s部署vue项目
- pybullet机器人仿真环境搭建 1.安装pybullet,测试官方示例,基础环境搭建
- 华硕p5vdc-x主板老板子刷bios方法
- 设置单元格之间的间距