由于公司项目需求,要求软件可以读取其它软件生成的STEP文件(这种文件保存着某种物体的3D模型,STEP指Standard for the Exchange of Product model data)并显示在UI上。目前公司选择了开源的Open CASCADE库来实现需求。现将编译过程记录下来,以备参考。(根据Open CASCADE官方文档, 只要不是用MSVC 2010编译器完成的项目,均需要自行编译Open CASCADE库)。

以下把Open CASCADE简称为OCC。

首先需要前往链接所示站点确认当前开发环境是否满足OCC的系统要求(https://www.opencascade.com/content/system-requirements)。这里需要注意的是OCC依赖很多第三方库,但是有的第三方库仅仅被OCC某一种功能模块所依赖。因此需要仔细斟酌是否有必要编译完整的OCC库。

在查看OCC相关事项时,可以先进入https://www.opencascade.com/content/latest-release下载源代码压缩包(约192MB,需要注册一个账号)。

由于OCC文档已经以网页形式放在OCC官网,因此编译全程均参考OCCweb文档。官方文档中不明确的地方本文以粗体+斜体文字说明。

i) 查看OCC文档首页,这里的Installation指使用预编译包完成OCC的配置,因此需要点击下图红圈处链接查看从源码编译OCC库的文档。

ii) 根据项目实际需要,我选择编译OCC的最少功能版,同时参考文档中"使用MSVS环境编译"部分。如下图红线所示。(注意一定要根据官网提示安装OCC依赖的第三方库)

iii) 根据文档中的提示,我选择文档推荐的较为方便的GUI工具: genconf来配置OCC编译环境。此工具必须利用到Tcltk这个第三方库, 需要注意的是: Tcltk配合genconf工具配置编译环境,需要保证引用的文件/目录路径不能有空格, 中文字符等,否则此工具无法识别第三方库路径。

这里,我把OCC源代码解压至F盘根目录下。然后,为便于OCC引用第三方库,在F盘根目录下建立ThirdPartyLib目录,存放解压后的FreeType和Tclck目录。

iv) 进入F:\ThirdPartyLib\tcltk-86-64\bin,双击wish.exe以打开64位GUI界面,这时弹出两个窗口: Console和wish。在Console窗口中点击菜单栏"File"->“Source...”,然后载入解压后的OCC下adm目录中的genconf.tcl文件,这样开启了genconf工具。

在genconf工具中指定编译器路径和第三方库的存放目录路径后点击Save按钮,关闭此工具。如下图所示。

v) 之后genconf工具会生成custom.bat文件,注意这个文件在F:\ThirdPartyLib\tcltk-86-64\bin下, 通过文件修改日期可以判断文件是否是最新生成的。然后用这个生成的custom.bat替换原OCC目录下重名的custom.bat文件。(注: 新生成的custom.bat文件存储着当前OCC编译环境下第三方库目录,编译器等信息。之后的编译过程会用到该文件)

vi) 根据OCC文档提示,打开Windows命令提示符运行OCC目录下的genproj.bat以生成编译OCC的MSVS解决方案文件,生成的解决方案文件在genproj.bat运行完毕后会提示具体存储位置,如下图所示。(注: 如果步骤v未执行, 则genproj.bat提示没有找到tcltk!同时终止生成MSVS解决方案)

vii) 根据OCC文档,直接在Windows下双击OCC目录下的msvc.bat,之后显示Visual Studio并自动加载genproj.bat生成的解决方案,使用MSVS编译即可,编译生成的库位于OCC目录下的win32或win64目录下。

总结: Open CASCADE的官方文档写的比较详细,编译过程中的绝大部分要点文档都会注明。而官方文档中不明确的地方本文也通过加粗文本等形式加以说明,如有错误,欢迎指正。

转载于:https://www.cnblogs.com/r0xFED/p/9107608.html

