# 01 directory

# target
Roborecipeのディレクトリの使い方や配置すべきファイルについて理解することが目標です。

# packageとcomponent
roborecipeの部品の最小単位がコンポーネントです。コンポーネントにはいくつかの種類があり現在は「部品」と「アセンブリ」の2種類があります。それぞれ以下のようなものを表します。

* 部品コンポーネント：ネジや板金プレート等、不可分で動かない塊を表す。
    * 購入先や単価等の購入情報を入力できる
* アセンブリコンポーネント：モーターにブラケットと車輪を取り付けた物のような複数のコンポーネントを組み立てで出来るモジュールを表す。
    * 組み立てに使う部品の種類や位置を入力できる。


またすべてのコンポーネントは、パッケージに属する。パッケージとはコンポーネントをまとめるディレクトリのことである。パッケージに属さないコンポーネントは存在しないし、またパッケージの中にパッケージは作れない

# ファイルシステム上での扱い
Roorecipeサーチディレクトリ以下でpackage.xmlというファイルを直下に持つディレクトリがpackageとして認識される。またpackageディレクトリ以下にある.roborecipeというファイルがコンポーネントとして認識されるつまり

``` text
(サーチディレクトリ)
├ a_pkg <- packageとして認識される
│　├ package.xml
│　├ a1.roborecipe <- componentとして認識される
│  └ a2.roborecipe <- componentとして認識される
├ sub_dir
│　└  b_package <- packageとして認識される
│　　　├ package.xml
│　　　└ sub_dir
│　　　　　└ b1.roborecipe <- componentとして認識される
└ c_pkg <- 認識されない
　　└ b1.roborecipe <- 認識されない
```