第一卷  概述和安装

作者:Lee A. Butler and Eric W. Edwards

翻译:BrunoWang         Email:ji04xiaogang@163.com

 

获准公开发行,不限流通

注: 本书没有取得作者授权,此翻译版本纯属个人爱好,不得用于传播以及其他商业目的,翻译BRL_CAD仅仅为了锻炼自己的英语,同时我在搜集资料的时候,没有看到中文的资料,感到有点遗憾,希望能做一点小事,据说:美国陆军曾经的主战坦克正是用BRL_CAD开发和设计的,而据说Bit“制造了共和国第一辆坦克”,想想Bit的学生翻译这篇文章也是一种缘分吧,本文仅仅是抛砖引玉,因为我不懂CAD造型,并且英文也比较差,翻译很多词语都感觉力不从心,如果发现翻译有误,请其他爱好者发邮件联系,我会努力忠于原著,谢谢!

很喜欢下面坦克的造型!谨以此文献给那些曾经制造了“共和国第一辆坦克的可爱的人们”

本卷英文名:BRL-CAD Tutorial Series: Volume 1 - Overview and Installation

除非得到其他授权文件,本教程的研究发现不作为美国陆军研究院的正式解释。任何制造商的商标名称或者使用,不构成官方认可和批准。当您不需要这份教程时,请销毁这份教程,不需要返还回来。(注:Army Research Laboratory 美国陆军研究院)

RL_CAD教程:

第一卷---BRL_CAD概述和安装

Lee A. Butler

Survivability/Lethality Analysis Directorate, ARL(美国陆军研究实验室)

Eric W. Edwards

SURVICE Engineering Company

摘要

自1979年以来,美国陆军研究实验室一直致力于开发和发布BRL – CAD实体造型(CSG)的建模套件,广泛用于军事和工业应用。软件开发套件包括了一系列工具,主要有交互式几何模型编辑工具、光线跟踪渲染器、通用帧缓冲库、分布式网络图像处理和信号处理包,以及一个嵌入式脚本语言。(注:在BRL_CAD的开源包里没有找到分布式网络处理和信号处理包,可能因为机密原因,这一部分并没有开源吧!仅仅是猜测)

作为这些努力的一部分,一个关于BRL_CAD的系列教程正在开发,以帮助用户使用BRL - CAD软件包的许多功能。<<概述及安装指南>>,正是系列教程中的第一卷,描述BRL_CAD软件包的背景、目的、软件包的优势、库函数和工具,包括在特定平台的安装说明,以及BUG的发现、修正、更新。其他各卷教程侧重BRL_CAD软件的其他功能,各个实用工具、编程接口等。

(注:截止到翻译的时候:BRL_CAD系列教程主要有8卷分别是:

第一卷:Installation Instructions

第二卷:Introduction to MGED

第三卷:Principles of Effective Modeling

第四卷:Converting Geometry Between BRL-CAD and other Formats

第五卷:Object Editing - the oed Command

第六卷:Interactive Raytracing - The nirt Command

第七卷:Vehicle Tire and Wheel Creation in BRL-CAD

第八卷:Developing applications

)

感谢

原文作者在此感谢参加了审稿的“先进计算机系统团队”,他们审阅了原稿,提供了很多的建议,改善了教程的准确性。团队成员包括John Anderson, TraNese Christy, Bob Parker, Ron Bowers, and Sean Morrison.

此外,作者还要特别感谢Mike Muuss,BRL – CAD软件最初的设计者和开发成员,他于2000年秋天去世。没有他的远见卓识,这项工作将是不可能的完成的。因此,BRL - CAD软件系列教程是对他专门的纪念。

目录

1 介绍

1.1 BRL_CAD的用途?
1.2 为什么采用实体造型(CSG)建模技术

2.软件包的结构

2.1库函数
2.2 工具和实用包

3.安装程序

3.1 如何获得安装包
3.2.系统的最小要求
3.3 Irix 6.x系统
3.4 FreeBSD系统
3.5 Linux
3.6 Solaris
3.7源程序

4.基准测试

5. 维护和更新

5.1 疑难解答和Bug跟踪
5.2 新的发布版本

6. 参考

附录:BRL - CAD软件许可协议

发布列表

报告文档的格式

第一节介绍

1.1 BRL_CAD的用途

20世纪50年代后期以来,计算机被用于辅助设计和研究军用车辆系统,减少了手工绘制图纸的数量和时间,扩大了生产,同时提高了测试和评估的效率。

1979年,美国陆军弹道研究实验室(BRL)(现为美国陆军研究实验室ARL),需要一个可以提供辅助计算机仿真和工程分析的作战车辆的软件。因为当时没有合适的计算机辅助设计(CAD)软件包满足这个需求,于是BRL的软件工程师就开始和集成了一系列软件,包括交互式显示工具,编辑模型工具,和几何模型干涉检查工具(interrogating geometric models 对于这个词,我不知道如何翻译,这里参照<<基于ACIS的几何造型技术与系统开发>>一书,翻译为干涉检查工具,请专业人士指正)。这就成了后来著名的BRL_CAD造型工具。