CAD软件下的3D建模库------Open CASCADE 的编译相关推荐

  1. 【流媒體】jrtplib—VS2010 下RTP开源协议库JRTPLIB3.9.1编译

    [流媒體]jrtplib-VS2010下RTP开源协议库JRTPLIB3.9.1编译 SkySeraph Apr 7th 2012 Email:skyseraph00@163.com 一.JRTPLI ...

  2. python三维建模和cad比较_【3D建模】CAD与3D建模软件:有什么区别?

    当有人问以上问题时,每个论坛上都有数百个答案:我应该选择哪种3D软件?人们总是列出他们使用的3D软件,但要为你所zuo做的项目选择最佳软件其实并不容易. 首先,你需要知道3D软件分为两类:CAD和3D ...

  3. linux系统设计软件,FreeCAD:Linux 下的 3D 建模和设计软件

    FreeCAD 是一个基于 OpenCasCade 的跨平台机械工程和产品设计工具.作为参数化 3D 建模工具,它可以与 PLM.CAx.CAE.MCAD 和 CAD 协同工作,并且可以使用大量高级扩 ...

  4. 10个常用的3D建模软件,作为3D建模的软件东西很杂很碎,还需多练习才最重要

    很多人都会好奇,电脑是怎么将 手绘的2D图形变成3D的实际物品 的?究竟是什么神奇魔法能够瞬间将我们的想法变成现实的呢? 今天来和大家介绍下工业设计师经常会用到的10个3D建模软件. Solidwor ...

  5. CAD软件中如何设置符号库?

    在使用国产CAD软件绘制电气CAD图纸的过程中,经常会用到电气符号库.那么如何设置浩辰CAD电气软件中的符号库呢?下面就和小编一起来看看国产CAD软件--浩辰CAD电气软件中电气符号大全之设置符号库的 ...

  6. 【流媒體】jrtplib—VS2010下RTP开源协议库JRTPLIB3.9.1编译

    一.JRTPLIB简介 老外用C++编写的开源RTP协议库,用来进行实时数据传输,可以运行在 Windows.Linux. FreeBSD.Solaris.Unix和VxWorks 等多种操作系统上, ...

  7. CAD软件中如何管理符号库?CAD符号库管理教程

    在进行电气图纸弱电平面设计的过程中,经常会需要用到各种符号,那么浩辰CAD电气软件的弱电平面设计中如何管理符号库呢?接下来CAD入门学习教程中就让小编来给大家介绍一下浩辰CAD电气软件的弱电平面设计中 ...

  8. 龙芯处理器下面的golang第三方库或框架实地编译与运行测试

    编译运行机器环境: CPU 龙芯3A3000 操作系统 中标麒麟v7.0 gcc版本 4.9 先说不能用的吧: godror:用于访问oracle的,编译项目没有问题,但是运行时依赖的oracle I ...

  9. 试用一款开源的轻量级3D建模软件《Dust3D》

    关于<Dust3D> Dust3D is brand new 3D modeling software. It lets you create watertight 3D models i ...

  10. 3D建模线上教学和线下教学的差异

    很多同学都有一个很大的疑问,线上教学和线下教学有什么区别呢,分别有什么好处呢,今天我们就来分析一下其中的利弊. 首先是我们可以随时随地的学习课程,对于上班族或学生族都是比较方便的,大多数课程都是有录播 ...

最新文章

  1. CT片居然可以这么玩:用头部CT断层扫描片复原三维头像
  2. 人工智能的社会、伦理与未来
  3. 几种搜索引擎算法的研究
  4. Spring 中JCA CCI分析--转载
  5. TensorFlow 使用例子-LSTM实现序列标注
  6. 【SSL】使用Keytool工具生成证书及签名完整步骤
  7. RDLC 示例 文章 1
  8. (转)When Milliseconds Make Millions
  9. HTML+CSS(PC端+移动端)
  10. WPS上配置使用Endnote软件
  11. web手机服务器系统,web手机服务器系统
  12. ubuntu 20.04 修改文件夹默认图标
  13. 内部系统界面设计【下】 | 设计技巧
  14. Html 实现amr文件播放
  15. 结合分析和数值技术 Python 在基本力学应用
  16. 在纪中的第二天,2017-7-8 总结:
  17. Deepin搭建Qt5开发环境
  18. 【iOS】仿写iOS计算器总结
  19. 中国首富许家印入局FF 贾跃亭造车这事儿要成?
  20. 玉龙雪山景区完善视频监控设施打造智慧景区

热门文章

  1. 读书笔记之LoadRunner性能测试巧匠训练营(九)
  2. 计算机课word反思,反思Word文档
  3. 数学竞赛倒计时26天_变量-> +infinite 和一道瑕点+infinite积分
  4. 为什么老是吹python_那么多人吹Python,但我真怕你不知道是为什么!
  5. vue实现显示实时时间
  6. 数据结构与算法 :单链表
  7. 验证码的创建(个人见解)
  8. 实例3:树莓派呼吸灯
  9. java-The output path is not specified for module idea_test
  10. C#算法—分治算法求解股票问题