37章:3Dサンプル(sketch_3D_My_OB02_1)ガードレール

    作成2015.12.16

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

  1. 3Dサンプル(sketch_3D_My_OB02_1)ガードレール完成図
     3Dサンプル(sketch_3D_My_OB02_1)ガードレール完成図を以下に示します。








  2. sketch_3D_My_OB02_1タグのスケッチ
     sketch_3D_My_OB02_1タグのスケッチタグのスケッチは以下となります。
    //sketch_3D_My_OB02_1 ガードレール
    My_OB02 OB02;//使用クラスの定義
    void setup()
    {
      size(650, 750, P3D);
      OB02=new My_OB02();//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);
      OB02.OB02();//ガードレール
    }
    
    (1)上記スケッチにおいて、画像を発生するコードはOB02.OB02();です。
    (2)OB02.OB02();には引数が無く固定データです。


  3. My_OB02タグのスケッチ
     My_OB02タグのスケッチのスケッチは以下となります。
    class My_OB02 extends My_OB
    {
      void OB02()//ガードレール
      {
        OB02_01();//ガードレールポール
        OB02_02();//基礎
        OB02_03();//ガード
        OB02_04();//固定金具
        //void X_M20Nut_XYZ(float X,float Y,float Z)
        X_M20Nut_XYZ(-65.15,-600,0);
        X_M20Nut_XYZ(69.65,-600,0);
        X_M16Nut_XYZ(99,-600,100);
        X_M16Nut_XYZ(77.6,-600,100);
        X_M16Nut_XYZ(99,-600,-100);
        X_M16Nut_XYZ(77.6,-600,-100);
      }
      
      void OB02_01()//ガードレールポール
      {
        pushMatrix();
        rotateX(90*PI/180);
        //void Z_Parasol_Z(int Sn,float R,float A,float Z)//Z指定パラソル面
        Z_Parasol_Z(4,145,24.8,555);//パラソル面
        
        //void Z_Bar_Z(float r,float L,float Z)//Z指定丸棒
        Z_Bar_Z(60,12,680);
        Z_Bar_Z(57.15,1075,137.5);
        
        popMatrix();
      }
      
      void OB02_02()//基礎
      {
        fill(55, 055,0,50);
        pushMatrix();
        translate(0,200,0);
        box(400,400,400);
        popMatrix();
        fill(255, 255, 255);
      }
      
      void OB02_03()//ガード
      {
        int Pn=17;//ポイント数
        float[] X={107.3,105,137,137,88.2,88.2,137,137,105,107.3,140.2,140.2,91.4,91.4,140.2,140.2,107.3};
        float[] Y={175,172.3,140,79.5,31.3,-31.3,-79.5,-140,-172.3,-175,-141.4,-78.2,-30,30,78.2,141.4,175};
        float L=600;
        pushMatrix();
        translate(0,-600,0);
        //void Z_Polyon_Plate(int Pn,float X[],float Y[],float L)//多角形板
        Z_Polyon_Plate(Pn,X,Y,L);
        popMatrix();
    
      }
      
      void OB02_04()//固定金具
      {
        int Pn=23;//ポイント数
        float[] X={0,19.6,36.8,54.5,54.5,150,150,50,50,39,21.2,0,-21.2,-39,-50,-50,-150,-150,-54.5,-54.5,-36.8,-19.6,0};
        float[] Y={57.2,53.7,43.7,43.7,83.7,83.7,88.2,88.2,47.8,47.8,57.9,61.7,57.9,47.8,47.8,88.2,88.2,83.7,83.7,43.7,43.7,53.7,57.2};
        float L=70;
        pushMatrix();
        translate(0,-600,0);
        rotateX(90*PI/180);
        rotateZ(-90*PI/180);
        //void Z_Polyon_Plate(int Pn,float X[],float Y[],float L)//多角形板
        Z_Polyon_Plate(Pn,X,Y,L);
        popMatrix();
    
      }
      
      void X_M20Nut_XYZ(float X,float Y,float Z)
      {
        pushMatrix();
        translate(X,Y,Z);
        pushMatrix();
        rotateY(90*PI/180);
        Z_6Bar(30,16);
        popMatrix();popMatrix();
      }
      
      void X_M16Nut_XYZ(float X,float Y,float Z)
      {
        pushMatrix();
        translate(X,Y,Z);
        pushMatrix();
        rotateY(90*PI/180);
        Z_6Bar(24,13);
        popMatrix();popMatrix();
      }
    }
    
    (1)上記スケッチにおいて、My_OB02クラスはMy_OBクラスを継承します。


  4. My_OBタグのスケッチ
     My_OBタグのスケッチは省略します。


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

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


  6. 3Dサンプル(sketch_3D_My_OB02_1)ガードレールまとめ
    (1)ボルト穴は省略しました。
    (2)ガードレールのポールは、コンクリートまたはアスファルトの舗装の場合、約400mmの深さで固定されます。
    (3)基礎が土の場合、約1500mmの深さが必要となります。




38章:3Dサンプル(sketch_3D_My_OB03_1)大型片持ち梁トラス構造体に行く。

トップページに戻る。