现在,BRL_CAD有超过150万行的C代码组成,已经成为一个强大的实体建模(CSG)套件,有超过2000多了全球网站授权。它包含了一系列工具,实用程序,主要有:交互式建模与编辑库、光线跟踪器、通用帧缓冲库、网络的分布式图像处理和信号处理库,以及可定制的嵌入式脚本语言。此外,BRL – CAD软件同时支持两种人机交互建模方式,一种是用命令行方式,一种是使用图形用户界面(GUI)。

BRL_CAD的独特优势在于它使用一个相对较小的一套“基本几何体”来构建和分析现实世界的复杂模型。为了做到这一点,BRL_CAD使用了基础的布尔操作(交,并,差)。这套工具另一个强大之处是光线跟踪渲染算法,这是目前速度最快的渲染算法之一。最后BRL - CAD用户可以准确地建立各种规模的模型,从亚原子到行星系(有点夸张,BRL_CAD的最小建模精度可能是毫米),得到您需要模型的“所有的细节,所有的时间。”

1.2 为什么选择实体造型技术

虽然BRL - CAD软件已被广泛用于工程和各种图形开发程序,单软件包的主要目的仍是支持弹道导弹分析和电磁分析。因此,开发人员发现基于实体建模的方法,在模型表示上最准确的,存储效率更高,更适合精度,速度和计算分析。与更侧重于物体表面的特性的多边形模型表示法和边界表示法不同,实体造型技术更关注于整体形状和物体的内部。这使得BRL – CAD拥有深层次的建模能力,可以构建与现实世界的材料,密度对象和厚度等紧密联系的模型,使分析师可以研究诸如弹道导弹渗透和物理现象运输热、辐射、中子、和其他类型的传导。

第二节 软件包的结构

与UNIX操作系统中,为了开发单一、具体的功能,把软件包进行独立的设计,然后在把这些包组织在一起的设计哲学一致,BRL – CAD软件收集了一系列的函数库,工具包和实用程序,并组织起来,进行实体造型建模、光线追踪、几何体内省检查和操作文件数据等功能。其基本的软件体系结构如图一:

图 1 BRL_CAD 开发包的体系结构

2.1 库函数介绍

BRL_CAD函数库(其前缀指定为“libXX”),这样设计的主要目的是为那些希望修改软件,设计自定义的建模工具的开发人员。函数库可以被划分为三类功能:(1 )创建和编辑几何体对象 (2) 光线跟踪渲染器 (3)图像处理工具。下面是主要的BRL – CAD函数库和他们的功能描述。

Libbu

一个基本的实用库(缩写为bu),包含基本的计算机数据处理函数,包括:数据处理(例如转换从主机格式的数据到网络格式的数据),并行处理,参数解析,处理可变长度的字符串,执行错误检查,从一种数据类型转换到另一种格式,位操作,运行时安全的并行输入与输出程序,处理符号表操作。

Libbn

一个例程库,以支持基本数值(缩写为bn),包括2-D/3-D向量,矩阵和四元数的操纵;3D策划支持;图像尺寸的自动计算以及和小波分解和重建等。

Libdm

BRL – CAD软件包的主要的图形显示管理工具(缩写为dm)。它主要负责创建窗口,显示,在窗口中显示几何模型信息,等等。

Libfb

帧缓存管理库,支持使用光线跟踪算法渲染窗口像素数据。

libmultispectral 和 liboptical

用于光线跟踪算法的着色器和纹理函数库

Libpkg

这个库主要实现了远程调用(RPC)机制,这个库是现代RPC系统的雏形。不像传统的Unix RPC服务,应用程序不需要通过系统管理员配置,可以自己设置服务和处理。

Librt

这个函数库包含了对几何体操作的支持,主要有基本图元的数据类型,对光线跟踪(RT)的支持,及二进制几何造型文件的I/O输入输出支持。

Libz

一个公共领域的压缩函数库

Libtcl,libtk和libtcl

提供 TCL/TK语言支持的函数库

Libpng

对网络图像格式png进行操作的函数库

 

2.2 工具与实用程序

在应用程序方面,BRL – CAD软件也提供了一些工具和实用程序。他们主要包括(1)几何转换(2)几何检查内省功能(3)图像格式转换(4)命令行方式的图像处理。以下是主要BRL – CAD软件工具和实用程序的列表:

MGED(多设备几何编辑器)

BRL_CAD的图形编辑器。有关MGED的具体使用以及MGED目前可用的命令,可以参考巴特勒等人2010(注:在BRL_CAD的第二卷有MGED的详细使用)。

光线跟踪和光线追踪渲染几何体工具

<!--[if !supportLists]-->—     rt  BRL_CAD 的主要光线渲染工具

<!--[if !supportLists]-->—     nirt   一个交互式的光线发射工具,并可以获得光线在哪里相交的信息

remrt  —个分布式网络光线渲染器

