Feature list/zh-cn

这是一个庞大的，未完成的 FreeCAD 特性列表. 如果你想知道未来规划，可以通过 开发路线图 大概知道接下来有什么新特性. 同样，截图 也是一个好地方值得浏览.

版本说明

 * 版本 0.11 - 2011 三月
 * 版本 0.12 - 2011 十二月
 * 版本 0.13 - 2013 一月
 * 版本 0.14 - 2014 三月
 * 版本 0.15 - 2015 三月
 * 版本 0.16 - 2016 四月

关键特性

 * [[Image:Feature1.jpg|left]] 一个完全基于 Open CASCADE Technology 的 几何内核 (geometry kernel) 允许在复杂的形状类型上执行复杂的 3D 操作，原生支持这些概念：多重曲面 (brep)、非均匀有理B样条 (nurbs curves) 和 曲面 (surfaces)，大量几何实体 (geometric entities)，布尔操作 (boolean operations) 和约束 (fillets) 和内建支持 STEP 和 IGES 格式


 * [[Image:Feature3.jpg|left]] 一个全 参数化模型 (parametric model). 所有 FreeCAD 对象是本地原生参数化，意味着他们的形状能基于 属性 变化 或者 甚至依赖于其它的对象，所有改变在需要时会被自动重新计算，而且由 撤消/重做 栈记录其操作. 很容易增加新对象类型，甚至 全部用 Python 进行编程


 * [[Image:Feature4.jpg|left]] 模块化设计 允许插件 (模块) 添加功能到核心应用程序中. 那些扩展能跟用 C++ 编写整个新应用程度一样复杂或者跟 Python 脚本 一样简单 或者 自己录制 macros. 你能从内建的 Python 解释器中完全访问从宏或者外部脚本到 FreeCAD 几乎任何部分，进行 几何对象创建或变换, 展示几何对象 (scenegraph) 的 2D 或者 3D 图形甚至控制 FreeCAD 界面


 * [[Image:Feature5.jpg|left]] 导入/导出到 标准格式，例如：STEP, IGES, OBJ, STL, DXF, SVG, STL, DAE, IFC or OFF, NASTRAN, VRML，另外还有 FreeCAD 的原生 Fcstd 文件格式. FreeCAD 对每种文件格式的兼容性支持级别有所不同，因为它依赖于实现读写的模块.


 * [[Image:Feature7.jpg|left]] 一个 素描器 和 约束求解程序，允许勾画几何约束的 2D 图形. 目前素描器允许你构建几种几何约束对象，并且利用它们在整个 FreeCAD 中作为构建其它对象的基础.


 * [[Image:Feature9.jpg|left]] 一个 机器人模拟 模块用于学习机器人移动行为. 这个机器人模块已经有一个扩展的图像界面允许仅限界面的工作流程.


 * [[Image:Feature8.jpg|left]] 一个 绘制工作表 模块允许放置 3D 模型的 2D 视图到一张工作表上. 此模块会产生可导出的 SVG 或 PDF 工作表. 此模块虽然功能稀少，但此特性已经能增加一个强大的功能到 Python.
 * [[Image:Feature-raytracing.jpg|left]] 一个 渲染 模块能导出 3D 对象用于外部渲染. 当前仅支持 povray 和 LuxRender, 但期待未来支持其它的渲染器.


 * [[Image:Feature-arch.jpg|left]] 一个 建筑学 模块支持类似BIM 工作流, 与 IFC 兼容.


 * [[Image:Feature-CAM.jpg|left]] 路径模块 专注于机械机器类似 研磨机 (milling, CAM), 并能输出、显示和修改 G code.

