Preview3D
获取

什么是 .ac 文件?AC3D 模型、FlightGear,以及 Mac

.ac 文件是 AC3D 的纯文本格式,AC3D 是 Inivis 自 1994 年起面向 Windows、Mac 和 Linux 销售的一款 3D 建模软件。它简单,而且文档公开,所以像 FlightGear 飞行模拟器这样的软件就用它来制作飞机和场景。Mac 自己打不开它。

概览

扩展名
.ac
类型
较早的 3D 应用格式
创建者
Inivis
始于
1994
标准
不是正式标准
macOS 自身(不装应用)
不认识:没有预览,也没有缩略图

信息核对于 2026年11月4日

可以阅读的文本

你可以在文本编辑器中阅读和编写 .ac 文件。下面是一个红色三角形:

AC3Db
MATERIAL "red" rgb 1 0 0 amb 0.2 0.2 0.2 emis 0 0 0 spec 0.5 0.5 0.5 shi 10 trans 0
OBJECT world
kids 1
OBJECT poly
name "triangle"
numvert 3
0 0 0
1 0 0
0 1 0
numsurf 1
SURF 0x10
mat 0
refs 3
0 0 0
1 1 0
2 0 1
kids 0

第一行总是 AC3D,后面跟着一个十六进制的版本号,这里是 b,也就是 11。根据规范,程序可以拒绝比它所知更新的文件。接下来是一个材质调色板(MATERIAL),包含颜色、高光和透明度。然后是对象:world 是场景的根,group 是一个组,poly 是一个带网格的对象。对象有点(numvert)和表面(numsurf)。每个表面都以一行带标志的 SURF 开头,mat 从调色板中选择一种材质,refs 之后的行是点的编号及其纹理坐标。每个对象都以一行 kids 结束,说明后面跟着多少个子对象。

对象的位置和旋转(loc 和 rot)是相对于其父对象的,所以一个模型就是一棵由部件组成的树。每个对象可以有一个纹理,写作一个文件名。图片不在 .ac 文件里;它们必须位于文件期望的位置。这种格式没有单位,也没有动画。

是模型,还是 configure.ac?

GNU Autoconf 的 configure.ac 文件(程序就是用它们构建的)也使用 .ac 扩展名——我的 Mac 上就有六个。根据 FileInfo 的说法,家谱程序 Ancestral Quest 也使用这个扩展名。终端可以告诉你手上的是不是 AC3D 模型:

head -c 4 model.ac

AC3D 文件会输出 AC3D。configure.ac 则以 AC_INIT(…) 这样的行开头。

双面表面和网格检查

SURF 行把两件事装进一个十六进制数字里。低位是类型:0 是多边形,1 是闭合线,2 是线。高位是一个和:1 表示着色表面,2 表示双面表面,所以 SURF 0x30 是一个着色的双面表面。

双面表面在变成普通网格时有个问题。我的应用用来读取 .ac 文件的 Assimp 库会把每个双面表面复制一份,并把副本翻转。我在一个立方体上试过:用单面表面时,它有 12 个三角形,网格检查没有问题;用双面表面时,它有 24 个三角形,检查发现 12 条被两个以上的面共用的边。转换为 STL 时,这些重复的面也会被带过去。

所以打印之前请关闭双面——在 AC3D 中、在 Blender 中,或者直接在文本里改。下面这条命令会在文件的副本中把 SURF 0x2… 改写为 SURF 0x0…,把 SURF 0x3… 改写为 SURF 0x1…:

sed -i '' 's/^SURF 0x3/SURF 0x1/; s/^SURF 0x2/SURF 0x0/' copy.ac

在我的测试立方体上,网格检查又恢复正常了。线根本不会成为网格的一部分。

