16章:3Dサンプル(sketch_3D_Z_SqPipe)角パイプ

    作成2015.12.07

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

  1. 角パイプの寸法図
     角パイプの寸法図を以下に示します。



    *図16-1からわかるようにパイプの基本寸法はWoとWiとLの3個のパラメータで形状が決まります。
    *WoとWiとLはfloat型でmm単位で入力とします。


  2. 3Dサンプル(sketch_3D_SqZ_Pipe)角パイプスケッチ
     3Dサンプル(sketch_3D_Z_SqPipe)角パイプスケッチは以下となります。
    //sketch_3D_Z_SqPipe角パイプ
    void setup()
    {
      size(400, 400, P3D);
    }
    
    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(0.5);
        
      fill(255, 255, 255);
      scale(1, 1,1);
      
      Z_SqPipe(50,44,100);//角パイプ
    }
    
    void Z_SqPipe(float Wo,float Wi,float L)//角パイプ
    {
      float Ro=Wo/sqrt(2);
      float Ri=Wi/sqrt(2);
      
      pushMatrix();
      rotateZ(45*PI/180);
      Z_SqCylinder(Ro,L);
      Z_SqCylinder(Ri,L);
      translate(0,0,-L/2);
      Z_SqRing_2D(Ro,Ri);
      translate(0,0,L);
      Z_SqRing_2D(Ro,Ri);
      popMatrix();
    }
    
    void Z_SqCylinder(float r,float L)//角筒
    {
      int sides=4;//分割数
      int i;
      beginShape(QUAD_STRIP);
      for (i = 0; i < sides + 1; ++i)
      {
        float angle = i*TWO_PI/sides;
        vertex(r*cos(angle), r*sin(angle), -L/2);
        vertex(r*cos(angle), r*sin(angle), L/2);
      }
      endShape(CLOSE);
    }
    
    void Z_SqRing_2D(float Ro,float Ri)
    {
      int sides=4;//分割数
      int i;
      beginShape();
      for (i = 0; i < sides + 1; ++i)
      {
        float angle = i*TWO_PI/sides;
        vertex(Ro*cos(angle), Ro*sin(angle),0);
      }
      beginContour();
      for (i = 0; i < sides + 1; ++i)
      {
        float angle = -i*TWO_PI/sides;
        vertex(Ri*cos(angle), Ri*sin(angle),0);
      }
      endContour();
    
      endShape(CLOSE);
    }
    


  3. 3Dサンプル(sketch_3D_Z_SqPipe)角パイプテキストファイル
     3Dサンプル(sketch_3D_Z_SqPipe)角パイプテキストファイルは以下から参照できます。
    「3Dサンプル(sketch_3D_Z_SqPipe)角パイプテキストファイル」にいく



  4. 3Dサンプル(sketch_3D_Z_SqPipe)角パイプスケッチの実行
    (1)3Dサンプル(sketch_3D_Z_SqPipe)パイプスケッチを実行すると実行ウインドウに3D画像が表示されます。
    (2)マウスを動かすと表示角度が変化します。
    (3)表示画像例を以下に示します。





  5. 3Dサンプル(sketch_3D_Z_SqPipe)角パイプまとめ
    (1)表示は正投影のortho(-width/2, width/2, -height/2, height/2);としました。
    (2)線有りのstrokeWeight(0.5);としました。
    (3)Z_SqPipe(50,44,100);//角パイプと指定すると指定寸法のパイプが表示できます。



17章:3Dサンプル(sketch_3D_Z_Angle)山形鋼に行く。

トップページに戻る。