Как прочитать этот 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^'ЯÉ
Что это такое? Как преобразовать его обратно? Мне нужно отредактировать структуру вручную.
Заранее благодарю вас.
@Tom Unger, 👍1
2 ответа
Лучший ответ:
Три вероятных виновника:
- Файл сжат, но ваша машина не может его обнаружить. Так, например, модель 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". Используйте онлайн-конвертер, чтобы убедиться, что вы были правы.
- Используйте грубую силу. Для этого вам потребуется написать простую программу или попросить кого-нибудь сделать это за вас, но ключевая идея здесь заключается в том, чтобы скрипт взял ваш исходный файл и декодировал его, используя все известные кодеры на этом языке программирования. Затем вам предстоит открыть каждый декодированный файл по отдельности и проверить, сработал он или нет.
Похоже, вы пытаетесь отредактировать файл с помощью неправильного редактора файлов.
Если у вас есть Microsoft® Windows® 8.1, вы можете печатать напрямую, используя прилагаемый формат 3MF. Просто установите параметры печати в диспетчере свойств 3D-печати и распечатайте на 3D-принтере. Предварительный просмотр стола печати и расположения модели в столе печати позволяет изменить настройки перед выполнением задания 3D-печати.
Чтобы открыть диалоговое окно 3D-печать и задать параметры печати, выберите Файл > 3DPrint. Доступное диалоговое окно печати зависит от установленного драйвера 3D - печати.
Если вам нужно получить STL, вам может понадобиться использовать преобразование файлов, вот учебник YouTube для makeprintable
- Какие виды зазоров/допусков следует использовать при проектировании деталей, которые подходят друг к другу?
- Инструмент для измерения в STL-файлах
- Каков самый простой способ изменить/изменить размер объекта внутри STL-файла?
- Экспорт STL как ASCII или двоичный?
- Будут ли 3D напечатные игральные кости честными?
- Как сделать стены толще с помощью meshmixer или meshlab
- Смазка для звездочки PLA
- Есть ли способ печати с ABS без корпуса?
Профилактический комментарий: Я хорошо знаком с различием между 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