Как прочитать этот 3mf-файл

Поэтому я пытаюсь получить XSD-схему из этого объекта. Когда я открываю файл, я просто получаю что-то вроде этого кода (фрагмента):

¸†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^'ЯÉ

Что это такое? Как преобразовать его обратно? Мне нужно отредактировать структуру вручную.
Заранее благодарю вас.

, 👍1


2 ответа


Лучший ответ:

1

Три вероятных виновника:

  • Файл сжат, но ваша машина не может его обнаружить. Так, например, модель 3MF была заархивирована, и вы пытаетесь открыть zip-архив в текстовом редакторе, а не файл, который находится в zip-архиве. Решение: попробуйте посмотреть, могут ли обычные утилиты распаковки, такие как zip, gzip, 7z, открыть файл.
  • Файл представляет собой модель 3MF, но кодировка символов в файле отличается от ожидаемой вашим редактором (обычно в наши дни Unicode/UTF-8). Решение: прочитайте остальную часть этого ответа.
  • Файл представляет собой двоичный файл, который совершенно не связан с 3MF. Итак, по сути: ошибка, вы пытаетесь открыть файл MP3 или JPG, полагая, что это 3MF.

Что касается опции "неправильная кодировка"... Немного упрощая, история выглядит так:

  • компьютеры записывают данные в файлы в байтах,
  • байт может быть установлен только в одно из 256 возможных значений,
  • в первые дни вычислительной техники, когда компьютеры были просто прославленными калькуляторами, было достаточно иметь соотношение 1:1 между возможными значениями байтов и символами, которые нужно было использовать, так что родился ASCII (на самом деле ASCII только "отображал" первые 127 значений байта, но это немного подробно). Итак: значение #49 будет представлять собой 1, значение #90-Z и так далее...
  • вскоре после этого компьютеры стали достаточно мощными, чтобы люди хотели использовать их для обработки человеческих языков, поэтому возникла необходимость в большем количестве символов (например, с акцентом åáä или из нелатинских алфавитов, таких как кириллица язык или арабский _BOS_َرَبِيّили...), и инженеры, говорящие на разных языках, имели " блестящий " идея состоит в том, чтобы каждый использовал остальные 127 "свободных слотов" в байте для своих любимых языков, таким образом, родилось множество расширенных кодировок ASCII, каждая из которых использует одно и то же значение байта, но каждая сопоставляется с другим символом.
  • позже люди начали понимать необходимость сочетать использование, скажем, гэльского, английского, японского и фарси с математическими символами, и таким образом они придумали способ отображения символов в значения, выраженные как произведение большего количества байтов (так, например: кодировка 2 байтов может отображать 256x256=65536 символов).. Опять же: каждая система использует одни и те же значения, но разные символы.
  • наконец, после десятилетий разочарованных пользователей и дорогостоящих ошибок инженеры по всему миру остановились на многобайтовом стандарте, который имеет 1 114 112 возможных значений, которые могут содержать все символы, которые могут понадобиться, и родился Юникод.

Возвращаясь к вашему вопросу: несмотря на то, что Unicode существует уже несколько десятилетий, устаревшее программное обеспечение и неаккуратное программирование-это вещь, и до сих пор существуют системы, которые не используют Unicode внутренне, а какую-то устаревшую кодировку "специального назначения".

К сожалению, невозможно с уверенностью сказать, как был закодирован файл, поэтому иногда вы можете обнаружить, что открываете файл и начинаете декодировать его в соответствии с "таблицей преобразования", которая не используется автором самого файла. Это то, что, похоже, происходит с вами.

Вперед к тому, что вы можете попытаться сделать, чтобы исправить это...

Прежде всего: как уже, возможно, догадались внимательные читатели, для этого вам понадобится сам файл. На самом деле, если вы вырезаете и вставляете его "содержимое" из редактора, то на самом деле вы вырезаете и вставляете декодирование, которое ваш компьютер сделал с байтовыми значениями, а не с самими байтовыми значениями.

Тогда ваши лучшие ставки таковы:

  • Попробуйте один из онлайн-детекторов, подобных этому, используя в качестве языка "английский". Эти детекторы работают, пробуя все известные им декодеры, пока в декодированном файле не появятся английские (или другие языковые по вашему выбору) слова. Это может не сработать для вас, так как файл 3MF-это в основном цифры, а не текст, но попробовать стоит.
  • Угадайте, какой кодер мог быть использован. Например: если вы получили файл со старой машины WindowsXP из Восточной Европы, скорее всего, он был закодирован с помощью "windows-1251". Используйте онлайн-конвертер, чтобы убедиться, что вы были правы.
  • Используйте грубую силу. Для этого вам потребуется написать простую программу или попросить кого-нибудь сделать это за вас, но ключевая идея здесь заключается в том, чтобы скрипт взял ваш исходный файл и декодировал его, используя все известные кодеры на этом языке программирования. Затем вам предстоит открыть каждый декодированный файл по отдельности и проверить, сработал он или нет.

,

Профилактический комментарий: Я хорошо знаком с различием между UCS и UTF. Я решил объединить их, чтобы сохранить ответ (который фокусируется на обосновании существования нескольких кодировок) более точным. :), @mac

У меня меньше слов, у него неправильный редактор файлов или программа просмотра., @Fernando Baltazar

@FernandoBaltazar - нет, 3MF-это текстовый формат на основе XML. Любой текстовый редактор способен отобразить его правильно. Проблема либо в неожиданной кодировке, либо в том, что файл поврежден/не является 3MF-файлом., @mac

Это происходит, если вы используете неправильный редактор файлов или средство просмотра, даже если файл может быть поврежден. Все файлы Windows имеют внутренне этот ascii-код., @Fernando Baltazar

@FernandoBaltazar - Я подозреваю, что вы используете неправильные термины, чтобы выразить себя. Windows никогда не использовала ASCII в качестве набора символов. Насколько я знаю, первая версия Windows уже имела CP 1252, в то время как DOS использовала CP 437. Я не эксперт по Windows, но я считаю, что Windows перешла на Unicode/UTF-16 с выпуском XP., @mac

попробуйте увидеть файл внутри с неправильным редактором файлов, а затем сделайте комментарий; Я лично модифицировал некоторые программы в 1990 году и до сих пор делаю это с некоторыми файлами. Приятно видеть ascii и hex, в то время как внешне CPXX и UTF-xx должны видеть текст и wyswyg, конечно, на компьютерах DOS было странно получить это. Если Том Унгер не может прочитать файл с помощью правильного редактора файлов или средства просмотра, то файл поврежден, точно так же, как и этот, с меньшим количеством слов., @Fernando Baltazar

"Файл сжат" - это правда. В Ubuntu приложение по умолчанию для его открытия-Archive Manager. Например, когда я открыл файл .3mf в сжатом виде, в нем было три каталога и файл., @MAChitgarha


0

Похоже, вы пытаетесь отредактировать файл с помощью неправильного редактора файлов.

Если у вас есть Microsoft® Windows® 8.1, вы можете печатать напрямую, используя прилагаемый формат 3MF. Просто установите параметры печати в диспетчере свойств 3D-печати и распечатайте на 3D-принтере. Предварительный просмотр стола печати и расположения модели в столе печати позволяет изменить настройки перед выполнением задания 3D-печати.

Чтобы открыть диалоговое окно 3D-печать и задать параметры печати, выберите Файл > 3DPrint. Доступное диалоговое окно печати зависит от установленного драйвера 3D - печати.

Если вам нужно получить STL, вам может понадобиться использовать преобразование файлов, вот учебник YouTube для makeprintable

,