OpenCascade HLR for Pipe Model
OpenCascade HLR for Pipe Model
摘要Abstract:在工厂辅助设计(Plant Design)或船舶辅助设计(Ship Design)等CAD设计软件中建完模型后都会出安装图或制作图,这也是这类辅助设计软件的最终的一个输出,还有再就是输出材料数据用来对物资进行管理。OpenCascade提供的Hidden Line Removal算法可以对模型进行隐藏线消除,此功能可用来生成制作图和安装图。本文通过实例演示了HLR算法的效果。
关键字Key Words:OpenCascade, HLR, Hidden Line Removal,Pipe Model, Plant Design CAD, Ship Design CAD,
一、引言 Introduction
OpenCascade的造型算法中有HLR(Hidden Line Removal)可用来去除在某个方向上投影生成的隐藏的线。这个功能实现了工业设计CAD中生成安装图或制作图时需要去掉隐藏线的需求。对HLR算法感兴趣的读者可以结合OpenCascade的源程序来对其实现进行研究。
在工厂设计系统(PDMS)或造船生产设计系统(Marine Design)中都要生成安装图或零件制作图,这些图纸都是根据模型自动生成的。生成之后需要消隐和标注,其中标注的内容有管路号、管零件号、尺寸、标高等等。将三维模型沿一个方向投影后去除隐藏线的算法可用来生成二维的安装图或零件制作图纸。
下面通过具体实例来演示OpenCascade中的HLR算法。
二、程序演示 Program Demo
在工厂设计和船舶设计系统中都有对管路的建模和出图,下面将从ModelDataExchange中导出的管路模型在OpenCascade中进行HLR看看从三维投影到二维的效果。
![]()
Figure 2.1 HLR with Hidden Line in Blue
![]()
Figure 2.2 HLR for Valves
图2.2中的蓝色部分的线是被挡住的线,可以去除。
![]()
Figure 2.3 Top Projection HLR
![]()
Figure 2.4 Top Projection without Hidden Line
![]()
Figure 2.5 Top Projection in Single Line
![]()
Figure 2.6 Projection in arbitrary direction
![]()
Figure 2.7 Projection in arbitrary direction
上面的程序演示中左边的3D视口中显示的为管路的三维模型,2D视口以二维数据显示了投影后得到的图形。转换为二维图形后,数据可以转换到常见的二维图纸格式来保存,如保存为DXF、DWG等格式。
三、结论 Conclusion
OpenCascade的HLR算法可将三维模型转换为二维图形,这个功能可用来自动生成CAD软件的零件制作图和安装图。从上图所示的效果来看,消隐效果还不错,速度还比较快。就是单线消隐的不是很满意,如果要对管子对进单线显示,还需要再做处理。
可以看出OpenCascade的功能还是很强大,可以用OpenCascade来造型、建模、出图,基本可以用来开发一个CAD的软件。
PDF Version: HLR for Pipe Model
OpenCascade HLR for Pipe Model的更多相关文章
- OpenCASCADE Hidden Line Removal
OpenCASCADE Hidden Line Removal eryar@163.com Abstract. To provide the precision required in industr ...
- OpenCASCADE AIS Manipulator
OpenCASCADE AIS Manipulator eryar@163.com Abstract. OpenCASCADE7.1.0 introduces new built-in interac ...
- Tcl Tk Introduction
Tcl Tk Introduction eryar@163.com 摘要Abstract:Tcl/Tck脚本可以很容易实现用户自定义的命令,方便的创建图形化的用户界面GUI,所以Tcl和Tk的应用领域 ...
- 使用Angular CLI从蓝本生成代码
第一篇文章是: "使用angular cli生成angular5项目" : http://www.cnblogs.com/cgzl/p/8594571.html 这篇文章主要是讲生 ...
- TCP拥塞控制机制
研究TCP的拥塞机制,不仅仅是想了解TCP如何的精巧,更多的是领悟其设计思想,即在一般情况下,我们该怎样处理问题. 一.拥塞的发生与其不可避免 拥塞发生的主要原因:在于网络能够提供的资源不 ...
- Spring Boot笔记一
Spring Boot 入门 Spring Boot 简介 > 简化Spring应用开发的一个框架:> 整个Spring技术栈的一个大整合:> J2EE开发的一站式解决方案: 微服务 ...
- OpenCascade Ray Tracing Rendering
OpenCascade Ray Tracing Rendering eryar@163.com 摘要Abstract:OpenCascade6.7.0中引入了光线跟踪算法的实现.使用光线跟踪算法可实现 ...
- OpenCASCADE Data Exchange - 3D PDF
OpenCASCADE Data Exchange - 3D PDF eryar@163.com Abstract. Today most 3D engineering model data are ...
- OpenCASCADE Ring Type Spring Modeling
OpenCASCADE Ring Type Spring Modeling eryar@163.com Abstract. The general method to directly create ...
随机推荐
- response.sendRedirect的细节
今天敲书上的例子的时候无意间发现,response中的sendRedirect()重定向到另一个servlet时,调用的是doget方法,不明所以,百度得知,原来还牵扯到http协议的细节问题,原文如 ...
- hibernate的缓存机制
hibernate提供两种缓存:一级缓存和二级缓存 一.一级缓存:也就是Session缓存(又称作事务缓存):Hibernate内置的,不能卸除. 在同一个Session里面,第一次调用get()方法 ...
- java代码中获取classpath路径
Javaweb工程中,有时候需要自己手动的去读取classpath下面的配置文件,这里总结一点读取classpath路径的方法,分享一下. 方法一: String path = Test.class. ...
- 使用Excel对象模型在Excel单元格中设置不同的字体
效果是这样的: 首先找到这个单元格或区域Range cell,然后代码: ((Range)cell). Characters[, ].Font.Color = Color.Blue; ((Range) ...
- TestNG参数化测试【转】
原文:http://www.yiibai.com/testng/20130916303.html 在TestNG的另一个有趣的功能是参数测试.在大多数情况下,你会遇到这样一个场景,业务逻辑需要一个巨大 ...
- java基础5_数组
一 数组是一个多个相同数据的集合.数组的长度一旦定义,将不能改变.数组的下标是从0开始的,到数组的长度-1结束. 1.数组的声明,初始化 int[] a = new int[3]{1,2,3}; in ...
- Bookstore project using XAMPP 详细配置 Part 1
这是学校的一个project,记录在这里,以备复习.主要是用XAMPP通过phpMyAdmin连接MySQL数据库,实现一个简单的查询功能. Outline Setup of XAMPP Implem ...
- js禁止重复提交方法
beforeSend: function () { // 禁用按钮防止重复提交 $("#fileForm a[class='btn blue_btn']").removeAttr( ...
- JavaScript知识总结<一>
JavaScript核心基础语法: 1.什么是JavaScript? 我们知道在Web标准中网页由:结构.形式.行为三部分组成:结构由标准形式XHTML.形式又标准形式CSS,那么行为的表现就由Jav ...
- XHEditor(MVC4+DWZ) 部分问题的解决
百度上下载了xheditor1.2.1 一.使用方法: 1.把解压的目录copy到VS中; 2.在需要用的View页面中引用js <script src="~/xheditor/xhe ...