一般特性:

 * FreeCAD 是跨平台的. 它在 Windows、Linux 和 macOS 平台上运行和表现完全一致.


 * FreeCAD 是一个全界面应用程序. FreeCAD 有一个基于著名的 Qt 框架的完整用户界面，和一个基于Open Inventor 的 3D 查看器，允许快速渲染 3D 场景和一个非常容易理解的场景图形显示.


 * FreeCAD 也能作为命令行程序运行，使用更低的内存占用. 在命令行模式运行时，FreeCAD 没有界面，但拥有所有的几何工具. 它能做的事，例如：作为一个服务器为其它应用程序生产内容.


 * FreeCAD can be imported as a Python module, inside other applications that can run Python scripts, or in a Python console. Like in console mode, the interface part of FreeCAD is unavailable, but all geometry tools are accessible.


 * Workbench concept: In the FreeCAD interface, tools are grouped by workbenches. This allows to display only the tools used to accomplish a certain task, keeping the workspace uncluttered and responsive, and the application fast to load.


 * Plugin/Module framework for late loading of features/data-types. FreeCAD is divided into a core application and modules, that are loaded only when needed. Almost all the tools and geometry types are stored in modules. Modules behave like plugins, and can be added or removed to an existing installation of FreeCAD.


 * Parametric associative document objects: All objects in a FreeCAD document can be defined by parameters. Those parameters can be modified on the fly, and recomputed anytime. The relationship between objects is also stored, so modifying one object also modifies its dependent objects.


 * Parametric primitive creation (box, sphere, cylinder, etc)


 * Graphical modification operations like translation, rotation, scaling, mirroring, offset (trivial or after Jung/Shin/Choi) or shape conversion, in any plane of the 3D space


 * Boolean operations (union, difference, intersect)


 * Graphical creation of simple planar geometry like lines, wires, rectangles, arcs or circles in any plane of the 3D space


 * Modeling with straight or revolution extrusions, sections and fillets.


 * Topological components like vertices, edges, wires and planes (via Python scripting).


 * Testing and repairing tools for meshes: solid test, non-two-manifolds test, self-intersection test, hole filling and uniform orientation.


 * Annotations like texts or dimensions


 * Undo/Redo framework: Everything is undo/redoable, with access to the undo stack, so multiple steps can be undone at a time.


 * Transaction management: The undo/redo stack stores document transactions and not single actions, allowing each tool to define exactly what must be undone or redone.


 * Built-in scripting framework: FreeCAD features a built-in Python interpreter, and an API that covers almost any part of the application, the interface, the geometry and the representation of this geometry in the 3D viewer. The interpreter can run single commands up to complex scripts, in fact entire modules can even be programmed completely in Python.


 * Built-in Python console with syntax highlighting, autocomplete and class browser: Python commands can be issued directly in FreeCAD and immediately return results, permitting scriptwriters to test functionality on the fly, explore the contents of the modules and easily learn about FreeCAD internals.


 * User interaction mirroring on the console: Everything the user does in the FreeCAD interface executes Python code, which can be printed on the console and recorded in macros.


 * Full macro recording & editing: The Python commands issued when the user manipulates the interface can then be recorded, edited if needed, and saved to be reproduced later.


 * Compound (ZIP based) document save format: FreeCAD documents saved with .fcstd extension can contain many different types of information, such as geometry, scripts or thumbnail icons. The .fcstd file is itself a zip container, so a saved FreeCAD file has already been compressed.


 * Fully customizable/scriptable Graphical User Interface. The Qt-based interface of FreeCAD is entirely accessible via the Python interpreter. Aside from the simple functions that FreeCAD itself provides to workbenches, the whole Qt framework is accessible too, allowing any operation on the GUI, such as creating, adding, docking, modifying or removing widgets and toolbars.


 * Thumbnailer (Linux systems only at the moment): The FreeCAD document icons show the contents of the file in most file manager applications such as Gnome's Nautilus.


 * A modular MSI installer allows flexible installations on Windows systems. Packages for Ubuntu systems are also maintained.

In development

 * [[Image:Feature-assembly.jpg|left]] An Assembly module that allows to work with multiple projects, multiple shapes, multiple documents, multiple files, multiple relationships... This module is currently in planning state.

Extra Workbenches
Power users have created various custom external workbenches.