作成2015.12.11
Processingの3D機能を利用して3D機械製図への応用を検討してみたいと思います。
- 3Dサンプル(sketch_3D_My_OB1_3)ポール完成図
3Dサンプル(sketch_3D_My_OB1_3)ポール完成図を以下に示します。
- sketch_3D_My_OB1_3タグのスケッチ
sketch_3D_My_OB1_3タグのスケッチは以下となります。
//sketch_3D_My_OB1_3
My_OB01 OB01;//使用クラスの定義
void setup()
{
size(600, 800, P3D);
OB01=new My_OB01();//My_OBクラスのオブジェクトを生成
}
void draw()
{
background(255, 255, 255);
lights();
ortho(-width/2, width/2, -height/2, height/2); // Same as ortho()
translate(width / 2, height / 2);
rotateY(map(mouseX, 0, width, -PI/1, PI/1));
rotateX(map(mouseY, 0, height, PI/1, -PI/1));
//noStroke();
strokeWeight(1);
fill(255, 255, 255);
scale(0.4,0.4,0.4);
OB01.OB01_01();//ユニット01-項番01
}
(1)上記スケッチにおいて、画像を発生するコードはOB01.OB01_01();です。
(2)OB01.OB01_01();には引数が無く固定データです。
(3)OB01はユニット名です。
(4)_01は項番です。
- My_OB01タグのスケッチ
My_OB01タグのスケッチは以下となります。
class My_OB01 extends My_OB
{
void OB01_01()//ユニット01-項番01
{
pushMatrix();
translate(0,744);
OB01_01_1();
popMatrix();
pushMatrix();
translate(0,-6);
OB01_01_2();
popMatrix();
pushMatrix();
OB01_01_3();
rotateY(90*PI/180);
OB01_01_3();
rotateY(90*PI/180);
OB01_01_3();
rotateY(90*PI/180);
OB01_01_3();
popMatrix();
}
void OB01_01_1()//ユニット01-項番01-品番1
{
//void STD_02(float W,float T,float L,float R)//STD_02)ベース
STD_02(300,12,240,9);//STD_02ベース
}
void OB01_01_2()//ユニット01-項番01-品番2
{
pushMatrix();
rotateX(90*PI/180);
//void Z_Bar(float r,float L)//Zバー
Z_Bar(38.15,1488);
popMatrix();
}
void OB01_01_3()//ユニット01-項番01-品番3
{
int Pn=5;//ポイント数
float[] X={38.15,38.15,98.15,48.15,38.15};
float[] Y={168,738,738,168,168};
float L=6;
//void Z_Polyon_Plate(int Pn,float X[],float Y[],float L)//多角形板
Z_Polyon_Plate(Pn,X,Y,L);
}
}
(1)上記スケッチにおいて、My_OB01クラスはMy_OBクラスを継承します。
(2)void OB01_01()で品番1、品番2、品番3を合成します。
- My_OBタグのスケッチ
My_OBタグに以下のスケッチを追加しました。
class My_OB
{
void Z_Polyon_Plate(int Pn,float X[],float Y[],float L)//多角形板
{
pushMatrix();
//void Z_Side(int Pn,float X[],float Y[],float L)//側面
Z_Side(Pn,X,Y,L);
translate(0,0,-L/2);
//void Z_Polyon(int Pn,float X[],float Y[])//多角形
Z_Polyon(Pn,X,Y);
translate(0,0,L);
Z_Polyon(Pn,X,Y);
popMatrix();
}
}
(1)任意の多角形板に対応しています。
(2)穴開けには対応していません。
- sketch_3D_My_OB1_3ファイル
sketch_3D_My_OB1_3ファイルは下記の「30-1.zip」ファイルをダウンロードしてください。
[30-1.zip]をダウンロードする。
解凍するとsketch_3D_My_OB1_3フォルダー内に
(1)sketch_3D_My_OB1_3.pde
(2)My_OB.pde
(3)My_OB01.pde
があります。sketch_3D_My_OB1_3.pdeをダブルクリックすると起動します。
- 3Dサンプル(sketch_3D_My_OB1_3)ポールまとめ
(1)My_OBタグにvoid Z_Polyon_Plate(int Pn,float X[],float Y[],float L)//多角形板を追加しました。
(2)void OB01_01()で品番1、品番2、品番3を合成します。
(3)sketch_3D_My_OB1_3タグでOB01.OB01_01;(//ユニット01-項番01)を実行します。