装配对齐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二次开发-装配技术相关推荐

  1. catia三维轴承_浅谈基于CATIA二次开发的单排四点接触球轴承三维设计论文

    浅谈基于CATIA二次开发的单排四点接触球轴承三维设计论文 一.概述 单排四点接触球转盘轴承是一种能够同时承受较大轴向负荷.径向负荷和倾覆力矩等综合载荷,集支承.旋转.传动.固定等多种功能于一身的特殊 ...

  2. Catia 二次开发 资料

    Catia 二次开发 CATIA V5在开发之初就遵循面向对象的设计思想(OO),构建了完全基于组件的体系结构(PPR: Products,Process,Resource),有效地解决了维护.管理. ...

  3. 【二次开发】如何使用C#进行CATIA二次开发

    1. 引言 由于项目需要,最近搜集整理了一些关于CATIA二次开发的资料,貌似国内对于CATIA二次开发需求不大,相关资料比较有限,因此刚开始遇到了不少问题,通过分析网上的一些示例,以及结合CATIA ...

  4. catia二次开发_侧长条花纹定义

    1. 前言 想多写点博文,就把以前完成的小作品贴出来,与大家共勉. 工具:VS2010 C# .Catia R21 参考:<CATIA二次开发技术基础>.API 最好是多写一点模板类,可以 ...

  5. CATIA二次开发资源汇总

    http://blog.olizax.com/post/46403531888/catia 按:本来是为了偷懒,利用python写了一点catia的脚本,结果被领导发现,让我拿出一个成熟点的东西出来, ...

  6. 想入门CATIA二次开发CAA的盆友看过来(谈谈开发经验,或许对你有帮助!)

    前言 刚开始接触CATIA二次开发时候还是比较难熬的,因为没接触过CATIA.更重要的是没有C++基础.帮助文档 很难翻译成可以理解的中文.刚开始时候一头雾水,身边也没人做过开发,都是我一个人在默默的 ...

  7. CAA教程——CATIA二次开发环境搭建

    CAA教程--CATIA二次开发环境搭建 前言 开发环境搭建所需资源 安装注意事项 安装完成后的一些操作 测试程序的运行效果 CATIA帮助文档的设置 VS里利用CATIA帮助文档的查询接口功能 编译 ...

  8. CATIA 二次开发 CAA笔记.新的开始

    CATIA 二次开发 CAA笔记.新的开始 序 正题: 序 之前并没有什么编程的项目经验,说道本人的教育背景,本科化工机械,研究生考的车辆工程,然后在导师的建议下选择了协同方向, 自学了一点微不足道的 ...

  9. CATIA二次开发:定制化需求、降低错误率和提高工作效率的完美解决方案

    CATIA二次开发:让您的设计更高效 如果您是一位CAD工程师,您一定知道CATIA软件.CATIA是目前工业设计领域中使用最广泛的三维CAD软件之一.但是,您可能不知道CATIA还可以通过二次开发来 ...

  10. 建模系统编程语言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 ...

最新文章

  1. Java web—Servlet的请求与响应
  2. PS教程第四课:PS新建文档和像素
  3. LeetCode 96. Unique Binary Search Trees
  4. 2010.11.13网规论文关注点
  5. 王健林:用深刻教训换来的8点心得
  6. weui.js汉字乱码
  7. VGA常用分辨率及计算方法
  8. 汽车暖风系统操作步骤
  9. 不小心把文件夹管理员权限删除的回复方法
  10. 如何在手机上做读书笔记?手机做读书笔记的软件
  11. gird和flex布局
  12. 【金钱开道】直捣黄龙!
  13. Unreal Engine 4 —— Smear Frame效果的实现与分析
  14. 70 Three.js 导入STL格式的模型
  15. 基于tf-openpose的动作识别实现街头霸王5对战项目
  16. 闭关之 C++ Template 笔记(一):PartⅠ基本概念(一)
  17. k8s部署vue项目
  18. pybullet机器人仿真环境搭建 1.安装pybullet,测试官方示例,基础环境搭建
  19. 华硕p5vdc-x主板老板子刷bios方法
  20. 设置单元格之间的间距

热门文章

  1. python pyecharts绘制网络关系图
  2. mysql当周过生日的人_已知出生年月日,如何查询出本周过生日的人员?
  3. openvpn下的路由和桥接模式
  4. springboot整合阿里云OSS存储(对象存储)图文详解-———入门操作指南。
  5. 判断对错html,js制作单选题,能判断对错
  6. 如何制作一个漂亮的网页
  7. Lightroom:统一照片的曝光度
  8. VGA显示器屏幕文字模糊(稍有重影)的解决方案
  9. STM8S103F3P6锁死问题及解锁
  10. mt4双线macd_手机版MT4双线MACD设置视频教程