POV-Rayをもっと活用してリアルな完成イメージ図を得るEagle3Dって何だっけ?Eagle3Dは、EAGLEで設計した基板データから写真で撮影したようなリアルな3次元CG画像を作る事のできるツールです。実際に基板製造をする前に完成イメージ図が得られますので、好んで使用しています。リアルな3次元CG画像を得るためには3次元モデルが欠かせませんが、EAGLEに標準で添付されているライブラリの多くに対応しているのもEagle3Dが人気の理由の一つになっています。裏を返すと、標準で添付されていないような自作ライブラリなどの部品は、生成された3次元CG画像に含まれないことになります。何を隠そう私も先日まで「面倒だなぁ。」とか「良いんですよ、基板の感じが掴めれば。」とか思う事にして、自作ライブラリに対するケアは全くしていない状態でした。自作ライブラリだけ歯抜けになっているとかっこ悪いので、「部品を載せない」設定にして出力です。以下のように何か足りない寂しい出力になっていたわけです。四角や丸の多い電子部品の3次元モデル。POV-Rayのスクリプトを実装するのもそんなに難しいはずがありません。基板だけの出力に甘んじている現状にも我慢できなくなってきたので「もっと活用してリアルな完成イメージ図を得る」という目標を立てて実践する事にしました。Eagle3Dの処理構成Eagle3Dの処理構成についておさらいしてみましょう。大まかにみると2段階の構成になっていて、EAGLE上でPOV-Rayで実行するレンダリング用スクリプトファイルを生成し、POV-Rayで実際にレンダリングを実行するという形になっています。整理するとEAGLE側:部品のパッケージ名とレンダリング処理の関連付け。POV-Ray側:レンダリング処理の実行。コンポーネントの追加EAGLEEagle3Dを展開するとulpディレクトリがあります。この中にある3dusrpac.datというファイルがユーザパッケージ情報を定義することのできるファイルとして用意されています。ここにパッケージ名とレンダリング処理を関連付けるための記述を1行追加します。A-551UB:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:DIODE_LED_7SEG_A551UB(::上記の場合、「A-551UB」というパッケージと「DIODE_LED_7SEG_A551UB」というレンダリング処理が関連付けられた事になります。これでEAGLE側の準備は完了です。Eagle3DのULPを実行してPOVファイルを生成します。POV-RayPOV-Ray側は指定されたレンダリング処理に対する実装が必要です。Eagle3Dを展開したディレクトリにあるe3d_user.incがユーザ拡張用に設けられたファイルです。先ほどDIODE_LED_7SEG_A551UBというレンダリング処理と結びつけたので、ここにマクロとして実装します。ピンオブジェクトを定義する。