Nomar记录一段历史
我怎样才能阅读这个 3mf 文件

所以我试图从这个对象中获取 XSD-Schema。当我打开文件时,我只会得到这样的代码(片段):

 ¸†2¡Q·2ºyƒeCã2ï…w ïÀ|¼ðAøä[0Ÿ |>‚|ó'å2²ºFƒ¼Æò1ùàåcj@Þ`ùиÌ{áÈ;0/|¾  ùÌ'Ÿ„ Á|d½¬¬¯Õ ¯±|l¾…Œo@Þ`ùиÌ{áÈ;0/|¾ùÌ'Ÿ„ Á|d½œ¬¯Ó ¯±|h\æŒo@Þ`ù¸| ßBs¦5–Œ~ô軣(™c´“Ç£[yp1:æ'Éc4Jó Uâ˜ÍÇ<h—8^'ЯÉ

这是什么?我怎样才能把它转换回来?我需要手动编辑结构。
提前谢谢你。

2个回答

似乎您正在尝试使用错误的文件编辑器编辑文件。

如果您有 Microsoft® Windows® 8.1,则可以使用包含的 3MF 格式直接打印。只需在 3D 打印 PropertyManager 中设置打印选项并打印到 3D 打印机。打印床的预览和模型在打印床上的位置让您可以在提交 3D 打印作业之前修改设置。

要访问 3D 打印对话框并指定打印选项,请单击文件 > 3DPrint。可用的打印对话框取决于您安装的 3D 打印驱动程序。

如果您需要获得 STL,您可能需要使用文件转换,这里是一个 youtube 教程,可进行打印

三个可能的罪魁祸首:

  • 该文件已压缩,但您的机器无法检测到它。例如,3MF 模型已被压缩,您要做的是在文本编辑器中打开 zip 存档,而不是 zip 存档中的文件。解决方法:试试看zip、gzip、7z等常用解压工具能否打开文件。
  • 该文件是 3MF 模型,但文件中的字符编码与您的编辑器期望的不同(现在通常是Unicode/UTF-8 )。解决方案:阅读本答案的其余部分。
  • 该文件是一个与 3MF 完全无关的二进制文件。所以本质上:一个错误,你试图打开一个 MP3 或一个 JPG 文件,认为它是一个 3MF。

至于“错误编码”选项……稍微简化一下,故事是这样的:

  • 计算机以字节为单位将数据写入文件,
  • 一个字节只能设置为其 256 个可能值之一,
  • 在计算的早期,当计算机只是美化的计算器时,字节可能值和想要使用的符号之间的比例为 1:1 就足够了,因此ASCII诞生了(实际上 ASCII 只是“映射”了第一个字节的 127 个值,但这是一个细节)。所以:值 #49 代表1 ,值 #90 代表Z等等......
  • 不久之后,计算机变得足够强大,人们想用它们来处理人类语言,所以需要更多的字符(如重音的那些åáä或来自非拉丁字母西里尔一样的那些язы́к或阿拉伯语عَرَبِيّ‎ ,或...)出现了,使用不同语言的工程师有一个“绝妙”的想法,每个人都将一个字节中的其他 127 个“空闲插槽”用于他们最喜欢的语言,因此产生了大量的扩展 ASCII编码,每个编码都使用相同的字节值,但是每个映射到不同的符号
  • 后来,人们开始意识到需要将盖尔语、英语、日语和波斯语的使用与数学符号结合起来,因此他们想出了将符号映射到表示为更多字节乘积的值的方法(例如: 2 字节编码可以映射 256x256=65536 个符号)。再次:每个系统使用相同的值但不同的符号。
  • 最终,在经历了数十年沮丧的用户和代价高昂的错误之后,世界各地的工程师最终确定了一种多字节标准,该标准具有 1,114,112 个可能的值,可以包含人们可能需要的所有字符,于是Unicode诞生了。

回到你的问题:尽管 unicode 已经存在了几十年,但遗留软件和草率编程是一回事,仍然有系统在内部不使用 unicode,而是使用一些遗留的“特殊用途”编码。

不幸的是,无法确定文件是如何编码的,因此有时您可能会发现自己打开文件并根据“转换表”开始对其进行解码,该表不是文件作者本身使用的。这就是发生在你身上的事情。

继续你可以尝试做的事情来解决这个问题......

首先:细心的读者可能已经推断出,为此您将需要实际文件。事实上,如果您从编辑器中剪切并粘贴其“内容”,那么您真正在做的是剪切并粘贴计算机对字节值所做的解码,而不是字节值本身。

那么你最好的选择是:

  • 尝试使用这样的在线检测器之一,使用“英语”作为语言。这些检测器通过尝试他们知道的所有解码器来工作,直到解码的文件中包含英语(或您选择的其他语言)单词。这可能对您不起作用,因为 3MF 文件主要是数字,而不是文本,但值得一试。
  • 猜测可能使用了什么编码器。例如:如果您从东欧的旧 windowsXP 机器上获得该文件,则它可能已被编码为“windows-1251”。使用在线转换器来查看您是否正确。
  • 使用蛮力。为此,您需要编写一个简单的程序或请人为您编写程序,但这里的关键思想是让脚本获取您的原始文件并使用该编程语言中已知的所有编码器对其进行解码。然后由您单独打开每个解码的文件并验证它是否有效。
预防性评论:我非常熟悉 UCS 和 UTF 之间的区别。我选择将两者混为一谈,以便让答案(侧重于存在多种编码背后的基本原理)更切中要害。 :)
我少说,他有错误的文件编辑器或查看器。
@FernandoBaltazar - 不,3MF 是一种基于 XML 的文本格式。任何文本编辑器都能够正确显示它。问题要么是意外的编码,要么是文件损坏/不是 3MF 文件。
如果您使用了错误的文件编辑器或查看器,即使文件可能已损坏,也会发生这种情况。所有 windows 文件内部都有这个 ascii 代码。
@FernandoBaltazar - 我怀疑您使用错误的术语来表达自己。 Windows 从未使用 ASCII 作为字符集。据我所知,Windows 的第一个版本已经有 CP 1252,而 DOS 使用的是 CP 437。我不是 Windows 专家,但我相信 Windows 在 XP 版本中切换到 Unicode/UTF-16。
尝试使用错误的文件编辑器查看里面的文件,然后发表评论;我个人在 1990 年修改了一些程序,但我仍然对一些文件进行了修改。很高兴看到 ascii 和十六进制,而在外部 CPXX 和 UTF-xx 是看到文本和所见即所得,当然在 DOS 计算机上获得它是很奇怪的。如果 Tom Unger 无法使用正确的文件编辑器或查看器读取文件,则该文件已损坏,就像这样,字数较少。
"文件被压缩";这是真的。在 Ubuntu 中,打开它的默认应用程序是存档管理器。例如,当我打开一个 .3mf 文件作为压缩文件时,其中有三个目录和一个文件。

随机文章