• 締切済み

STL形式のヘッダ情報

STL形式のフォーマットについての質問です。 STLローダをプログラミング中なのですが、バイナリ形式か、テキスト形式かの判別方法で悩んでいます。この情報はヘッダの情報から読み取れるのでしょうか?どのようにして判別可能でしょうか?それともファイル内容自体から、判別する必要があるのでしょうか? よろしくお願いします。

みんなの回答

  • stingy
  • ベストアンサー率37% (144/379)
回答No.1

拡張子".STL"は他の種類のファイルでも使われているので 最終的にはファイル内容から判断するしかありませんが テキスト形式の場合頭は[solid]と決まっています。 バイナリ形式の場合の頭は任意となってますのが ヘッダに書かれているパッチ数をnとすると ファイルサイズは50*n+84バイトです。 自分なら・・・ですが (ファイルサイズ-84)/50で余りがなく  パッチ数を読み込んで計算が合えばバイナリ形式 その他の場合、最初の5charが[solid]ならテキスト形式 さらにその他の場合、拡張子が".STL"なだけのファイル と判断します。

mars_kreuz
質問者

お礼

なるほどパッチ数とファイルサイズで判定ですね!実はバイナリ形式の頭もsolid となっている場合が非常に多くて、この項目だけでは判定できず困ってました。大変貴重なご意見ありがとうございました。

