ドナドナされるプログラマのメモ

Windows用アプリのプログラミングメモ

L4カー ディスタンスカー 完成(仮)

f:id:donadonasan:20180823213309p:plain

L4カー ディスタンスカー(仮)

ディスタンスカー、仮完成。特徴は末端にあるスカート及びメタローチと、中央にある回転灯?ぐらいか。ケーブルの本数が左右非対称なんだけど、状態がよくわからないのでとりあえず1本ずつ書いて仮完成。


L4カー ディスタンスカー(作りかけ)

f:id:donadonasan:20180822224356p:plain

L4カー ディスタンスカー 作りかけ

ディスタンスカー、目立った役割が貨車の検知ぐらいしかないのに、妙に複雑な構造が多い。特に、上記画像手前のケーブルホルダーとか。なんでもっと素直な実装にできないのか、小一時間問い詰めたい。今日はここまで。

コントロールカー完成

コントロールカー、完成。特徴が無い。

f:id:donadonasan:20180820233745p:plain

L4カー コントロールカー

あえて特徴を挙げるなら、中央にプレスされた「全車踏付禁止」の文字くらいか?

f:id:donadonasan:20180820234135p:plain

全車踏付禁止。天板は薄いのである。

全長3950mm, メタローチ(非接触近接センサ)を2組と、制御ドライバが入っている制御箱、マイコン?が入っている論理部から成る。メタローチの背面モデリングは未完成。写真がなかった。

平行ではない、かつ交わらない線を滑らかに繋げる簡易的な方法

f:id:donadonasan:20180819130600p:plain

モデリングをしていると、平行ではない、かつ交わらない(つまり、ねじれの位置にある)2本の線をなめらかにつなげる曲線を描きたくなる。たとえば、柔らかいケーブルを2点間でつなげる場合だ。検索の仕方が下手なのか、どうやればいいのか解説しているページがなかったので独自にやり方を考えてみた。

f:id:donadonasan:20180819131444p:plain

 

滑らかに繋げる の定義

「滑らかに繋げる」の条件を定義する。円弧と直線が滑らかにつながる条件は、円弧のもととなる円と直線が接すること。これを描き方で言い換えると、「円弧の中心点が直線の端部から円弧の半径の距離にいること」となる。

2本の平行な直線を滑らかに繋げる場合

2本の平行な直線を滑らかにつなげたいならば両者の中間に円弧の中心を置き、半円を描いてつなげれば、少なくとも滑らかにはつながる。

2本の交わる直線を滑らかに繋げる場合

f:id:donadonasan:20180819133343p:plain

平行ではないが延長すると交わる直線の場合は、以下の手順で滑らかに繋げることができる。

1. 直線を延長し、交点を見つける。

f:id:donadonasan:20180819135453p:plain

2. 交点を中心とした円を描き、直線と交点までの距離を確認する。

f:id:donadonasan:20180819135646p:plain

3. 等距離でない場合は、遠い方を延長して等距離にする。

f:id:donadonasan:20180819135904p:plain

4. 垂直二等分線を描くため、両端を結ぶ直線を描く。(円は邪魔なので消しました)

f:id:donadonasan:20180819140045p:plain

5. 交点から直線の中点へと線を描く(これが垂直二等分線)。円弧の中心はこの直線上にある。必要に応じて延長する。

f:id:donadonasan:20180819140423p:plain

f:id:donadonasan:20180819140525p:plain

5. 直先端部と垂直な直線が垂直二等分線と交わる場所が、円弧の中心となる。

f:id:donadonasan:20180819140848p:plain

ちなみに、SketchUp!だと2点円弧を選べば上記4, 5は不要である。

f:id:donadonasan:20180819133637p:plain

2本の平行ではなく交わらない(ねじれの位置にある)直線を滑らかに結ぶ場合

 本題である。この条件では、両方の直線に対し同時に直角となる円弧は存在しない。多分。何しろ、円弧を描くには両直線が乗っている平面が必要なのだが、これが描けないのだ。そこで、2個の円弧で繋げることにする。

1. まず、両直線を繋げる。

f:id:donadonasan:20180819142436p:plain

2. 一方の直線と、今作った直線を使って直角三角形を作る。これが1つ目の円弧が乗る仮の平面となる。

f:id:donadonasan:20180819142406p:plain

直角三角形の直角な直線同士に接するように円弧を描く。

f:id:donadonasan:20180819142647p:plain

あとで回転しやすくするため、円弧及び一部平面以外を消す。このとき、円弧につながる直角三角形の辺の一部を残したほうが、後の作業がやりやすくなる。

f:id:donadonasan:20180819143741p:plain

試しに先ほど残した辺の一部を延長すると、直線端部と交わっていることがわかる(そこに線を伸ばしたんだから当たり前であるが)。

f:id:donadonasan:20180819144022p:plain

ここまでくれば、「2本の交わる直線を滑らかに繋げる」と同じ手法が使える。ただし、このままでは半径0の円弧でつなぐことになるので、先程作った円弧を好みに応じて角度を変える。円弧を作ったときの直線を中心に回転させれば、円弧と直線の滑らかな接続を維持できる。

f:id:donadonasan:20180819144337p:plain

下記は結果の一例。

f:id:donadonasan:20180819144746p:plain

f:id:donadonasan:20180819145143p:plain

 

ブレーキカー更新

 今日は、各コンポーネント内にあったゴミデータを掃除した。

ブレーキカーについては、車高の変更と機器の装着をした。ちなみに、黄色いのはメタローチという装置だそうだ。聴いたこと無いものだったので調べたら、メタル+アプローチの合成語で昔日立が使っていた商標の模様。要するに金属の接近を検知する近接センサである。こいつで貨車の車輪が近づいたことを検知するみたい。

今日はここまで。明日はブレーキの詳細を作る予定。

f:id:donadonasan:20180816235156p:plain