AC3D 用在哪里

  • FlightGear,这款开源飞行模拟器把它的飞机和场景模型保存在 .ac 文件中。光是 Cessna 172P 就由 84 个 .ac 文件组成,最大的一个是带仪表板的内饰,有 4.9 MB。
  • X-Plane 读取它自己的 OBJ 格式。但借助 X-Plane 为其开发者提供的插件,AC3D 可以打开和存储这种格式,所以 X-Plane 的场景就是在 AC3D 中建模的。
  • MATLAB 在其 Aerospace Toolbox 示例中使用 AC3D 文件,并指向 FlightGear 的飞机模型。

Inivis 还列出了 3D 打印、Google Earth 和 Second Life。

如何在 Mac 上打开 AC

macOS 不认识 AC3D。在 macOS 27.0.1 上,系统没有它的文件类型,Model I/O 框架无法载入它,预览、快速查看和访达都不显示它。

  • AC3D 来自 Inivis,有 Mac 版。它是付费软件,提供试用。
  • Blender 借助 Blender-AC3D 插件(7.2 版,适用于 Blender 2.63 至 4.3)导入和存储 .ac 文件。
  • Preview3D,我的应用,可以在 Mac 上的窗口中、在快速查看里以及作为访达缩略图打开 .ac 文件。在 iPad、iPhone 和 Apple Vision Pro 上也可以。这样你不用启动 Blender,就能以缩略图的形式浏览一架 FlightGear 飞机的各个部件。

Preview3D 通过 Assimp 库读取 AC3D。我在应用所用的同一个构建中,用我按照规范编写的文件试过。它打开了一棵对象树,各部件都在正确的位置上,还打开了有五个顶点的多边形,以及一个带较新 AC3Dc 文件头的文件。Assimp 能处理较新的 subdiv 行(2003 年的规范中还没有):一个带 subdiv 2 的立方体变得圆润,有 192 个三角形。只有点、没有表面的文件打不开。应用统一用一种颜色显示几何:不使用文件中的材质或纹理,也不绘制线。模型信息中有以文件单位表示的尺寸和三角形数量,以及网格检查。在 iPad 和 iPhone 上,它会在 AR 中把模型立在你的桌上,并按桌面大小显示。

把 AC 转换为 STL

在 Mac 上,Preview3D 通过 文件 → 导出模型为…(⌥⌘E)转换为 STL、OBJ 或 PLY,不上传任何东西。材质、纹理和线都会被丢弃。不过,请先按上文所述关闭双面表面。来自模拟器的模型常常由许多分开的部件组成,网格检查会把它们显示为独立部件。这种格式没有单位,所以请在切片软件中检查尺寸。

常见问题

什么是 .ac 文件?

Inivis 的 AC3D 建模软件的纯文本格式:材质、一棵对象树、点和表面。例如 FlightGear 飞行模拟器就使用它。

我的 .ac 文件是 3D 模型吗?

对于模型,head -c 4 model.ac 会输出 AC3D。configure.ac 文件属于 GNU Autoconf,不是 3D 模型。

为什么网格检查报告有边被多个面共用?

模型有双面表面(SURF 0x2… 或 SURF 0x3…)。它们在读取时被复制一份,翻转后的副本与原来的面共用边。打印之前请关闭双面。

Mac 不装其他应用能打开 .ac 吗?

不能。macOS 27 没有 AC3D 的文件类型,预览和快速查看都不显示它。

如何把 AC 转换为 STL?

在 Mac 上,用 Preview3D 的“文件 → 导出模型为…”,或者用装了 Blender-AC3D 插件的 Blender。然后检查网格和尺寸。

在哪里能找到 AC 格式的模型?

主要在 FlightGear 的飞机中。例如 Cessna 172P 就以 GPL 许可证发布在 GitHub 上。

相关页面

资料来源

你在为 FlightGear 制作飞机或场景,想在 Mac 上快速浏览 .ac 部件吗?请写信到 apps@xfanta.com,告诉我什么会对你有帮助。

在 Preview3D 中打开

在 Mac、iPad、iPhone 和 Vision Pro 上打开 STEP、3MF、STL、G-code、BGCODE 等格式。一次购买,无需账户,无需联网。

App Store 上的 Preview3D