関連するQ&A

  • wmvファイルヘッダー情報の読み出し方法

     お世話になります。  Perlでwmvファイルのヘッダー情報、特にテキストで書き込まれた部分(コメントやファイル名)などを読み取ろうとしているのですが、うまく行きません。wmvファイルをバイナリエディター等で開いてみると、テキストの部分は暗号化されているように見えます。実際には、どのようなプログラミングをすればよいのでしょうか?  ご教授、よろしくお願い申し上げます。

  • ヘッダ情報がないファイルを再生できるようにすることは可能ですか?

    あるmpgファイルを入手したので再生しようとしたのですが、エラーガ出てしまいみることができませんでした。拡張子が別の物だと思い極窓で判別しましたが『?』になってしまいました。DumperXPでバイナリ(というのでしょうか?)を見てみたところヘッダと思われるところが『。。。。。。。』と長々と表示されていてある程度いったところから、内容と思われるバイナリが書かれていました。このようなものはどうすれば再生できますか?

  • wave形式(*.wav)のフォーマット(ゲイン情報)について

    wave形式(*.wav)のフォーマット(ゲイン情報)について waveファイルの音の大きさをバイナリファイルを自分編集して変えたいのですが、いろいろなサイトを見てもゲインの大きさをどうして変えればいいのかわかりません。自分の理解ではwaveファイルって音声データ自体は16bitの整数(0~32767の整数)だったと思うので、それに掛け算する係数みたいなものがヘッダーにあるのではないかと思って探してみたのですが空振りでした。それとも音声データ自体が浮動少数のデータでしたでしょうか? 以上、よろしくお願いします。

  • オブジェクトファイルのファイルフォーマット

    オブジェクトファイルのファイルフォーマット ELF/DWARF2形式について調べています。 C言語で作ったプログラムをコンパイルし生成されるオブジェクトファイルをバイナリエディタで開き、アセンブリ言語と比較すると、オブジェクトファイルの最初と最後にプログラムの内容(命令)と直接関係ないものが含まれていることが分かりました。 例えば、オブジェクトファイルのある場所や、コンパイルされた日時などです。(これらの情報はテキストだったので判別ができました。) インターネットで調べたところ、生成されたオブジェクトファイルがELF/DWARF2形式とうフォーマットで作られているというところまでは分かりました。 実際のオブジェクトファイルのヘッダとフッタ(命令の前後)を除いて、純粋な機械語(命令)の部分を取り出したいのですが、このELF/DWARF2形式というフォーマットでは、どうすれば、純粋な機械語の始まりと終わりを読み取ることができるでしょうか? よろしくお願いいたします。

  • STLフォーマットファイルの作成

    最近の3DのCADの標準的な形式としてSTLがあります(私は知らなかったのですが)。考え方はどんなに複雑な面であっても細かい三角形の平面で近似でき、細かくすればするほどリアルになるということなのだと思います。テキストでもありバイナリ化もできるとのことです。3Dプリンタもこれを使うとのことですが。  割と簡単な形状のもの(スイミングプールとか直線の水路とか羊羹のような形状ですが、少しの造作物はあり)のような場合、頑張ればテキストエディタでも作れますが、実際にはソフトウェアで絵をかいてSTL形式に出力する、というのが普通なのでしょうか。プールは単なる直方体ではなくて、底面、側壁が肉厚をもったものであるのでそこまで表現しようとしたら面倒ですし間違いそうです。やはりCADソフトを使うべきであり、テキストエディタはあり得ないというものでしょうか。FreeCADなどを見ているとそこまでの帰納でなくてもいいかも、と思うのですが。  また、STLの形式ですが、面の法線ベクトルと三角形の頂点座標でできている極めて単純と言えそうですが、頂点座標があったら法線ベクトルはほぼ特定できているはずで、頂点座標から法線ベクトルが算出されるとしたら入力値と矛盾が生じるので間違いのもとにならないかなと思いますが。どうでしょうか。裏表があるから必要ということなのでしょうか。右ねじ法則でルールを決めたら裏表もないはずですが。  逆にものすごく詳細なSTLは作業としてどのようにして作られているものでしょうか。人間の臓器とか顔とかとにかくもとになるデータを得ることが難しいものなのですが。

  • 画像(bmp等)の保存形式について

    画像(bmp等)の保存形式について 画像の保存のフォーマットについて質問です。 bmpの形式についてのwebページをみてみたんですが、 structを書いてメンバをかいていたりするんですが、 bmpのファイルをテキストエディタでみてみてもうまくみれないし、 やっぱりバイナリエディタでみると数字の羅列なんですが、 実際に作る場合にはstructとかを書いた後に使うコンパイラみたいなものがあるんでしょうか? struct等C言語のプログラミングの知識はあります。 よろしくお願いします。

  • バイナリファイルとプログラミング

    バイナリファイルとプログラミング 今、とあるバイナリファイル(NIfTI)をC言語で可視化したいと思っています。 ただバイナリファイルを利用するにはフォーマットさえわかればいいんでしょうか? http://nifti.nimh.nih.gov/nifti-1/ のようなフォーマットの形式を見ても 実際にプログラミングではどういう風にやっていけばいいのか何もわかりません。 アドバイスをお願いします。

  • バイナリ形式など、ファイルサイズを小さく保存したい

    あるファイルへデータを書き込み保存したいのですが、テキスト形式ではなく、バイナリ形式など、ファイルサイズが小さくて済む書き込み方法はないでしょうか?

  • MIMEとバイナリデータの読み方

    バイナリファイルの中、MIME boundary1の後、ヘッダーの部分のXMLで書かれたテキストファイルあります。そのXMLヘッダー文をパースしたい。 バイナリファイルのほかのところにMIME boundary2の後バイナリ形式のデータあります。 Googleで調べたけど、なにかは見つかったけど、理解できず困っています。 バイナリファイルを一バイトづつ読んで、Integer.toHexString()を使うとASCIIの形でXMLの部分はそのまま (フォーマットなしで)、バイナリデータの分は化けた表示されます。 だいたいのアウトラインでよいです。やり方ご存知の方、教えてください。 (1)boundary1の後書かれたXML式データを読む方法 (2)boundary2の後、決まったキーワードが入っていたら、そこから決まったバイト数までのバイナリデータを読む方法 その決まったキーワードと決まったバイト数はヘッダーのXML内に書かれています。

    • ベストアンサー
    • Java
  • メールのヘッダ情報とは?

    ある大手のSNSで登録内容を変更する際に上手くできずそのSNS側に質問をしたのですが、その質問に対して 「メールのヘッダ情報をお寄せください」 という内容の返答がきました。そのため、私は当該メールのヘッダ情報を教える必要があるようです。 そこで質問なのですが、メールのヘッダ情報とはどのようなものなのでしょうか?それはどのようにすれば見ることができるものなのでしょうか?メールに関しては不慣れなので、教えていただきたいと思います。 また、yahooのフリーメールを使っているので、具体的にyahooのフリーメールを利用している場合を例にして説明していただけるとさらに助かります。