CATIA CAA 创建投影视图

百科全书里的视图示例是剖切视图,实际上常用的更多时候是投影视图,可向任意平面进行投影,下面是6视图函数示例


/**************************************************
函数功能:根据主视图面创建指定类型投影视图
函数说明:oView 创建的投影视图iPartDoc 要投影的part文档iPlane 投影的正视图数学平面iGenGeomSecond 标注的第二选择元素iSheet 要添加view的sheetiViewType 投影六视图中的哪一个iScale 缩放比率
**************************************************/
HRESULT AnnotationToolKit::CreateProjectionViewByMainViewPlane(CATIView_var &oView,CATDocument* iPartDoc,CATMathPlane iFrontViewPlane,CATISheet_var iSheet,CATDrwViewType iViewType,double iScale)
{oView = NULL_var;HRESULT result = E_FAIL;if(NULL == iPartDoc || NULL_var == iSheet ) return result;CATMathVector vFrontPlaneNormal;CATMathVector vFrontPlaneFirstDirection;CATMathVector vFrontPlaneSecondDirection;iFrontViewPlane.GetNormal(vFrontPlaneNormal);iFrontViewPlane.GetDirections(vFrontPlaneFirstDirection,vFrontPlaneSecondDirection);CATMathPlane vMathPlane;switch(iViewType){case FrontView:vMathPlane = iFrontViewPlane;break;case RearView:vMathPlane = CATMathPlane(CATMathPoint(0,0,0),-vFrontPlaneFirstDirection,vFrontPlaneSecondDirection);break;case LeftView:vMathPlane = CATMathPlane(CATMathPoint(0,0,0),vFrontPlaneNormal,vFrontPlaneSecondDirection);break;case RightView:vMathPlane = CATMathPlane(CATMathPoint(0,0,0),-vFrontPlaneNormal,vFrontPlaneSecondDirection);break;case TopView:vMathPlane = CATMathPlane(CATMathPoint(0,0,0),vFrontPlaneFirstDirection,-vFrontPlaneNormal);break;case BottomView:vMathPlane = CATMathPlane(CATMathPoint(0,0,0),vFrontPlaneFirstDirection,vFrontPlaneNormal);break;default:return result;break;}CATISpecObject_var spSpecOnSheet = iSheet;CATIDrwFactory_var spDrwFact = spSpecOnSheet->GetFeatContainer();CATIDftViewMakeUp *pNewViewMU = NULL;if (NULL_var != spDrwFact && SUCCEEDED(spDrwFact->CreateViewWithMakeUp(IID_CATIDftViewMakeUp,(void **)&pNewViewMU))){if (NULL != pNewViewMU){CATIView *pNewView = NULL; if (SUCCEEDED(pNewViewMU->GetView(&pNewView))){if(NULL != pNewView){pNewView->SetViewType(iViewType);pNewViewMU->SetScale(iScale);iSheet->AddView(pNewViewMU);iSheet->SetCurrentView(pNewView);CATISpecObject_var spSpecObj= ZUFAPI::GetPartFromDocument(iPartDoc);CATILinkableObject_var spLink = spSpecObj;pNewView->SetDoc(spLink);CATIGenerSpec_var spGenerSpec = pNewView->GetGenerSpec();spGenerSpec->SetProjPlane(vMathPlane);CATISpecObject_var spSpecOnGener = spGenerSpec;spSpecOnGener->Update();oView = pNewView;pNewView->Release();pNewView = NULL;result = S_OK;}}pNewViewMU->Release();pNewViewMU = NULL;}}return result;
}

创建视图后可通过CATIDftGenGeom::GetGeometryOfOrigin()函数取得投影源拓扑对象,方便进行进一步的处理

