Compile FreeCAD on Windows

eryar@163.com

1.Introduction

FreeCAD是一个参数化的三维造型软件,主要用于任意大小的实际模型的设计。参数化的建模方式可以通过修改相关参数从而方便地修改你的设计。FreeCAD是开源软件,并提供了便利地自定义方式,也提供了脚本,从而根据自己的需要去扩展功能。FreeCAD是跨平台(Windows, Mac和Linux),可以读写许多开放的模型文件,如STEP,IGES,STL,SVG,DXF,OBJ,IFC,DAE等。

如果说学习OpenCASCADE可以了解一些几何内核底层的算法,那么学习FreeCAD则可以用来实现一些具体的功能,从而将三维的技术应用到实际的生活中去,创造出有意义的功能。

本文详细说明如何在Windows平台上编译FreeCAD源码。如果你已经可以正常编译OpenCASCADE这种开源库的源码,那么编译FreeCAD还是很简单的。

2.Preparation

编译FreeCAD源码之前,需要做些准备工作:下载源码及所需的第三方库。其中源码可以从github上下载,地址为:https://github.com/FreeCAD

为了方便其源码的编译,FreeCAD将所需要的第三方库打包在一起取名LibPack,方便开发者自己编译。LibPack可以从sourceforge上下载:

https://sourceforge.net/projects/free-cad/files/FreeCAD%20LibPack/

Figure 2.1 Download LibPack of FreeCAD

找到与自己编译器版本一致的LibPack下载。如果想在Visual Studio2008中编译,则下载FreeCADLibs_11.1_x86_VC9.7z。下载好源码和LibPack就万事具备了,我们先来粗略地看下LibPack中都有哪些库:

Figure 2.2 3rd party libraries used in FreeCAD

从include可以看出,几何内核主要使用了oce(OpenCASCADE社区版),脚本使用了Python,显示使用了Inventor,网格库还使用了SMESH,逆向工程的功能使用了pcl,还用到了boost及eigen矩阵计算库,程序界面使用了Qt等。由此可见,FreeCAD中的第三方库的数量比OpenCASCADE中的要多,所以编译成功的关键就是要将这些第三方库配置正确。

还好FreeCAD的开发团队提供了这些第三方库,如果自己去准备这些库也要花不少时间和精力。

3.Compiling

FreeCAD在Windows中编译主要使用CMake,通过CMake生成Visual Studio工程文件。如果直接Configure源码文件夹中的CMakeLists.txt会有如下图所示的错误:

Figure 3.1 Could not find libpack error

根据错误信息,说是没有在指定目录找到libpack,所以自己将FREECAD_LIBPACK_DIR设置到下载的libpack中去之后,就可以Configure成功了,如下图所示:

Figure 3.2 CMake success

Configure成功后,即可使用Generate来生成FreeCAD_trunk.sln工程文件,从而用Visual Studio来打开和编译了。

Figure 3.3 FreeCAD projects in Visual Studio

看着自己编译一个模块,在FreeCAD的功能选择中就多出一个模块,还是很有感觉的。自己动手编译下,经过漫长的等待后得到可以运行的程序也是有些收获。

4.Play

编译成功后,就迫不及待地想测试下很有亮点的功能,如网格设计、逆向工程、机器人等模块。

Figure 4.1 Shape in Wireframe mode

Figure 4.2 Shape Mesh

Figure 4.3 Assembly in FreeCAD

看到Assembly中只有那一个按钮,装配功能基本上不能用。如果有了装配功能,那么FreeCAD的功能就和常见的那些三维软件功能类似了。装配功能中需要用到了三维的约束,像什么面对齐,同轴等,商用软件会用到西门子的约束求解库DCM,DCM相关信息可参考simens官方网站:

https://www.plm.automation.siemens.com/en_us/products/open/d-cubed/

有需要DCM的可直接与他们联系,不过价格也是不便宜的。

Figure 4.4 DCM of SIEMENS

没有了google找点东西还是很费劲,用baidu和bing中文版的都没找到什么有用的东西。用了Bing英语版的,才找到,如下图同样输入关键字dcm3d,百度中出来的东西完全无用:

Figure 4.5 Search result of DCM3d

FreeCAD中机器人功能的视频:http://www.tudou.com/listplay/5zDaAoucSXQ/

Figure 4.6 Robot in FreeCAD

最新文章

  1. 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(七)地图打印模块
  2. 【转】nginx中的ngx_cdecl
  3. IOS Socket 02-Socket基础知识
  4. ASCII码对照表
  5. HDU 5670 Machine
  6. hihoCoder-1000-A+B
  7. html 文件上传框 input标签
  8. CLR via C# 计算限制的异步操作读书笔记
  9. APMServ5.2.6升级PHP
  10. Net常用命名空间和类介绍
  11. Educational Codeforces Round 37
  12. 关于ES6的module的循环加载
  13. centos 7 默认图形界面(或者字符界面)启动
  14. 2012-2014 三年浙江 acm 省赛 题目 分类
  15. 真正“搞”懂http协议01—背景故事
  16. [C#]中获取当前程序运行路径的方法
  17. [Nginx] – 性能优化 – 配置文件优化
  18. 在ASP.NET MVC中以post方式传递数组参数的示例【转】
  19. plot sin 动态配置rc settings
  20. 51nod 1080 两个数的平方和

热门文章

  1. Storm如何保证可靠的消息处理
  2. 如何在高并发环境下设计出无锁的数据库操作(Java版本)
  3. 【解决方案】Myeclipse 10 安装 GIT 插件 集成 步骤 图解
  4. C#为IE编写BHO插件心得
  5. Python碎碎念
  6. 【NLP】蓦然回首:谈谈学习模型的评估系列文章(一)
  7. 深入理解CSS六种颜色模式
  8. spring applicationContext.xml和hibernate.cfg.xml设置
  9. 关于SMARTFORMS文本编辑器出错
  10. [原创]ubuntu16.04LTS使用细节