多种格式的模型转换,可以导入和导出多种模型格式(注:原文是convert to 和convert from ,即从*.g格式转换到dxf, 即为convert ,从dxf转换到 *.g即为 convert from,这里的翻译有些不妥)。

 

 

注:先写到这里了,第一卷的13页,第一次翻译,想不到这么累!不知不觉都三个小时过去了!

BRL_CAD 教程相关推荐

  1. 使用Docker搭建svn服务器教程

    使用Docker搭建svn服务器教程 svn简介 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很 ...

  2. mysql修改校对集_MySQL 教程之校对集问题

    本篇文章主要给大家介绍mysql中的校对集问题,希望对需要的朋友有所帮助! 推荐参考教程:<mysql教程> 校对集问题 校对集,其实就是数据的比较方式. 校对集,共有三种,分别为:_bi ...

  3. mysql备份psb文件怎么打开_Navicat for MySQL 数据备份教程

    原标题:Navicat for MySQL 数据备份教程 一个安全和可靠的服务器与定期运行备份有密切的关系,因为错误有可能随时发生,由攻击.硬件故障.人为错误.电力中断等都会照成数据丢失.备份功能为防 ...

  4. php rabbmq教程_RabbitMQ+PHP 教程一(Hello World)

    介绍 RabbitMQ是一个消息代理器:它接受和转发消息.你可以把它当作一个邮局:当你把邮件放在信箱里时,你可以肯定邮差先生最终会把邮件送到你的收件人那里.在这个比喻中,RabbitMQ就是这里的邮箱 ...

  5. 【置顶】利用 NLP 技术做简单数据可视化分析教程(实战)

    置顶 本人决定将过去一段时间在公司以及日常生活中关于自然语言处理的相关技术积累,将在gitbook做一个简单分享,内容应该会很丰富,希望对你有所帮助,欢迎大家支持. 内容介绍如下 你是否曾经在租房时因 ...

  6. Google Colab 免费GPU服务器使用教程 挂载云端硬盘

    一.前言 二.Google Colab特征 三.开始使用 3.1在谷歌云盘上创建文件夹 3.2创建Colaboratory 3.3创建完成 四.设置GPU运行 五.运行.py文件 5.1安装必要库 5 ...

  7. 理解和实现分布式TensorFlow集群完整教程

    手把手教你搭建分布式集群,进入生产环境的TensorFlow 分布式TensorFlow简介 前一篇<分布式TensorFlow集群local server使用详解>我们介绍了分布式Ten ...

  8. 高级教程: 作出动态决策和 Bi-LSTM CRF 重点

    https://www.zhihu.com/question/35866596 条件随机场 CRF(条件随机场)与Viterbi(维特比)算法原理详解 https://blog.csdn.net/qq ...

  9. PyTorch 高级实战教程:基于 BI-LSTM CRF 实现命名实体识别和中文分词

    20210607 https://blog.csdn.net/u011828281/article/details/81171066 前言:译者实测 PyTorch 代码非常简洁易懂,只需要将中文分词 ...

最新文章

  1. 自定义窗体设计器-控件测试
  2. (转)Inno Setup入门(二十一)——Inno Setup类参考(7)
  3. note-删除Visual Studio recent Projects list
  4. Linux 分析工具--性能
  5. 产品打包工具的制作,ant,编译源码,打jar包,打tag,打war包,备份release版本等
  6. MFC主线程使用WaitForSingleObject阻塞的问题
  7. Zookeeper 3.5启动时 8080端口被占用
  8. react 线程_React式服务中的线程本地状态可用性
  9. java二叉树合并_Java(树的前中后序遍历构造二叉树题型整合)前序和中序、中序和后序、前序和后序遍历序列构造二叉树算法整合归纳...
  10. 思科路由器 DHCP配置
  11. python ssh模块_python ssh之paramiko模块使用
  12. 自定义配置节 Section
  13. python中的或运算_python入门:if语句中的逻辑运算符
  14. html5 json.stringify,JSON.stringify()妙用
  15. 3dmax中如何设置环境灯光
  16. 什么是DHCP(中继模式)
  17. service服务程序
  18. 家谱系统php,家谱信息管理系统
  19. Java容器(List、Set、Map)知识点快速复习手册
  20. 一台电脑如何同时登录两个skype帐号

热门文章

  1. 电脑必备软件合集,实用工具推荐
  2. iphone 传android,安卓和苹果手机怎么互传文件_安卓与苹果手机之间互传文件的方法教程_3DM手游...
  3. 千川数据返回值解析(AES)解密
  4. 云南将建5G基站20万个,总投资达500亿实现5G网络全覆盖
  5. (一)掰开了,揉碎了,说经典halcon中的那些算子
  6. SpringBoot程序排除@Configuration配置类
  7. 福利来了,python 淘宝旗舰店、天猫、抢茅台,干死黄牛党《本人亲测有效》
  8. Semantic SLAM with Autonomous Object-Level Data Association 论文笔记
  9. 中国广电剑未出鞘,但中国联通和中国电信已吓得瑟瑟发抖
  10. Excel VBA ListBox列表框学习