CATIA CAA 创建投影视图相关推荐

  1. #开发catia_CATIA工程制图二次开发之15:从平面创建剖面视图

    从平面创建剖面视图 如何创建与平面关联的切割剖面视图 摘要 本文讨论 CAADrwCreateSectionFromPlane用例.此用例说明如何创建由与平面关联的切割剖面定义的生成剖面视图.因此,如 ...

  2. 创建物化视图commit_oracle 中物化视图讲解

    oracle 中物化视图讲解 oracle中的物化视图首先需要创建物化视图日志,oracle根据用户创建的物化视图日志来创建物化视图日志表,物化视图日志表名称为mlog$_基表名,如果表名超过20位, ...

  3. oracle雾化试图_Oracle创建物化视图

    Oracle创建物化视图 通过Oracle物化视图章节,我们已经了解到Oracle物化视图的作用和创建原理,本节通过实例详细讲解Oracle是如何创建物化视图的. 创建物化视图语法: 语法:creat ...

  4. linux创建mysql视图_MySQL视图基本操作

    1.准备工作 在MySQL数据库中创建两张表balance(余额表)和customer(客户表)并插入数据. create table customer( id int(10) primary key ...

  5. [译]创建物化视图的先决条件

    原文Oracle® Database SQL Reference 10g Release 2(10.2) B14200-02 P924-925 创建物化视图的权限应当直接赋予而非通过角色 在你自己的s ...

  6. Oracle 11g 通过创建物化视图实现不同数据库间的表数据同步

    Oracle 11g 物化视图语法如下: create materialized view [view_name] refresh [fast|complete|force] [ on [commit ...

  7. 创建mysql视图语法正确的是_MySQL创建视图的语法格式

    视图,具有简化查询语句.安全性和保证逻辑数据独立性等作用 创建视图的语法格式 视图中,包含SELECT查询的结果,因此,视图的创建基于SELECT语句,和已经存在的数据表,视图可以建立在一张表上,也可 ...

  8. 创建数据库_详解Oracle数据库物化视图及创建物化视图索引

    概述 物化视图是一种特殊的物理表,"物化"(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图S ...

  9. 【clickhouse】创建物化视图数据来源是两张表该怎么写创建语句呢?

    1.概述 创建物化视图数据来源是两张表该怎么写创建语句呢 CREATE [MATERIALIZED] VIEW [IF NOT EXISTS] [db.]table_name [TO[db.]name ...

最新文章

  1. UNIX中后台进程与守护进程
  2. javascript最快入门
  3. 推荐一个golang的json库
  4. arm-linux-gcc静态编译和动态编译的区别
  5. JAVA蓝桥杯:字母图形
  6. idea项目乱码问题
  7. python花式输出_关于python字符串format的一些花式用法
  8. SQL SERVER数据库备份时出现“操作系统错误5(拒绝访问)。BACKUP DATABASE 正在异常终止。”错误的解决办法...
  9. sublime怎么配置python环境_在Sublime Editor中配置Python环境的详细教程
  10. Excel中的常用快捷键
  11. 字符串格式参数的日期比较函数
  12. POJ 3267 The Cow Lexicon(动态规划)
  13. SylixOS移植Redis库总结
  14. nginx-1.13.7 按照centos8 报错记录
  15. 企业微信集成外部APP
  16. 现代电子计算机数学理论基础,知到食品营养学(暨南大学)2020网课答案
  17. unity 模型销毁_Unity中销毁游戏对象的方式
  18. 「罗马人的故事 II 汉尼拔战记」读后感
  19. SQL--Transact-SQL
  20. FFT专题:IFFT后信号如何重建

热门文章

  1. MATLAB | R2023a更新了哪些好玩的东西
  2. 【推荐】测试建模:启发式测试策略模型
  3. 2007-08书签存档
  4. 一名Web3D开发工程师的Three.js知识总结与学习步骤
  5. 苹果最新系统ios7_手机资讯:你绝对不知道的iOS7隐藏功能
  6. 企业做搜索引擎关键词排名优化要多少钱?
  7. .java文件_Java文件操作
  8. Linux终极shell-zsh的完美配置方案!——oh-my-zsh
  9. #DeepLearningBook#算法概览之八:Representation Learning
  10. win10 安装 ubuntu18.04双系统(以及英伟达驱动安装和各种设置)