2016/03/03 00:22:46 の更新
2016/03/03 00:22:46 の更新 | ||
---|---|---|
1 | # 木材発注量の計算 | |
1 | # 木材発注量の見積もり | |
2 | 2 | |
3 | ## 使い方 | |
3 | ## 見積もりの重要性 | |
4 | 4 | |
5 | 1. カット後の木材の数を半角数字で入力->送信ボタン | |
6 | 2. 名前と長さを入力(長さは半角数字で、1以上3650以下)->送信ボタン | |
5 | 木材は通常斡旋販売で購入するものですが、これを逃すと自力で確保するのが難しい材料です。 | |
6 | 青森ねぶたでは作っている途中に柔軟に支柱を建てていきますが、斡旋販売は5月で、作業期間ではありません。つまり、北高では実際に作らずに事前にどのくらい必要かを決めなければいけません。 | |
7 | 多く発注してしまう分にはまだいいですが、足りなくなってしまうと、他の余っているクラスから買うか、それができなければ自力でどうにかするしかありません。これは時間的にも金銭的にもロスになってしまいます。 | |
7 | 8 | |
8 | - [](/files/images/fullsize/1376200427034-Howto____.png) | |
9 | - [](/files/images/fullsize/1376200427044-Howto____2.png) | |
9 | また、北高では1クラスあたり最大でも十数万円しか予算がありません。さらに全行・学プロもあるため、行灯に使える予算は数万円しかありません。 | |
10 | 行灯において予算はかなり重要で、基本的に使える予算は多ければ多いほどいいので、できるだけ無駄なコストはカットしていく必要があります。木材を多く注文しても余ってしまうだけなので、できるだけ余りが出ないように発注したいです。 | |
10 | 11 | |
11 | サンプル画像 土台のみ(3650 × 6, 2700 × 5, 600 × 4)だと発注量は11本 | |
12 | 以上から、必要かつ十分な量を見積もることは、非常に重要になります。 | |
12 | 13 | |
13 | 発注するときは計算された発注量に予備として2本くらい足しておくと安心です。 | |
14 | 太さの異なる木材を発注する場合は、太さ毎に計算してください。 | |
14 | ということで、5月の発注前に、構図を決め、支柱を設計し、どの長さの木材がどのくらい必要なのかを出したとします。しかし、木材発注はその長さピッタリの木材を発注できず、すべて一律3650mmで発注しなければいけません。したがって、必要かつ十分な量を発注するためには、必要な支柱をどのように組み合わせて切れば、余りが最小になるかということを考えなければいけません。 | |
15 | この問題は人力で計算してもなんとなくそれっぽい答えは出せますが、最小かどうかもわからないし手間もかかるものになってしまいます。 | |
16 | ||
17 | そこで、なんと、ここで紹介するツールを使えば、簡単に (ほぼ) 最小にカットできる方法を計算できます。 | |
18 | ||
19 | ## 木材発注量・木材カット方法の計算ツールの使い方 | |
20 | ||
21 | ↓ツールへのリンク | |
22 | [木材カット方法の計算](http://satsukita-andon.github.io/lumber-cutting/) | |
23 | ↑ | |
24 | ||
25 | 使い方 | |
26 | ||
27 | 1. どの長さの木材がどのくらい必要なのかを予め調べておく | |
28 | 2. [木材カット方法の計算](http://satsukita-andon.github.io/lumber-cutting/)ページに行く | |
29 | 3. 追加 ボタンを押す | |
30 | 4. 色・名前・長さ を入力する | |
31 | 5. 3-4 を繰り返したり、入力した木材をコピーする | |
32 | 6. すべて入力したら、計算結果 タブを押す | |
33 | 7. これで問題なければページを印刷する、もしくは インポート/エクスポート タブの下のエリアをコピーして保存する | |
34 | ||
35 | ||
36 | 例として、60th3-9の支柱を下に書いておきます。これを インポート/エクスポート タブの上のエリアにペーストしてインポートすれば、これらの木材の最小カット方法を確認できます。 | |
37 | ||
38 | - [](/files/images/fullsize/1456931938095-2016-03-030.17.47.png) | |
39 | - [](/files/images/fullsize/1456931944239-2016-03-030.18.11.png) | |
40 | ||
41 | ||
42 | ``` | |
43 | label,size,r,g,b,a | |
44 | 土台横,3650,178,223,219,1 | |
45 | 土台横,3650,178,223,219,1 | |
46 | 土台横,3650,178,223,219,1 | |
47 | 土台横,3650,178,223,219,1 | |
48 | 土台横,3650,178,223,219,1 | |
49 | 土台横,3650,178,223,219,1 | |
50 | 土台縦,2700,200,230,201,1 | |
51 | 土台縦,2700,200,230,201,1 | |
52 | 土台縦,2700,200,230,201,1 | |
53 | 土台縦,2700,200,230,201,1 | |
54 | 土台縦,2700,200,230,201,1 | |
55 | 土台補強,600,220,237,200,1 | |
56 | 土台補強,600,220,237,200,1 | |
57 | 土台補強,600,220,237,200,1 | |
58 | 土台補強,600,220,237,200,1 | |
59 | 中央土台足場,2223,240,244,195,1 | |
60 | 土台足場縦,1645,220,231,117,1 | |
61 | 土台足場縦,1645,220,231,117,1 | |
62 | 中央土台追加補強,700,255,249,196,1 | |
63 | 右土台足場横,600,255,241,118,1 | |
64 | 胴体支柱,1700,149,117,205,1 | |
65 | 胴体支柱,1700,149,117,205,1 | |
66 | 頭部,1200,103,58,183,1 | |
67 | 頭部,1200,103,58,183,1 | |
68 | 額,535,209,196,233,1 | |
69 | 左肩,2100,244,67,54,1 | |
70 | 左腕,1100,229,115,115,1 | |
71 | 右肩,2300,33,150,243,1 | |
72 | 右腕,1000,100,181,246,1 | |
73 | 魄龍胴体-右肩,2000,3,169,244,1 | |
74 | 魄龍胴体,1000,79,195,247,1 | |
75 | 魄龍頭部支柱,400,179,229,252,1 | |
76 | 死神,1300,69,90,100,1 | |
77 | はしご,3650,121,85,72,1 | |
78 | はしご,3650,121,85,72,1 | |
79 | 炎龍頭部,1400,233,30,99,1 | |
80 | 炎龍頭部支柱,1200,240,98,146,1 | |
81 | 炎龍胴体-左肩,2000,194,24,91,1 | |
82 | 炎斜め,1000,255,87,34,1 | |
83 | 炎斜め支柱,300,255,138,101,1 | |
84 | 左ふくらはぎ,1200,0,121,107,1 | |
85 | 左太もも,1200,77,182,172,1 | |
86 | 右肩補強,400,26,35,126,1 | |
87 | 魄龍胴体-右肩補強小,400,26,35,126,1 | |
88 | 魄龍胴体-右肩補強大,840,26,35,126,1 | |
89 | 頭部補強,440,0,77,64,1 | |
90 | 頭部補強,440,0,77,64,1 | |
91 | はしご補強,300,62,39,35,1 | |
92 | はしご補強,300,62,39,35,1 | |
93 | はしご補強,300,62,39,35,1 | |
94 | はしご補強,300,62,39,35,1 | |
95 | 胴体-はしご補強,400,51,105,30,1 | |
96 | 胴体-はしご補強,400,51,105,30,1 | |
97 | 胴体-はしご補強,400,51,105,30,1 | |
98 | 胴体-はしご補強,400,51,105,30,1 | |
99 | 胴体補強縦,400,0,96,100,1 | |
100 | 胴体補強縦,400,0,96,100,1 | |
101 | 胴体補強横,500,1,87,155,1 | |
102 | 胴体補強横,500,1,87,155,1 | |
103 | 左肩補強外側,355,230,81,0,1 | |
104 | 左肩補強内側,400,191,54,12,1 | |
105 | 炎龍胴体-左肩補強大,770,255,111,0,1 | |
106 | 炎龍胴体-左肩補強小,300,245,127,23,1 | |
107 | 刀 (21mmx21mm),3650,209,196,233,1 | |
108 | 鞘 (21mmx21mm),3650,225,190,231,1 | |
109 | ミニ行灯,3650,215,204,200,1 | |
110 | ミニ行灯バッテリーケース,3650,215,204,200,1 | |
111 | 予備,3650,240,225,170,1 | |
112 | 予備,3650,240,225,170,1 | |
113 | ``` | |
114 | ||
15 | 115 | |
16 | 116 | ## アルゴリズムについて (興味のある人向け) |
17 | 117 | |
18 | - このような問題は [箱詰め問題 (bin packing problem)](http://ja.wikipedia.org/wiki/%E3%83%93%E3%83%B3%E3%83%91%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0%E5%95%8F%E9%A1%8C) として知られていて、最適解 (最小の本数になるような解) を求めるための**効率的**なアルゴリズムは見つかっていません。もちろんすべてのパターンを列挙すれば最適解を見つけることができますが、現実的な時間では終わりません。 | |
118 | - このような問題は [箱詰め問題 (bin packing problem)](http://ja.wikipedia.org/wiki/%E3%83%93%E3%83%B3%E3%83%91%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0%E5%95%8F%E9%A1%8C) として知られていて、最適解 (最小の本数になるような解) を求めるための効率的なアルゴリズムは見つかっていません。もちろんすべてのパターンを列挙すれば最適解を見つけることができますが、現実的な時間では終わりません。 | |
19 | 119 | - このページでは、箱詰め問題の近似解 (最小とは限らないがだいたい良さそうなもの) を求めるためのアルゴリズムである (事前ソート付きの) ファーストフィット法を使っています。 |
20 | 120 | - 最適解にならない例としては、A (1650mm) × 2, B (1000mm) × 4 をカットしたい場合、最適解は [ A | B | B ], [ A | B | B ] で2本ですが、このページのアルゴリズムでは [ A | A | 余り ], [ B | B | B | 余り ], [ B | 余り ] で3本になってしまいます。 |
21 | 121 | - ですが、木材の本数が多くなってきたり短い木材があったりすると、最適に近いカット方法を示してくれるようになるので気にしなくて構いません。多くの場合では自分で計算するほうが困難です。 |
22 | 122 | |
23 | ---- | |
24 | ||
25 | <form> | |
26 | カット後の木材の数: | |
27 | <input type="number" min="1" max="100" id="num" size="3"> 本<br> | |
28 | <input type="button" value="送信" onClick="numberOfLumber()"> | |
29 | </form> | |
30 | <p id="cut"> | |
31 | </p> | |
32 | <form id="inputField"> | |
33 | </form> | |
34 | <div id="result"> | |
35 | <p id="numOrder"> | |
36 | </p> | |
37 | </div> | |
38 | <script type="text/javascript" src="/assets/js/lumber.js"></script> | |
39 | diff view generated by jsdifflib |