30章:3Dサンプル(sketch_3D_My_OB1_3)ポール

    作成2015.12.11

     Processingの3D機能を利用して3D機械製図への応用を検討してみたいと思います。

  1. 3Dサンプル(sketch_3D_My_OB1_3)ポール完成図
     3Dサンプル(sketch_3D_My_OB1_3)ポール完成図を以下に示します。





  2. 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は項番です。


  3. 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を合成します。


  4. 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)穴開けには対応していません。


  5. 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をダブルクリックすると起動します。


  6. 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)を実行します。




31章:3Dサンプル(sketch_3D_My_OB1_4)ソーラー支持棒に行く。

トップページに戻る。