41.3275mm を112個の箱から作る——「下の桁から消す」で本当に最少なのか
検査成績書に「基準寸法 41.3275mm」とある。ダイヤルゲージを当てる前に、まずブロックゲージでその高さを作らないといけない。112個組の木箱を開けると、1.0005 から 100 まで、似たような銀色のブロックがずらりと並んでいる。さて、どれとどれを重ねればいいか。
教わったとおりにやるなら、端数の下の桁から消していく。0.0005 の桁は 1.0005 で消す。残り 40.327 の 0.007 は 1.007 で消す。残り 39.32 の 0.32 は 1.32 で消し、残った 38 を 25 と 13 で作る。重ねるのは5枚だ。
このツールに 41.3275mm・112個組と入れると、最少枚数は同じ5枚で、1位に出るのも 25 + 13 + 1.32 + 1.007 + 1.0005 になる。ただし、同じ5枚で作れる組はほかにもあって、全部で12通りある。24.5 + 13.5 で 38 を作っても、24 + 14 で作っても枚数は変わらない。
手順どおりで5枚、最少も5枚。この寸法では一致した。では、いつでも一致するのか。76個組で 90mm を作ると、手順は 75 → 10 → 5 の3枚になるのに、50 + 40 の2枚で作れる。欠品が1個あるだけで、手順が途中で行き詰まる寸法もある。この記事では、その食い違いがどこで起きるのかを、セットの中身と計算の仕組みから順に見ていく。
なぜ作ったのか——「作り方の手順」はあっても、「それで最少か」を確かめる道具が無かった
ブロックゲージの組み合わせ方は、どの教科書にも載っている。下の桁から順に消して、最後に大きいブロックで残りを埋める。実際、ほとんどの寸法はこれで困らない。困るのは、手順が使えない場面に出くわしたときだ。
ある日、112個組の 1.47 が校正に出ていて箱に無かった。58.975mm を作ろうとして、いつもどおり 1.005 で 0.005 を消すと、残りは 57.97。ここで 0.47 を一度に消せる 1.47 が無い。別の 1.4x を使えば 0.5mm の倍数にならず、2枚に分けるならどれとどれか。手で探していると、それが本当に最少なのか、ほかの組があるのかが最後まで分からない。
日本語で「ブロックゲージ 組み合わせ 計算」と調べてみると、筆者が見かけた範囲では、組み合わせの例を1つ載せた解説ページやメーカーの商品ページばかりで、目標の寸法を入れて組を返す計算ツールは見当たらなかった。英語で「gauge block calculator」と調べると、同じ題名のページが無関係なドメインにいくつも並ぶ。中身を読めたものの1つは、「下の桁から消す」手順(successive subtraction)をそのまま実装し、それで枚数が最少になると説明していた。76個組の 90mm のように、その手順では最少にならない寸法がある。
欲しかったのは、次の4つをまとめて見られる道具だ。
- その寸法を作る最少の枚数と、同じ枚数で作れるほかの組
- 教科書の手順の組と並べて、手順どおりで足りているか
- 欠品・校正中のブロックを外したときの組と、作れないならいちばん近い寸法
- 重ねたブロックの寸法許容差の合成(単純和と二乗和平方根)
最少を数学的に保証するには、全部の組を調べる必要がある。そこで、セットのブロックを0.0005mm 単位の整数にして動的計画法で解き、最少の組を漏れなく数え上げる作りにした。手順との比較は、その答えの横に「教科書ならこうなる」を添えるためのものだ。
ブロックゲージの基礎——密着、等級、セットの中身
ブロックゲージ とは——両端の面だけが「寸法」を持つ端度器
ブロックゲージは、平行な2つの測定面の間の距離で長さを表す測定器だ。JIS B 7506 は、耐久性のある材料で作った長方形断面のブロックで、測定面がほかのブロックや基準平面とよく密着する「端度器」と定義している(JIS B 7506:2004 ブロックゲージ)。物差しのように目盛を読むのではなく、ブロックそのものの厚さが基準になる。
最大の特徴は**密着(リンギング)**だ。鏡のように仕上げた測定面どうしを滑らせながら合わせると、接着剤もないのに張り付いて、1本の棒のように扱える。この性質のおかげで、手元のブロックを何枚か重ねるだけで、セットに無い寸法を作れる。
では、重ねたら厚さは呼び寸法の単純な和になるのか。密着面には、ごく薄い油膜や面の凹凸が残るはずだ。JIS はここをきれいに処理している。ブロックの寸法を「測定面上の点から、もう一方の測定面に密着させた基準平面までの距離」と定義し、注で寸法には密着のときに生じる密着層の厚さを含むと決めている(3 b) 注(1))。つまり密着層の分は、もともと1枚ずつの寸法の中に入っている。だから重ねた寸法は、呼び寸法の和として考えてよい。
なお、寸法は標準温度20℃で求めた値だ(9.3)。鋼のブロックは温度が上がれば伸びるので、手で長く握ったブロックはすぐには使わない。このツールの計算も20℃での呼び寸法の和で、温度による伸び縮みは含まない。
ブロックゲージ 組み合わせ 方法——112個組の5つの並び
組み合わせの考え方は、セットの中身を見ると分かりやすい。112個組(JIS の記号 S112)は、次の5つの並びでできている。
| 並び | 寸法 | 刻み | 個数 |
|---|---|---|---|
| 1個だけ | 1.0005 | — | 1 |
| 1.00x 系 | 1.001〜1.009 | 0.001 | 9 |
| 1.xx 系 | 1.01〜1.49 | 0.01 | 49 |
| 0.5mm 刻み | 0.5〜24.5 | 0.5 | 49 |
| 25mm 刻み | 25〜100 | 25 | 4 |
合計は 933.7955mm。小数第4位の 0.0005 を受け持つのは 1.0005 だけ、第3位は 1.00x 系、第2位までは 1.xx 系、残りが 0.5mm の倍数になったら 0.5mm 刻みと 25mm 刻みで埋める。細かい桁ほど担当のブロックが決まっているので、下の桁から消すと迷わない。これが教科書の手順の正体だ。
同じ理屈で、作れない寸法も見えてくる。0.0005mm で割り切れない寸法は、どのセットでも作れない。112個組でも、0.5 の次に薄いのは 1(ほかの1.xx 系はみな 1mm を超える)なので、0.7mm は作れない。1.0005 と 1.00x 系を持たない103個組では、20.0005mm のように 0.005mm 刻みに乗らない寸法が作れない。
たとえるなら、財布の小銭で決まった金額をぴったり払う話に近い。日本の硬貨なら、大きい硬貨から順に出せば枚数は最少になる。ところが硬貨の種類が 1円・4円・6円しかない国を考えると、8円を大きい順に払えば 6 + 1 + 1 の3枚、実は 4 + 4 の2枚で足りる。順番に決める手順が最少を保証するかは、硬貨の種類の並び方しだいだ。ブロックゲージはさらに、同じ寸法は1個ずつしか持っていない財布にあたる。4 + 4 のような同じブロックの2回使いはできない。
ブロックゲージ 等級——K・0・1・2級と寸法許容差 te
JIS B 7506 は精度でブロックを4つの等級に分ける(5. 等級)。0級・1級・2級は比較測定で校正する。K級は光波干渉で校正し、主にほかの等級のブロックの校正に使って、常に寸法検査表などに示した値で補正して使う。
各ブロックの呼び寸法からのずれの限度が寸法許容差 teで、呼び寸法の区分ごとに決まっている(表1)。100mm までを抜き出すと次のとおり(単位 ±µm)。
| 呼び寸法 | K級 | 0級 | 1級 | 2級 |
|---|---|---|---|---|
| 0.5以上 10以下 | 0.20 | 0.12 | 0.20 | 0.45 |
| 10を超え 25以下 | 0.30 | 0.14 | 0.30 | 0.60 |
| 25を超え 50以下 | 0.40 | 0.20 | 0.40 | 0.80 |
| 50を超え 75以下 | 0.50 | 0.25 | 0.50 | 1.00 |
| 75を超え 100以下 | 0.60 | 0.30 | 0.60 | 1.20 |
K級の te が1級と同じ値なのは誤植ではない。K級は補正して使う前提なので、呼び寸法からのずれの限度は1級並みでよく、その代わりに1個のブロックの中での寸法のばらつき(寸法許容差幅 tv)が厳しく決まっている。
もう1つ、セットの使い方として保護ブロックがある。JIS の附属書2は、ブロックの保護のために両端に密着して使う保護ブロックゲージを挙げ、その呼び寸法を 1mm と 2mm としている。重ねた束の両端は、ほかの部品や測定子が当たって傷みやすい。そこに保護用の2個を付けておけば、セットのブロックを守れる。もっと詳しい背景は Wikipedia の「ブロックゲージ」 にもまとまっている。
重ねる枚数が精度を決める——許容差の積み上がりと欠品の困りごと
ブロックを重ねると、1枚ごとの te が積み上がる。冒頭の 41.3275mm(1級・5枚)で見ると、1位の組 25 + 13 + 1.32 + 1.007 + 1.0005 の te を単純に足すと ±1.20 µm。同じ 41.3275mm を1個もののブロックで持っていれば、その te は ±0.40 µm で済む。5枚に分けたことで、最悪のずれの限度は3倍になった。
ただし、5枚のずれが全部同じ向きにそろうのは、むしろまれだ。各ブロックのずれが互いに無関係なら、二乗和平方根(√Σte²)で見積もる考え方があり、こちらは ±0.55 µm。単純和は「最悪こうなりうる」、二乗和平方根は「たいていこの程度に収まる」の目安で、検査の合否判定に余裕を見たいなら単純和、測定の不確かさを積み上げるなら二乗和平方根、と使い分ける。部品の寸法公差を同じ2つの方法で積み上げるなら、公差積み上げシミュレーター が同じ考え方で計算する。
等級による差も大きい。同じ5枚の組で、0級なら単純和 ±0.64 µm・二乗和平方根 ±0.29 µm、2級なら単純和 ±2.55 µm・二乗和平方根 ±1.15 µm になる。2級の5枚重ねの単純和は、1級の1個ものの6倍を超える。「2級のセットで作ったから ±1µm 以内」と思い込んでいると、それだけで判定を誤りかねない。
実務で効いてくるのが摩耗だ。1.xx 系や 1.00x 系の薄いブロックは、端数を消すためにほぼ毎回使われる。112個組の 41.3275mm でも、5枚のうち3枚が 1mm 台だ。出番の多いブロックほど早く摩耗し、等級から外れる。両端に 2mm の保護ブロックを付けて同じ 41.3275mm を作ると、セットから作るのは 37.3275mm になり、1位は 25 + 9 + 1.32 + 1.007 + 1.0005。保護ブロック2個を含めて7個を重ねるので、単純和は ±1.50 µm、二乗和平方根は ±0.57 µm になる。精度を少し払って、セットの寿命を買う形だ。
そして現場でいちばん困るのが欠品だ。校正に出している、落として傷を付けた、どこかへ行った。112個組の 1.47 が無い状態で 58.975mm を作ろうとすると、手順は 1.005 を取ったあと、残り 57.97mm で 0.5mm の倍数にできるブロックが無く、そこで止まる。最少の組は 50 + 5.5 + 1.46 + 1.01 + 1.005 の5枚で作れるが、手順だけを頼りにしていると、そこへたどり着くまでに試行錯誤が要る。欠品が無ければ4枚で済んだ寸法なので、1枚増える分の許容差も覚悟しておく必要がある。
測定室で手が止まる場面
ダイヤルゲージ・ハイトゲージの比較測定。 ワークの基準寸法をブロックゲージで作り、ダイヤルゲージの0点を合わせてから測る。基準寸法が図面どおりの半端な値だと、毎回組み合わせを考えることになる。最少の組と、そのときの許容差の合成が同時に分かれば、比較測定の基準として十分かをその場で判断できる。
治具の高さ合わせ・サインバー。 治具の段取りで、ある面からある面までを決まった高さに置きたいときや、サインバーの下に挟む高さを作るとき。サインバーの高さは三角関数から出すので、小数4桁まで細かい値になりやすい。セットで作れない寸法なら、上下でいちばん近い作れる寸法とその枚数が出るので、どちらに寄せるかを決めやすい。
1個が校正に出ていて使えないとき。 年に1回の校正で、セットの一部だけを先に出すこともある。欠品の欄に外したブロックを書いておけば、残ったブロックだけで作れる組と、欠品が無ければ何枚で作れたかが並ぶ。校正に出す前に、よく使う寸法が作れるかを確かめておく使い方もできる。
手元のセットが教科書の例と違うとき。 教科書や講習の例は 112個組や 103個組で書かれていることが多い。職場にあるのが 76個組や 47個組だと、例の手順をそのままなぞれない。76個組には 25mm のブロックが無く、47個組には 0.5mm 刻みの並びが無い。セットを選べば、そのセットの構成での最少の組と手順が出る。
基本の使い方——3ステップ
① 目標の寸法とセットを選ぶ。 作りたい寸法を mm で入れ、手元のセットを 112・103・87・76・56・47・32個組から選ぶ。セットを選ぶと、そのセットの構成が1行で表示される。欠品・校正中のブロックがあれば、その寸法を欠品の欄にカンマ区切りで書く(例「1.47, 24.5」)。セットに無い寸法を書いた場合は無視され、無視したことが注記される。
② 保護ブロックと等級を選ぶ。 保護ブロックは「なし」「1mm×2」「2mm×2」から選ぶ。保護ブロックを付けるときは、目標の寸法にそれを含めた全長を入れておく。ツールが2個分を引いた寸法をセットから作る。等級は K・0・1・2級から選ぶ。等級は許容差の合成にだけ使い、組み合わせは変わらない。
③ 結果を読む。 最少枚数と1位の組、教科書の手順で取った順の組とその枚数、許容差の単純和と二乗和平方根、同じ枚数で作れる組の数が表示され、同じ枚数の組が上位5件まで表に並ぶ。手順が最少より多いときや行き詰まるときは、その旨の注記が付く。作れない寸法では、目標より下でいちばん近い作れる寸法と、上でいちばん近い作れる寸法が、それぞれの枚数とともに表示される。
具体的な使用例——8ケースで手順と最少を比べる
ここからは、条件を変えた8ケースを順に見る。許容差は特に断りのない限り1級、保護ブロックはなしで計算している。
ケース1:112個組で 41.3275mm(手順どおりで最少)
- 入力:41.3275mm/112個組
- 結果:最少5枚、1位は 25 + 13 + 1.32 + 1.007 + 1.0005。同じ5枚の組は12通りで、2位以下は 24.5 + 13.5 + …、24 + 14 + … と、38mm の作り方だけが変わる。教科書の手順は 1.0005 → 1.007 → 1.32 → 25 → 13 の5枚。許容差は単純和 ±1.20 µm、二乗和平方根 ±0.55 µm、1個ものなら ±0.40 µm
- 解釈:手順と最少が一致する典型例。12通りの組はどれも端数の3枚(1.32・1.007・1.0005)が共通で、残り 38mm を2枚にどう分けるか(25 + 13 から 19.5 + 18.5 まで)が違うだけだ。どれかのブロックが摩耗していたら、表の別の組に乗り換えればいい
ケース2:112個組で 58.975mm(組は1通り)
- 入力:58.975mm/112個組
- 結果:最少4枚、組は 50 + 6.5 + 1.47 + 1.005 の1通りだけ。教科書の手順も 1.005 → 1.47 → 50 → 6.5 で4枚。許容差は単純和 ±1.00 µm、二乗和平方根 ±0.53 µm、1個もの ±0.50 µm
- 解釈:4枚で作れる組が1通りしかない。逆に言えば、この4個のどれかが欠けると4枚では作れなくなる。ケース5でそれを確かめる
ケース3:76個組で 90mm と 115mm(手順が1枚多い)
- 入力:90mm/76個組、115mm/76個組
- 結果:90mm は最少2枚の 50 + 40、教科書の手順は 75 → 10 → 5 の3枚。115mm は最少2枚の 75 + 40、手順は 100 → 10 → 5 の3枚。許容差は 90mm で単純和 ±0.80 µm・二乗和平方根 ±0.57 µm(1個もの ±0.60 µm)、115mm で単純和 ±0.90 µm・二乗和平方根 ±0.64 µm(1個もの ±0.80 µm)
- 解釈:76個組の大きいブロックは 10〜40(10mm 刻み)と 50・75・100 で、刻みがそろっていない。端数の無い寸法では手順は大きい順に取るだけなので、75 を取った時点で 50 + 40 の道が消える。端数が無いから手順で十分、とは限らない例だ
ケース4:56個組で 126.5mm(0.5 と 1.5 のどちらで消すか)
- 入力:126.5mm/56個組(ミツトヨの構成)
- 結果:最少3枚、1位は 100 + 25 + 1.5、2位は 75 + 50 + 1.5 の2通り。教科書の手順は 0.5 → 100 → 25 → 1 の4枚。許容差は単純和 ±1.10 µm、二乗和平方根 ±0.70 µm、1個もの ±0.80 µm
- 解釈:56個組で 0.5mm の端数を1個で消せるのは、0.5 そのものと 1.1〜1.9(0.1mm 刻み)の 1.5 だ。手順は端数を消す段で 0.5 を取り、残り 126 を 100 + 25 + 1 で埋める。1.5 で消しておけば残りは 125 で、100 + 25 の2枚で済む。端数を消す時点では、どちらが後で得になるかが見えない
ケース5:112個組で 58.975mm・1.47 が欠品(手順が行き詰まる)
- 入力:58.975mm/112個組/欠品 1.47
- 結果:最少5枚、1位は 50 + 5.5 + 1.46 + 1.01 + 1.005。5枚の組は26通りある。教科書の手順は 1.005 を取ったあと、残り 57.97mm で行き詰まる。欠品・除外が無ければ4枚で作れる、と注記が出る。許容差は単純和 ±1.20 µm、二乗和平方根 ±0.57 µm
- 解釈:ケース2の4枚の組が 1.47 に頼っていたので、それが無いと4枚では作れない。0.47 を 1.46 + 1.01 に分け、その分 6.5 を 5.5 に下げて帳尻を合わせている。手で探すと気づきにくい組だ
ケース6:1.0005 を外した112個組(111個組)で 41.3275mm(作れない)
- 入力:41.3275mm/112個組/欠品 1.0005
- 結果:作れない。下側でいちばん近い作れる寸法は 41.327mm(4枚)、上側は 41.328mm(4枚)。欠品・除外が無ければ5枚で作れる
- 解釈:JIS には、112個組から 1.0005 を除いて111個組にしてよいという注がある。0.0005mm の桁を消せるのは 1.0005 だけなので、それを持たないセットでは 0.0005mm が端数に残る寸法は全部作れない。上下どちらも 0.0005mm 離れていて枚数も同じなので、測定の向きに合わせて選べばいい
ケース7:ケース1に 2mm の保護ブロックを付ける
- 入力:41.3275mm(保護ブロックを含む全長)/112個組/保護ブロック 2mm×2
- 結果:セットから作るのは 37.3275mm で、最少5枚、1位は 25 + 9 + 1.32 + 1.007 + 1.0005。同じ5枚の組は16通り。教科書の手順も 1.0005 → 1.007 → 1.32 → 25 → 9 の5枚。保護ブロック2個を含めた7個で、許容差は単純和 ±1.50 µm、二乗和平方根 ±0.57 µm
- 解釈:端数の3枚はケース1と同じで、13 が 9 に替わっただけ。重ねる数は2個増えるが、二乗和平方根で見た増え方は ±0.55 µm → ±0.57 µm と小さい
ケース8:112個組で 10.0003mm(0.0005mm で割り切れない)
- 入力:10.0003mm/112個組
- 結果:作れない。下側は 10mm(1枚)、上側は 10.0005mm(2枚。9 + 1.0005)
- 解釈:セットのどのブロックも 0.0005mm の整数倍なので、0.0005mm で割り切れない寸法はどう重ねても作れない。図面の値をそのまま写したときや、換算で端数が出たときに起きる。下側なら1個もので済む
8ケースの範囲では、手順と最少が食い違ったのは、76個組・56個組のように刻みのそろわないセットと、欠品で手順が頼る1個が欠けたときだった。
仕組み・アルゴリズム——最少を保証する動的計画法と、教科書の手順の定義
候補の比較:総当たり・全体の DP・2つに分けた DP
ブロックゲージの組み合わせは、各ブロックを1回だけ使って目標の和を作り、使う個数を最小にする問題だ。硬貨の両替問題(Change-making problem)の、各硬貨が1枚ずつしかない版にあたる。上で見たとおり、下の桁から消す手順(貪欲法)は最少を保証しない。
保証する方法として、まず総当たりがある。ただ、112個組から5枚を選ぶ組は C(112,5) = 134,153,712 通り、約1.3億ある。6枚、7枚と増えればさらに膨らむ。
次の候補は動的計画法(DP)だ。寸法を 0.0005mm=1単位の整数にすると、「先頭 i 個のブロックで和 v を作る最少枚数」を表にできる。ただし112個組を丸ごと1つの表にすると、合計 933.7955mm で 1,867,592 列 × 112 行になり、ブラウザで持つには重い。
そこで、ブロックを2つに分けた。0.5mm の倍数のブロック(0.5〜24.5 と 25〜100 の53個、合計 862.5mm)は 0.5mm を1単位に数えれば 1,726 列で済む。残りの細かいブロック(1.0005・1.00x 系・1.xx 系の59個)の合計は 71.2955mm で、0.0005mm 単位でも 142,592 列に収まる。ある組の和は「細かい側の和 v + 粗い側の和」で、粗い側は必ず 0.5mm の倍数になる。だから v は目標と 0.5mm で同じ余りになるものだけ(最大143通り)を調べれば、最少が出る。この分け方で出した最少枚数は、分割しない全体の DP と、7セットのランダムな3,000値ずつ(計21,000値)で全部一致した。
計算フロー
// 1単位 = 0.0005mm
E = round((T − 2 × w) × 2000) // 保護ブロック2個を引いた寸法
fine = 0.5mm の倍数でないブロック // 細かい側
coarse = 0.5mm の倍数のブロック ÷ 1000 // 粗い側(0.5mm = 1)
F[i][v] = 細かい側の先頭 i 個で和 v を作る最少枚数(作れなければ 255)
G[j][k] = 粗い側の先頭 j 個で和 k を作る最少枚数
minCount = min over v ≡ E (mod 1000): F[nf][v] + G[ng][(E − v) / 1000]
// 最少を与える v ごとに、F と G を「使う/使わない」の両方でたどって全解を列挙
// 細かい側 × 粗い側の直積が、最少枚数の組の全部
表の行を全部残しておくのは、最少の組を数え上げるためだ。i 番目のブロックについて、使った場合 F[i−1][v−w] = c−1、使わない場合 F[i−1][v] = c のどちらが最少を保つかを見て、保つ側だけを再帰でたどれば、最少の組を漏れなく集められる。こうして数えた組の数は、別に組んだ「ちょうど k 個で和が T になる組の数」の DP と、検証用の全ケースで一致した。5セット × 300値で数えた最大は 32個組の231通り(112個組は最大76通り)で、全部並べてから順番を決めても軽い。
同じ枚数の組の並べ方は、大きい順に並べたブロック列を先頭から比べ、大きいほうを上にする。精度の優劣ではなく、順番を一意に決めるための規則だ。
教科書の手順を、このツールではこう定義した
比較に使う「教科書の手順」は、よく紹介される「下の桁から消す」手順を、このツールでは次のように決めたものだ。セットごとに寸法の段階(112個組なら 0.001・0.01・0.5mm)を持ち、細かい順に見ていく。
- 残りがそのまま手元の1個なら、それを取って終わる
- 残りが倍数になっていない最初の段階 M について、引いた残りが M の倍数になるブロックを取る。候補が複数あれば、倍数になる段階がいちばん上まで続くもの、それも同じなら引いた残りがそのまま手元の1個になるもの、それも同じなら小さいものを選ぶ
- 全段階の倍数になったら、残り未満で最大のブロックを取る
- 取れるものが無ければ行き詰まり
ケース2の 58.975mm(112個組)で追うと、こうなる。
58.975 は 0.001 の倍数だが 0.01 の倍数でない → 1.005 を取る → 残り 57.97
57.97 は 0.5 の倍数でない → 1.47 を取る → 残り 56.5
56.5 は全段階の倍数 → 50 を取る → 残り 6.5
6.5 は手元の1個 → 6.5 を取る → 残り 0(4枚)
DP 側から見ると、この4枚は細かい側の和 v = 1.47 + 1.005 = 2.475 と、粗い側の和 56.5 = 50 + 6.5 の組だ。
この定義で 0.5〜250mm の作れる全値を総当たりで比べると、112・103・87・47個組は全値で手順どおりが最少と同じ枚数だった。76個組は 90・115・125・165・190mm の型(端数を付けた値も含めて計500値)で、56個組は 126.5・151.5・176.5・201.5・226.5mm の型(計500値)で、手順が1枚多い。32個組は合計 188.955mm に近い寸法で大きいブロックを使い切って行き詰まる。たとえば 166mm では、手順が 60 → 30 → 20 → … → 2 → 1.9 と大きい順に取り進め、残り 0.1mm で止まる。最少は 60 + 30 + 20 + 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 1.9 + 1.1 + 1 の14枚だ。欠品があれば、手順が頼りにする1個が無くなった時点で行き詰まる(ケース5)。
許容差の合成と計算時間
組み合わせた寸法の呼び寸法からのずれは、各ブロックのずれの和になる。最悪は te の単純和 Σte、各ブロックのずれが独立なら二乗和平方根 √Σte²。1位の組の各ブロックと、保護ブロックがあればその2個について、呼び寸法の区分と等級から te を引いて合成する。
// ケース1(1級): 25, 13 → 0.3µm / 1.32, 1.007, 1.0005 → 0.2µm
Σte = 0.3 + 0.3 + 0.2 + 0.2 + 0.2 = 1.2 → ±1.20 µm
√Σte² = √(0.09 + 0.09 + 0.04 × 3) = √0.30 → ±0.55 µm
計算時間は、Node での実測(3回の最小値)で、112個組の表の構築が約9ms、32個組で約1ms。表はセットと欠品の組み合わせごとにキャッシュし、目標・保護ブロック・等級を変えても作り直さない。表ができていれば、作れる寸法を打ち替えたときの1回の計算(最少の組の列挙と並べ替え、教科書の手順、許容差の合成まで)は1ms に満たない。いちばん時間がかかるのは作れない寸法の上下を探すときで、欠品をたくさん入れて探す区間が長くなる配置をわざと作っても、表の構築込みで40ms 前後だった。
ブロックゲージ 組み合わせ 計算ツールとしての違いと、関連ツールとの分担
英語の計算ページの事情は冒頭の「なぜ作ったのか」で触れたとおりで、見かけた範囲では「Gauge Block Calculator: Stack & Calculate」という同じ題名のページが無関係なドメインにいくつも並んでいた。すべてを試せてはいないので、ここではこのツールが何をするかを事実として並べる。
- 最少を確かめてから出す: 最少枚数を動的計画法で探したうえで、教科書の手順の結果を横に並べる。手順だと1枚多くなるのか、途中で行き詰まるのかが同じ画面で分かる
- 同じ枚数の別の組: 最少の組が何通りあるかを数え、上位5件まで並べる
- 欠品・校正中のブロック: 外したブロックを使わずに探し直し、外したせいで枚数が増えたなら、外さなければ何枚だったかも出す
- 保護ブロックと等級: 両端の保護ブロックの分を差し引いて探し、JIS B 7506 の等級ごとの寸法許容差を合成する
- 作れない寸法: 0.0005mm で割り切れない、セットの刻みに乗らない、といった寸法でも、上下で作れる寸法とその枚数を返す
- JIS のセット: 附属書にある 112・103・76・47・32個組と、ミツトヨの 87・56個組を持つ。見かけた英語のページには 88個組やインチの 81個組を前提にしたものがあった。88個組は JIS の附属書に載っていない欧州向けの構成だ
関連ツールとは、扱う「寸法の段」で分担している。部品を何個も積んだときの寸法のばらつきをワーストケースと二乗和平方根で積み上げ、干渉するかを判定するのは公差積み上げシミュレーターの担当。考え方はこのツールの許容差の合成と同じだが、こちらは「どのブロックを重ねるか」を決めるところまでを受け持つ。図面に公差の書かれていない寸法の許容差を JIS B 0405・B 0419 で引くなら普通公差の一括計算ツール、穴と軸の公差域はJIS はめあい検索ツールで引く。検査の合否幅をそちらで決め、その寸法をブロックゲージで作って測定器の基準にする、という順番で使うと流れがつながる。幾何公差のボーナス公差や実効寸法は最大実体公差/ボーナス公差計算機、測定の基準面をどう取るかはデータム設定アシスタントが扱う。
ヨハンソンの箱と、国で中身が違う「47個組」
「ジョーブロック」という呼び名
ブロックゲージは英語圏で Jo blocks(ジョーブロック)とも呼ばれる。スウェーデンの機械工カール・エドヴァルド・ヨハンソン(C.E. Johansson)が1896年に考え、1901年にスウェーデンで「精密測定用のゲージブロックのセット」として特許を得たのが始まりだ(Carl Edvard Johansson - Wikipedia、Gauge block - Wikipedia)。数十個の箱から数枚を選んで重ねれば決まった刻みの長さを何でも作れる、という仕組みそのものが彼の発明で、「箱の中身をどう組むか」という問いはブロックゲージが生まれたときから付いて回っている。アメリカで最初にセットを買ったのはキャデラックのヘンリー・リーランドで、1908年ごろだという。1923年にはヨハンソンのアメリカの会社をフォードが買い取り、本人もフォードで働いた。
インチの話も面白い。1910年代、米国と英国のインチは定義がわずかに違っていた。ヨハンソンは1912年にインチ系のブロックを作り始めるとき、1インチを 25.4mm(20℃)として作った。どちらの国の定義とも数ppmしか違わないこの妥協が工場の事実上の標準になり、英国では1930年、米国では1933年に業界団体が工業用インチを 25.4mm と定めた。1959年の国際協定でインチが 25.4mm に統一されたのは、現場がすでにそうしていたのを追認した形だ。
欧州の88個組と、中身の違う47個組
ミツトヨの欧州向けの製品シート(Series 516 Metric Gauge Block Sets(PDF))には、日本のカタログで見かけないセットが載っている。88個組は 1.0005・1.001〜1.009・1.01〜1.49・0.5〜9.5・10〜100 で、87個組に 1.0005 を1個足した構成だ。紛らわしいのは 47個組のほうで、欧州の47個組は 1.005・1.01〜1.19(0.01刻み)・1.2〜1.9(0.1刻み)・1〜9・10〜100(10刻み)。JIS の S47 は 1.005・1.01〜1.09・1.1〜1.9・1〜24・25〜100 だ。個数は同じ47でも、1.1台を0.01刻みで持つか、1mm刻みを24まで持つか、大きい側を10刻みにするか25刻みにするかが違う。英語の解説にある「47個組の例題」は、手元の箱で同じように組めるとは限らない。このツールには欧州の2種を入れていない。
JIS の表の小さな注 — S111・S32・末尾の P
JIS B 7506 の附属書2(参考)にあるセットの表には注が付いている。まず、S112 から 1.0005 を除いて S111(111個組)としてもよい。0.0005mm の端数専用の1個を省いた構成で、このツールでは欠品の欄で再現できる(使用例の 1.0005 を外したケースがそれにあたる)。次に、S32 は 60mm の代わりに 50mm でもよい(ツールは 60mm で持っている。50mm 入りの箱での扱いは下のよくある質問に書いた)。そして備考として、セットに保護ブロックゲージ2個を加えたものは、セット記号の末尾に P を付ける。保護ブロックの呼び寸法は 1mm と 2mm だ。なお附属書2 は「規定の一部ではない」参考の附属書で、セットの構成は JIS が決めた義務ではなく、よく使われる組み合わせの目録という位置づけになっている。
ブロックゲージを重ねるときの現場のコツ
- 薄いブロックは厚いブロックに先に付ける: 1.xx 系の薄いブロックは単独だと反りやすく、薄いもの同士を直接密着させると曲げたまま付いてしまうことがある。厚いブロックに薄いものを先に密着させ、そこへ順に重ねていくと安定する
- 使い終わったら外して防錆する: 密着させたまま長く置くと固着しやすい。測り終わったらすぐ外し、測定面を拭いて防錆油を薄く塗ってから箱に戻す
- 握りっぱなしにしない: 100mm 級を素手で握ったままにすると、体温による伸びが等級の許容差と同じくらいの大きさになることがある。手袋や木の台を使い、重ねたあとは少し置いて温度をなじませる
- 別の組で摩耗を散らす: 112個組で端数のある寸法を入れると、上位の組の違いは 0.5mm 刻みの側に集まりやすい。毎回1位の組ばかり使わず、2位以下の組も回して使うと、厚い側のブロックの摩耗が偏らない
ブロックゲージの組み合わせ計算 よくある質問
112個組でも作れない寸法があるのはなぜ?
刻みに乗らない寸法と、薄い側にすき間がある寸法の2種類がある。0.0005mm で割り切れない寸法は使用例で扱ったとおりどのセットでも作れない。もうひとつは 1mm 未満で、112個組で 1mm より薄いのは 0.5mm の1個だけなので、0.7mm を入れると下が 0.5mm(1枚)、上が 1mm(1枚)と返る。47個組ではいちばん薄いのが 1mm なので、同じ 0.7mm で下側の寸法そのものが無い。また 103個組は 1.0005 も 1.001〜1.009 も持たないので刻みが粗く、20.0005mm は作れず、下が 20mm(1枚)、上が 20.005mm(2枚)になる。
K級と1級で許容差の表示が同じになるのはなぜ?
理由は「ブロックゲージの基礎」の等級の節で説明したとおりで、JIS B 7506 の表1 で K級の寸法許容差 te が1級と同じ値だからだ。このツールには補正値(実測値)を入れる機能が無いので、K級を選んでも出るのは補正しないで使ったときの目安で、その旨の注記が出る。補正して使うなら、寸法の確かさは校正の不確かさから自分で見積もってほしい。
単純和と二乗和平方根のどちらを使えばいい?
使い分けの目安は「実務での重要性」の節で書いたとおり。2つの差が開くのは枚数が多いときで、112個組で 345.6785mm を作ると11枚になり、1級で単純和 ±3.60µm、二乗和平方根 ±1.16µm、同じ呼び寸法の1個ものは ±1.80µm になる。同じ箱のブロックは誤差の向きがそろうこともあるので、迷ったら単純和で見ておくほうが安全側だ。
手元の32個組は 60mm ではなく 50mm が入っている。どうすればいい?
JIS は S32 の 60mm を 50mm にしてもよいとしているが、ツールのセットは 60mm で持っている。50mm を足す機能は無いので、まず欠品の欄に 60 を入れて 60mm を使わない組を探す。50mm を使う組も比べたいときは、目標から 50 を引いた寸法を、同じく 60 を外したまま入れ、出てきた組に 50mm を1枚足して数える。両方のうち枚数の少ないほうを使えばよい。60mm を外すと使えるブロックの合計は 128.955mm になるので、それより長い寸法では前者が「合計を超える」と出る。そのときは後者だけで探すことになる。
インチのセットや欧州の88個組は選べる?
いまは選べない。インチのセット(81個組など)は単位の刻みが違ううえ、許容差の表も JIS ではなく ASME B89.1.9 を引くことになるので、同じ画面に混ぜると取り違えのもとになる。欧州の88個組は豆知識の節で触れたとおり87個組に 1.0005 を足した構成なので、87個組を選び、結果に 1.0005 が要らないかを見る使い方で近い答えが得られる。
入力した寸法や欠品の情報はどこかに送られる?
送られない。最少枚数の探索も教科書の手順も許容差の合成も、すべて閲覧しているブラウザの中で計算している。目標の寸法、欠品として書いたブロック、選んだ等級をサーバーへ送ることはないので、社内の測定器の管理状況や検査寸法を入れても外に出ない。ページを読み込んだあとは計算のために通信しないので、電波の弱い測定室でも結果が出る。
まとめ — 何枚で、どの組で、どれだけずれうるか
ブロックゲージの組み合わせは、最少の枚数、同じ枚数の別の組、教科書の手順との差、欠品したときの代わり、許容差の合成まで一度に見ると段取りが速くなる。重ねた寸法を部品の寸法チェーンとして積み上げるなら公差積み上げシミュレーター、検査の合否幅は普通公差の一括計算ツールとJIS はめあい検索ツール、幾何公差は最大実体公差/ボーナス公差計算機、測定の基準面はデータム設定アシスタントと組み合わせて使ってほしい。
手元のセットの構成が違う、こんな寸法で手順が詰まった、といった声はお問い合わせページから気軽に送ってほしい。
Mahiro
Mahiro Appの開発者。76個組で 90mm を作るとき、教科書どおりに 75 から取ると3枚になるのに 50 + 40 なら2枚で済むと気づいたのが、最少枚数を総当たりで数えるこのツールを作るきっかけだった。
運営者情報を見る