2015年6月24日水曜日

CAD遊び:平行四辺形に内接する楕円? (PART-I)

意味不明なタイトルですみません(笑)。

幾何学(高校数学レベル)と製図のお話ですので、興味の無い方はお引き取り下さい(笑)。

2D CADで傾いた楕円を描く必要に迫られました。具体的に言えば、下図の右に描いた俯瞰図の「3の面」と「5の面」の楕円をどう描くか? です。

※本当に必要だった絵は違う物なのですが、ここでは説明用に別の図を載せています。

図1:サイコロの2D図面

※左が三面図ならぬ六面図、右が俯瞰図;製図法(投影の技法)を習っていれば難しくない作業なので、俯瞰図の描き方の詳細は省略します。この俯瞰図、水平面内で「3の面」から30°傾いた方向、水平面から30°上方…という視点から見た絵となっていて、キチンとスケールしています。(なお、コレは比較的シンプルな例ですが、投影点が増えると頭がウニになりそうな目に遭います。/笑)

ここで困ったチャンなのが、「3の面」や「5の面」の“目”の作図。ただの縦長でも横長でも無いのですよね。軸が傾いた楕円になっています。しかもこの軸が、図面から読み取れない…。

※もしかしたら、このテの楕円を描く技法が存在するのかも知れませんが、ワタシは(一応工学系ですが)建築・土木・機械系ではないので、突っ込んだ製図法って習っていないんですよね。

そこで対策を考えます。
  1. 3D CADで製図して2Dデータをエクスポートする
  2. 2D CADの作図機能をフル活用して傾いた楕円を作図する
  3. 頑張って数値計算してパラメタ入力により傾いた楕円を作図する
1.ですが、私物PCに入れてある3D CAD (無償版)は2Dデータをエクスポート出来ないので、却下です。SolidWorks等の高価な業務用3D CADでは2Dデータがエクスポート出来ます…が、作られるのは「楕円」のデータではなく、「短い線をたくさんつないだ線の集合」になってしまいます(最新版SolidWorksでどうなのかは知りませんが)。…って、そもそも今回は目的が私用なので、会社のCADマシンとか使ってこういうことをしてはイケマセンてば(笑)。

図2:コレを2Dデータ出力出来れば文句無しなのですが。

2.について。元の円に外接する正方形って、俯瞰図にした時に平行四辺形になっているダケなんですよね。これなら、平行四辺形に内接する楕円を描けば良いだけの話です。

…でも、(最新版のAutoCADにはこの作図機能があるようですが…ってコレも高価な業務用2D/3D CAD)ワタシの私物PCに入れてある2D CAD (無償版)ではコレが出来ません。

図3:円に外接する正方形は、俯瞰図では平行四辺形(紫色の線)

ちなみに。Web検索もしてみましたが、高機能(で高価な)CADソフトの作図機能に頼る以外、ズバリ正解と思える作図法は見つかりませんでした。ワタシの検索が不充分なダケかも知れませんケド。単に「平行四辺形に内接する楕円」と言っても、色々あるんですよね。ワタシが描きたいのは、平行四辺形の四辺の中点に内接する楕円(下図では緑色の楕円が正解、赤い楕円も青い楕円もNG)

図4:平行四辺形に内接する楕円は1つではない

Web検索しても分からないなら自分で考えなさい、ってことで今回の話に至ります(専門書籍に当たるより自力で考えた方が早いのでは…と考えたのですが、これは非常に甘い見通しでした/汗)。

ともかく。以上のような訳で、最終手段。3.です。平行線とか垂線とかの補助線を使って作図するのが正道、図面から採寸した値を使って計算した結果を使って作図するのは邪道、という考え方もあります。でも、今回は私用目的なので(CAD図面をキレイに描きたいダケだったりして/笑)、コレで充分。

さて、ここから高校数学の時間です。

図5:平行四辺形と楕円のパラメタの定義

平行四辺形をx=±pとy=kx±qとで囲まれた領域とし、各辺の中点に内接する楕円の軸長をa及びb、楕円の傾斜角をθとし、p・q・kからa・b・θを求めます。

過程なんか書いてもしょうがないので結果だけ書きますが、この計算、で~りゃ~大変でした。作図(手描き)や検算も含めると、A4レポート用紙20枚くらいの計算量。こういう作業は理系の若い奴に任せて、オッサンは大人しくしている方が良いと痛感しました(笑)。

で。結果。
  • θ=1/2×atan(2k/(1-k^2-(q/p)^2))
  • a=p×sqrt(1+k×tanθ)
  • b=p×sqrt(1-k÷tanθ)
です。atanは三角関数tan(正接)の逆関数、sqrtは平方根(ルート、√)です。あとは、これをExcelさんに計算して貰って、CADにパラメタ入力。無事、図3の傾いた楕円(「3の面」と「5の面」の目)を描くことが出来ましたとさ。

※図3、サイコロの辺(稜線)をフィレット(丸面取り)しているので、実はサイコロの各頂点の部分の作図にも手間が掛かっています。

図6:MS-Excelで計算させているところ。
入力パラメタに合わせて右の絵がピコピコ動きます。

入力したp・q・kによってはθがマイナス(負の値)になることもありますが(Excelのatan()関数の値域による)、2D CADでのオブジェクトの回転作業をする上で、特に不都合は無いでしょう。

この結果、自由に使って頂いて構いません(ワタシにとっては考え方とその過程の方が重要ですし、同じような結果は他にも出している人がいらっしゃるでしょう)。結果については無保証ですが(笑)、ソコソコ実用性はあるんじゃないかな?

・  ・  ・  ・  ・

…な~んてコトをやっているから、ブログ更新が滞るんだってばぁ(笑)。

0 件のコメント:

コメントを投稿