在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → opencascade中文帮助文档

opencascade中文帮助文档

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:4.17M
  • 下载次数:39
  • 浏览次数:845
  • 发布时间:2020-07-18
  • 实例类别:一般编程问题
  • 发 布 人:robot666
  • 文件格式:.pdf
  • 所需积分:2
 

实例介绍

【实例简介】
详细介绍了opencascade如何使用
模乱空司 80 4.1) + 0.0) 矩形 图53在模型空间的图形对象和视图映射 4.1图像处理 4.1.1一般情况 图像也是图元,图形资源在当前可能会接受所有在 AlienAge包中描述的 图像美型。下面的例子仅仅是.xwd格式卜接受的情况。在 GraphicObject中定义 图元图像。示例代码如下 Handle[Image Image) unlmage, if (Xwdlmage REblmige) anImage= AlienUser->Tolmagc (; HandletGraphuic 24 Image)lmage -new (iraphic2d Imag Madrobj, animage, 0.(.,(, Aspect CP CENTERT: 注:以上的图像构造器只是作为图形对象的一个依据:图形对象包含图像和 图像本身的一些属性,如中心的XY坐标,在設备空间的ⅹY偏移量以及一个给 了显示方向的关键点。现在就可以在驱动中对视图进行更新,换句话说,就是绘 制图像。代码如下 Standard boolean clear= standard tiu view->Update (driver, viewmupping, W32. H/2. scale, clcar) 4.1.2特殊情况:xwd格式 当被管理的图惚用xwd格式保存时, Graphic2 d pagefile这个特殊的类可 能被用来增加其执行能力 代码如下 OSD Path uPath ("C-testxwd" oSD File aFile (arathi Handlel Graphis 2d ImaseFileglmageFile-tiew Giraphic2d ImagyeFile (adir obj aFile, (., 0., t, D, Aspect CP Center, I: gImageFile-=Set/mable( Standard The); 现在图形包含了一个图像,图像作为一个图元来处理 4.2文本处理 Graphic2 d Text的构造器会从模型空间获得·个参考点和·个角度来作为 一个依据,当然它也会指派给图形对象。需要注意的是除非要使用角度文本,否 则角度是要被忽略的。恻 TCollection Extendedstring strI [yellow Courier-bold h TCollection Extendicd String str2 ("red Helevetica-boldF ICollection Extendedstrifhg str3(stEen Aspect TOF DEFAULT Handlel Graphis2d Text) tl=new Graphic2d Text[aGrob. strL.0.3.0.3. 0.01 Hand el Graphic 2d Text)12=new GraphicEd Text(aGrObj, str 2, 0.0, 0.0, 0.01 Handle( 2d Text)ts-new Graphic 2d Text aGrobi, str3, -0,3,-41.3, 0,01 t1->SetFontIndex (1; tl->Sct Colorindex (1) t2--SetFontIndex (2 t2->Sercalorlndex (2); t3-2SetFontlndex (31: t3->SetColorindex(33: 4,3标记处理 标记是一种图元,当视图被缩放时需婆保持它的原始尺寸,标记是可以使用 的,例如作为对尺寸的参考时 4.3.1向量标记 每个标记取得个XY坐标点作为它的参考点。构造器也会从ⅹY坐标中取 得“对坐标作为这些參考点的偏移量。对于 Circlemarker和 Lips Marker这两个 偏移点就是它们的中心。而对于 Polyline marker这个偏移点就是它的原点。下面 的例子是用 graphic2 d polyline创建个矩形: IColStd ArraylOfReal rListX (1. 5) TColStd Arrayl OfReal tListY(1, sK TL istX(>=-03: rListY(13=-3 TListX(2)--013: rListY(2)-013: rListX(3)=0-3, rListY (3)=0.5; TListX(4)0. 3: rListY(4)--03 rListX()--01,3; rListY(3)-40.3 Handle( Graphis 2d Polyline) p=new Graphic2d Polyline (aGrObi, rListx TListYE; 可以看到创建了两个 Graphic2 d circle markers第一个从它的中心没有给偏 移量。而第二个则从参考点强行给定了一个偏移量,这可以从图5-4中看出。例: Handle( 2d Cirle Marker rc1-newGraphic 2d CircleMirker irOb,9.04,Q,03,00,.0,0.但 HundlelGraphic2d Circle Marker)re2- newGiraphic 2d CircleMarker 4aGrb003。0.03,0.01,00001 indow->CI 参考点与r1的中心重合 re的参需点 r的中心 焦魄队X 可以通过绍酸来增加或小图形 对象的尺寸,但是标记。图像和文本 对象是不会改变的,这是因为它们号 乡考点的位置有关 图54标记联系点和图的缩放 4.32索引标记 旦标记映像被创建,紫引标记就会被添加到一个图形对象上了。例 Handle( Graphic 2d Marker) xmkr= new GraphicZd Marker GrAb.1,004,003,00,00,00 Handle Graphic2d Marker) plusinkr= new Giraphic2d Marker 4 GrOb.2,0014,00.0.0,0.0,0D Handle( (iraphic2d Marker) aplusmkt-new GraphieZd Marker GrOb,3.0.04,-0.03,0.0.0.0,0.0); 44使用緩冲器进行绘制 缓冲器的用途就是在不删除背景环境的情况下快速绘制场景的一部分区域 缓冲器包含一组嬰被移动的、旋转的或在视图的前向平面内绘制场景所需的图形 对象或图元。例如:在视图中绘制一个非常复杂的场景。创建一个有图元色彩 index10和字型 index4的图元缓冲器 bufTer=new Graphic 2d Bufter ( view, O,(, 14, 4); 添加图形对象或图元 butler- Add go): bufTer->Add (tcircle[) butler>Add (tl); 在视图中加速缓冲器 bufTer->Post (1: 在上面的视图中移动、旋转或测量缓冲器 buticr->Move(x y1: butfer->Rotate (alpha) bufleT->Scale doom factorl: M在视图中不加速缓冲器 buffer- Umns 4.5本章小结 本章对2D图形对象的创建和如何显示的过程进行了全面分析,从中可以看 出3D显示和2D显示的区别是很大的。3D显示直接应用OCC提供的方法即可 实现,而2D显示更多是建立在计算机图形学算法基础上的,一些概念和术语也 都引用自图形学的知识,因此,实现过程较3D显示更为复杂 在创建ΣD图豗对象之前,要理解几个重要的慨念:映像器、驱动器、射 工作空间、模型空间。怏像器用来管理创建的图形属性:驱动器是为绘制视图做 准备的,最终日的还是为了视图的需要:创建的过程还需要对标记和图元进行处 理 总之,2D显示与3D显示的过程是截然不同的。所以,对本章内容的学习 我们可以参照图形学的相关知识来理解。 第十二章數据交换模块分析(缺理论) 应用 OpenCASCADE软件诸如CAD系统时,数据交换是个关键因素。在 多层软件环境中,它应用 OpenCASCADE开源的技术,处理外部数据并提供了 一个良好的融合程度。这种情况所涉及的数据交换模块是有组织的模块化方式 opε NCASCADE数据交換是提供工具,诸如数据转换模量,允许软件基于 OpenCASCADE将数据转换成其它的CAD軟件,从而保证了良好的互通性。 标准的数据包有STEP、IGES、STL和VRML等。 用于 Character类型(如:A=B) (6) Standard extcharacter(扩展字符类型)。它是用来表丌 Unica字符 集的·种基本类型。由它表小的字符得用16位二进制薮进行编码。 Extcharacter 类型与C++中 short类型一栉。因此,≤、≤=, =、>=、>六种关系运算 同样适用于 Extcharacter类型(如:A<B)。 (7) Standard cstring(C串类型),它用来表小文字串。个文字串就是由 双引号括起来的一个ASC字符序列。 CString类型与C+中char类型是一样的 〔8) Standard address(地址类型)。它用来表示一个通用指针。 Address类 型与C+屮void类型样。 9) Standard ExtString(扩展串类型》。它用来表示由 Unicode字符序列 构成的文字串。 Existing类型与C+中 short+类型一样 2、值处理类型 值处理类型可分三大类: 1)基本关型 (2)枚举类型 3)由这样一些类(既不是由 Standard persistent类派生,也不是由 Standard transient类派生,无论是直援派生还是间接派生》定义的类型。 值处理类型的表现形式比句柄处理类型的表现形式更直接。因此,对们处理 类型的操作也会更快。但是值处理类型对象不能单独存于文件中。图3.1表示了 对一个值处理类型对象的处理过程 需要注意的是:那些能被数据模式识别(包括基本类型和从 Storable类继承 过来的类型)的值处理粪型可以作为持久对象的部分结构而存储在持久对象内 部。这是值处理类型对象能够存进文件的唯一方式。 通过值处理 个通过值处理的对象可以由基本类型和句组 成。它可以是耐存的,也可以不是 句柄 图3.1值处理类型对象的处理处理过程 3、句柄处理类型 句柄处理类型可以分为两人类: (1)由 Persistent类的派生类定义的类型。这些类型可以被长久地存在文件 (2)由 Transient类的派生类定义的类型。 图3.2表小了对个句柄处理类型对象的处理过程 通过句稍处理 一个通过引用处理的对象可以由基本共型和句柄组 成。它可以是持久的,也可以不是。 句柄 司柄 值 图32句柄处理型对象的处甲过程 4、特征总结 为了方便比较值处理炎型和句柄处理类型的异同。也为了清楚地认识OCC 各种数据型的处理方式和各自的耐存性,下面给出图3.3 通过句柄处理的数据英型 通过恒处理的数据羹型 耐存的基本类型 持久类型基本类型和耐存类型《如果内嵌在一个持久类 中,则为耐存的 非耐存的基本类型 短类型 其它类型 图3.3值处理类型和句柄处理类型的异同 2.22句柄 句柄的定义 OCC的引用管理采用的是一种句柄机制。这种机制的基本元素是句柄。 在OCC中,句柄是通过类实现的。句柄含有多个接口成员,其中一个包含 一个引用。一般情况下,仅需要使用它的引用。正因为这样,习惯将句柄比作 C+-指针。与C++指针一样,儿个句柄可以引用同一个对象;一个句柄也可以引 用多个对象,但是每次只能引用一个;在句柄访问对象前,句柄必须被声明。 2、句柄处理类的組织 一般情况下,真正需要的是句柄引用的对象而非引用本身。在此,有必要介 绍一下句柄处理类的组织。句柄处理类要么是持久的,要么是短暂的。如果由 Standard Transient类派生,则是短暂的:如果由 Standard Persistent类派生,则 是持久的。不论短暂还是持久,它们的组织情况是一样的。故,下面一段文字将 仅介绍暂句柄处理类及其相关句柄的組织情况。 Standard Transient类是OCC中所有句柄处理类的一个根类〔另一个根类是 Standard persistent类)。它提供了一个引用计数器(被其所有后裔类继承)。该 计数器被 Handle(类(也就是所谓的句柄)使用,用于计算指向对象实例的句柄 数。对于每一个继承(直接或间接〕自 Transient类的类,CDL提取器都创建了 相应的 Handle0类(句柄)。该Hand类(句柄)的参数名字和由 Handle"作 前缀修饰的名字一样。OCC专门提供了一个宏预处理函数 Handle(。它能够将 个 Handle(类(句柄)的参数名字提取出来作为指定短暂类的名字。 这里提三个注意事项; (1) Transient类和 Persistent类不完全是通过句柄处理的,它们也可以通 过值处理 (2)持久对象不能含有非耐存句柄(那些引用非持久对象的句柄) (3)使用句柄的目的是共享对象(对于所有局部操作,建议使用值处理类) 3、句柄的使用 句柄通过它引用的对象被特征化。在对一个短暂对象进行任何操作之前,必 须对句柄进行声明。比如, Point和Lne是来自Geom包的两个短暂类,声明 【实例截图】
【核心代码】

标签:

实例下载地址

opencascade中文帮助文档

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警