32章:3Dサンプル(sketch_3D_My_OB1_5)ソーラー固定金具

    作成2015.12.12

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

  1. 3Dサンプル(sketch_3D_My_OB1_5)ソーラー固定金具完成図
     3Dサンプル(sketch_3D_My_OB1_5)ソーラー固定金具完成図を以下に示します。








  2. sketch_3D_My_OB1_5タグのスケッチ
     sketch_3D_My_OB1_5タグのスケッチは以下となります。
    //sketch_3D_My_OB1_5
    My_OB01 OB01;//使用クラスの定義
    void setup()
    {
      size(650, 500, 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(1,1,1);
      
      OB01.OB01_03();//ユニット01-項番03
    }
    
    (1)上記スケッチにおいて、画像を発生するコードはOB01.OB01_03();です。
    (2)OB01.OB01_03();には引数が無く固定データです。
    (3)OB01はユニット名です。
    (4)_03は項番です。


  3. My_OB01タグのスケッチ
     My_OB01タグのスケッチは以下となります。
    class My_OB01 extends My_OB
    {
      void OB01_03()//ユニット01-項番03
      {
        int Pn=9;//ポイント数
        float[] X={67,30,30,-40,-40,30,30,67,67};
        float[] Y={182,182,40,40,-40,-40,-182,-182,182};
        float L=3;
        pushMatrix();
        Z_Bar(24.3,160);
        rotateZ(PI);
        
        pushMatrix();
        translate(0,0,-81.5);
        //void Z_Polyon_Plate(int Pn,float X[],float Y[],float L)//多角形板
        Z_Polyon_Plate(Pn,X,Y,L);
        translate(0,0,163);
        Z_Polyon_Plate(Pn,X,Y,L);
        popMatrix();
        pushMatrix();
        translate(68.5,0,-100);
        box(3,364,40);
        translate(0,0,200);
        box(3,364,40);
        popMatrix();
        //void X_Hole_XYZ(float r,float X,float Y,float Z)//擬似ホール
        X_Hole_XYZ(3.5,70,164,102.5);X_Hole_XYZ(3.5,67,164,102.5);
        X_Hole_XYZ(3.5,70,-164,102.5);X_Hole_XYZ(3.5,67,-164,102.5);
        X_Hole_XYZ(3.5,70,-164,-102.5);X_Hole_XYZ(3.5,67,-164,-102.5);
        X_Hole_XYZ(3.5,70,164,-102.5);X_Hole_XYZ(3.5,67,164,-102.5);
        popMatrix();
      }
    }
    
    (1)上記スケッチにおいて、My_OB01クラスはMy_OBクラスを継承します。
    (2)void OB01_02()で品番1、品番2、品番3を合成します。
    (3)穴開けは正式の穴開けでなく、印をつけるだけの擬似ホールです。
    (4)この場合、box(3,364,40);等のメソッドが利用でき。簡単に物体形状が構成できます。


  4. My_OBタグのスケッチ
     My_OBタグに以下のスケッチを追加しました。
    class My_OB
    {
      void X_Hole_XYZ(float r,float X,float Y,float Z)//擬似ホール
      {
        fill(55, 55, 55);
        int sides=16;//分割数
        int i;
        float angleIncrement = TWO_PI/sides;
        float angle = 0;
        beginShape();
        for (i = 0; i < sides + 1; ++i)
        {
          vertex(X,r*cos(angle)+Y, r*sin(angle)+Z);
          angle += angleIncrement;
        }
        endShape(CLOSE);
        fill(255, 255, 255);
      }
    }
    
    (1)X軸方向の擬似ホールを追加しました。
    (2)正式な穴開けではなく、擬似的な印をつけるだけです。


  5. sketch_3D_My_OB1_5ファイル
     sketch_3D_My_OB1_5ファイルは下記の「32-1.zip」ファイルをダウンロードしてください。
    [32-1.zip]をダウンロードする。

    解凍するとsketch_3D_My_OB1_4フォルダー内に
    (1)sketch_3D_My_OB1_5.pde
    (2)My_OB.pde
    (3)My_OB01.pde
     があります。sketch_3D_My_OB1_5.pdeをダブルクリックすると起動します。


  6. 3Dサンプル(sketch_3D_My_OB1_4)ソーラー支持棒まとめ
    (1)My_OBタグにvoid X_Hole_XYZ(float r,float X,float Y,float Z)//擬似ホールを追加しました。
    (2)擬似ホールを使用すると、作図が大幅に簡単になります。
    (3)void OB01_03()のみで作図が完了します。
    (4)sketch_3D_My_OB1_5タグでOB01.OB01_03();を実行します。




33章:3Dサンプル(sketch_3D_My_OB1_6)ソーラーユニットに行く。

トップページに戻る。