この記事は ZOZOテクノロジーズ #1 Advent Calendar 2019 15日目の記事です。
昨日は @edm17 さんによる 【iOS】簡単にKeyboardを表示したときにTextFieldが隠れないようにするでした。
#はじめに
TIIPの仕様は公開されていないため独自に調査した結果をまとめました。検証に用いたCADに特化した仕様が混ざっているかもしれませんので参考程度に見ていただければ幸いです。お気付きの点があればコメントやご指摘等いただけるとめちゃめちゃ嬉しいです。
#TIIP(てぃーぷ)とは
国内アパレル製造業で使用されるCADファイル形式の一つです。CADの中間フォーマットであるDXFファイルを拡張し、アパレル設計・製造に特有のデータを保存することができます。全日本婦人子供服工業組合連合会により平成9年に開発され、日本で展開されているほとんどのCADベンダーがこの方式でのデータ互換に対応しているようです。
※そもそもDXFファイルって何?という方はこちらの記事をご覧ください。
#TIIPの仕様
TIIPはDXFをベースに開発されたフォーマットなので、基本的なデータ構造はDXFを踏襲しています。アパレルCAD特有の情報は主にコメント(グループコード=999)を使って記述します。
##コメント
例えばPOLYLINE(ポリライン)のコメントは線の種類が含まれ、
999
1 // 線の種類
LINE(線分)やVERTEX(頂点)はカンマ区切りで4要素が含まれます。
999
2,1,1,15 // 線の種類, 頂点の種類, ノッチ, 頂点番号
これらの要素について解説します。
###線の種類
線の種類が定義されています。確認済みの値は以下の通りです。他にも取りうる値がありそうですがメジャーどころはこの辺りです。
- "1"=外周(裁断)線
- "2"=仕上り線
- "3"=地の目線
- "5"=内部線
- "6"=切り込み線(プロカット線)
- "8"=柄点
- "9"=ドリルホール or 部品位置
- "10"=ボタン類
###頂点の種類
アパレルCADデータをTIIP形式にエクスポートする際、曲線は分割された直線の集合として出力されます。つまり、CADデータに元々存在しなかった頂点が曲線描画の都合で新たに生成されます。TIIPに変換する前に頂点として存在していたのか(頂点の種類=1)、変換に伴って便宜上追加された点なのか(頂点の種類=2)を設定します。値を設定しなければデフォルトでダミー点扱いになります。これを理解せずにTIIPファイルを編集してしまうと、アパレルCADで開いた時に激しく形状が歪むので要注意です。
- “1”=元々の頂点
- “2”=曲線描画のために生成されたダミー点(デフォルト)
###ノッチ
頂点にノッチを定義するかどうかの設定です。
- “”=OFF (デフォルト)
- “1”=ON
###頂点番号
BLOCKに含まれる頂点(ダミー点でない)の数に対応した連番です。初期値は1で、BLOCK内の頂点の数だけインクリメントされています。利用用途は不明ですが、スムージングの曲線算出に影響しているのかもしれません。
##コメント以外の仕様
DXFに存在するグループコードや図形の中でTIIP独自の解釈が入っているものを分かっている範囲でご紹介します。
影響する図形 | グループコード | TIIPの解釈 | DXFの解釈 |
---|---|---|---|
POLYLINE/LINE | 6 | 線の描画タイプ(指定なし=実線/ "1"=破線/ "2"=点線/ "3"=一点鎖線/ "4"=二点鎖線/ etc.) | 線種名(BYLAYER 以外の場合に現れます)。特殊な名前 BYBLOCK は、浮動型の線種を示します(省略可能)。 |
VERTEX | 38 | ノッチの長さ | 図形の高度(ゼロでない場合) |
VERTEX | 50 | ノッチの角度 | 角度(DXF ファイルでは度で、AutoLISP と ObjectARX アプリケーションではラジアンで出力されます) |
POINT | - | ドリルホール or 部品位置 | 点図形 |
#終わりに
TIIPの仕様を理解していくと、アパレルCADデータをハックするための道筋が明らかになり、工場にCADデータを提供する際に発生するちょっとしたデータ変換を自作のツールで自動化できるようになりました。全ての仕様を把握している訳ではないので引き続き発見があれば追記していきます!
明日は @pakio さんが記事を書いてくれます!乞うご期待!