精品教程 如何设计一个相机阵列(2)仿真设计3D模型-成型相机外壳

问题:

1 两侧相机挤压

2  孔用点有的

//************************(1)相机主体*************************//
//相机机身参数
cam_z=29.2;//高度                   29.3
cam_y= 59.2;//长度  0.01              
cam_x= 44.2;//宽度 0.06           43.6 -83

//相机圆环参数
cam_huan_r= (28+1)/2; //圆环半径
cam_huan_l= 9.4; //圆环高

//模拟射线参数
shexian_ok=0;  //射线是否开启
L_shexian=100000; //射线长度
D_zy=  9.4996; // 相机左右视场角
D_sx=  5.0199;  // 相机上下视场角

//D_sx= 8;
//1-1相机机体
module cam_basic_zhuti(x ,y, z){
      
    //机身
    color([1,0.5,0.3])translate([0,y/2,0]) cube([x,y,z],center=true);
    
    // 底座
    color([1,0.5,0.7])translate([0,(y-58.2)+58.2/2,(z+6)/2]) cube([32.2,58.2,6+0.05],center=true);
    
    //下圆环 螺纹
    l_xiahou=5;
    color([0,0,1])translate([0,y/2,(z)/2+6+l_xiahou/2])cylinder(l_xiahou,6.8/2,6.8/2,center=true, $fn=160 ); 
    
    //下元环 螺盖
    l_luogai=18;  // 厚度4mm
    r_luogai=30  ;  // 原盘直径  20
    color([0,0.4,1])translate([0,y/2,(z)/2+6+l_xiahou+l_luogai/2 ])cylinder(l_luogai,r_luogai/2,r_luogai/2,center=true, $fn=160 );   
    }



//1-2相机圆环
 module cam_basic_yuanhuan(r,h){ 
   color([1,0.5,0])translate([0,h/2,0]) rotate([90,0,0]) cylinder(h,,r,r,center=true, $fn=160 );
    
    // 用于延长 剪去露头  4mm
    color([1,0.5,0])translate([0,h/2+4,0]) rotate([90,0,0]) cylinder(h,,r,r,center=true, $fn=160 );
     color([1,0.5,0])translate([0,h/2-4,0]) rotate([90,0,0]) cylinder(h,,r,r,center=true, $fn=160 );
 }




//1-3 射线

module shexian_base(x,y,z){  //shexian_ok 用来关闭射线
    //左右射线
color([1,0,1])rotate([0,0,D_zy/2])translate([-x/2,0,0]) cube([x,y,z]);
color([1,0,1])rotate([0,0,-D_zy/2])translate([-x/2,0,0]) cube([x,y,z]);
    //上下射线
color([1,0,0])rotate([D_sx/2,0,0])translate([-x/2,0,0]) cube([x,y,z]);
color([1,0,0])rotate([-D_sx/2,0,0])translate([-x/2,0,0]) cube([x,y,z]);
}
// 射线测试
//shexian_base(5*shexian_ok,L_shexian*shexian_ok,5*shexian_ok);


//1-4相机成品
 module cam_basic_all(){
 cam_basic_zhuti(cam_x,cam_y,cam_z);
  translate([0,cam_y,0]) cam_basic_yuanhuan(cam_huan_r,cam_huan_l);   
  shexian_base(5*shexian_ok,L_shexian*shexian_ok,5*shexian_ok);
  }



//1-s 测试
//cam_basic_all();



//************************(2)相机镜头*************************//


//2-1相机镜头圆环基本单位
module cam_jingtou_yuanhuan(r,h){ 
   color([1,0.5,0])translate([0,h/2,0]) rotate([90,0,0]) cylinder(h,r,r,center=true, $fn=160 );
 }

//2-2相机全部镜头
module cam_jingtou_all(){ 
    
  translate([0,0,0]) cam_jingtou_yuanhuan(56/2,34); // 圆环1
    translate([0,34,0]) cam_jingtou_yuanhuan(66.2/2,49.8); //圆环2
     translate([0,34+49.8,0]) cam_jingtou_yuanhuan((80+0.2)/2,27.5);//圆环3
    }
 
 //2-s  镜头测试  
//cam_jingtou_all();


//************************(3)相机+镜头*************************//
 module cam_model(){    
  cam_basic_all();
  color([0.3,0.3,0.3])translate([0,cam_y+cam_huan_l,0])cam_jingtou_all();
 }
 
 
 //************************(4)相机阵列左右2个*************************//
 
 D_zuoyou=8.2 ;   // 左右相机角度      不能超过相机自身视场角
 D_shangxia=3.7 ; // 上下相机角度      不能超过相机自身视场角
 R_yuanpan=820;   //  单排圆盘半径       800
 R_shangxia=36;   //  上下两排相机垂直距离  36   
 
 
 module cam_zhenglie_zy2(){ 
  rotate([0,0,D_zuoyou/2])translate([0,R_yuanpan/2,0]) cam_model();
  rotate([0,0,-D_zuoyou/2])translate([0,R_yuanpan/2,0]) cam_model();
      rotate([0,0,D_zuoyou/2+D_zuoyou])translate([0,R_yuanpan/2,0]) cam_model();
  rotate([0,0,-D_zuoyou/2-D_zuoyou])translate([0,R_yuanpan/2,0]) cam_model();
      rotate([0,0,D_zuoyou/2+2*D_zuoyou])translate([0,R_yuanpan/2,0]) cam_model();
  rotate([0,0,-D_zuoyou/2-2*D_zuoyou])translate([0,R_yuanpan/2,0]) cam_model();
 
  }
//cam_zhenglie_zy2();
//************************(4-1)左右视线相交参考线*************************//
  
  l_shexian=13000;   // 物体距离相机距离  
  l_chonghe= 240;     // 在物距处两个画面的重合度
  module cam_shexian_zy(){
 color([1,1,0])rotate([0,0,0])translate([0,R_yuanpan/2+cam_y+cam_huan_l,0]) cube([4,l_shexian,4]); // 重合度
 color([0,1,1])rotate([0,0,0])translate([0,R_yuanpan/2+cam_y+cam_huan_l+13000,0]) cube([l_chonghe,4,4],center=true);//距离
 // 2个相机测试
 cam_zhenglie_zy2();
  
  }
  
 // 左右相机视线相交测试
   //sx_view=-R_yuanpan/2-cam_y-cam_huan_l-13000;  //视线移动到重合区域
   sx_view=0;  
  //translate([0,sx_view,0]) cam_shexian_zy(); // 测试相机左右射线相交情况  
  

 //************************(5)相机阵列上下2排*****************//
    module cam_zhenglie_zy2_zhenti(){ 
      translate([0,-R_yuanpan/2,0])cam_zhenglie_zy2();
    }
    
     module cam_zhenglie_zysx2(){ 
     rotate([D_shangxia/2,0,0])translate([0,0,R_shangxia ]) mirror([0,0,1])cam_zhenglie_zy2_zhenti();
     rotate([-D_shangxia/2,0,0])translate([0,0,-R_shangxia])cam_zhenglie_zy2_zhenti();

     }
 //cam_zhenglie_zysx2();   
  
     
//************************(5-1)上下两排视线相交参考线//  
  l_shexian=13000;   // 物体距离相机距离  
  l_chonghe= 240;     // 在物距处两个画面的重合度  
     
 module cam_shexian_sx(){
 color([1,1,0])rotate([0,0,0])translate([0,cam_y+cam_huan_l,0]) cube([4,l_shexian,4]);//  物体距离
 color([0,1,1])rotate([0,0,0])translate([0,cam_y+cam_huan_l+13000,0]) cube([4000,4,l_chonghe],center=true);// 重合挡板
  // 2个相机测试
 cam_zhenglie_zysx2();
  }
  
  // 上下相机视线相交测试
 // zy_view=-13000; // 移动整体视角
  zy_view=0;
 //translate([0,zy_view,0]) cam_shexian_sx();  // 测试相机上下射线相交情况  
  
  
  //************************(6)相机阵列 底座固定板***************************//


 //--------------------------- 6-1相机镜头固定架 
   
 module cam_jingtouzhijia(){  
    difference(){ 
     color([0,1,0])translate([0,174,0]) cube([40,10,40],center=true);
     cam_zhenglie_zysx2();
    }
   
   difference(){  
     color([0,1,0])translate([0,168,0]) cube([180,10,180],center=true);      
     cam_zhenglie_zysx2();
    }
}
// 打印镜头前支架   20%填充
//cam_jingtouzhijia();


//----------------------------- 6-2相机底座支架 
    

module cam_zhijia_dizuo(){

   //  底座支架 
difference(){     
    
    l_dizuozhijia=35;// y方向位置
  
    // 矩形块
   color([0,1,1])translate([0,l_dizuozhijia,65]) cube([218,25,50],center=true); 
    //剪去 相机模型
   cam_zhenglie_zysx2();
    //剪去三个洞
    color([0,0,1])translate([65,l_dizuozhijia,90-45/2+0.01])cylinder(45,8/2,8/2,center=true, $fn=160 );  
     color([0,0,1])translate([-65,l_dizuozhijia,90-45/2+0.01])cylinder(45,8/2,8/2,center=true, $fn=160 );   
      color([0,0,1])translate([0,l_dizuozhijia,90-45/2+0.01])cylinder(45,8/2,8/2,center=true, $fn=160 );       
  }

}
//----------------------------- 6-3相机机身支架
module cam_zhijia_jishen(){

  
      ly=15;
      lz=0;
       // 中间机身支架   
    difference(){   
      // 完整矩形块
      color([0,1,0])translate([0,48-ly/2,lz]) cube([120,25+ly,120],center=true);
      // 剪去 相机模型
     cam_zhenglie_zysx2();
         
   }
 
   // 左侧间机身支架   
    difference(){   
      // 完整矩形块
      color([0,1,0])translate([-120,31.5-ly/2,lz])  rotate([0,0,14.5])cube([140,25+ly,120],center=true);
      // 剪去 相机模型
     cam_zhenglie_zysx2();
         
   }
   
    // 右侧机身支架   
     difference(){   
      // 完整矩形块
      color([0,1,0])translate([120,31.5-ly/2,lz])  rotate([0,0,-14.5])cube([140,25+ly,120],center=true);
      // 剪去 相机模型
     cam_zhenglie_zysx2();
         
   }
   
   }
   
//---------------------------6-all 全部支架
module cam_zhijia(){
    // 镜头支架
   cam_jingtouzhijia();
    //底座支架
     cam_zhijia_dizuo();
    // 机身之架
    cam_zhijia_jishen();
    
   
    }


  //不参与打印,供参考尺寸,镜头阵列
 cam_zhenglie_zysx2();  
  
  //参与打印 最终支架阵列
cam_zhijia();  
  
   color([1,0,1])translate([10,100,80]) rotate([90,0,0])cylinder(300,4/2,4/2,center=true, $fn=160 );   
    color([1,0,1])translate([-10,100,80]) rotate([90,0,0])cylinder(300,4/2,4/2,center=true, $fn=160 );   
      color([1,0,1])translate([80,100,80]) rotate([90,0,0])cylinder(300,4/2,4/2,center=true, $fn=160 );   
    color([1,0,1])translate([-80,100,80]) rotate([90,0,0])cylinder(300,4/2,4/2,center=true, $fn=160 );  
    
    
   color([1,0,1])translate([0,100,-60]) rotate([90,0,0])cylinder(300,4/2,4/2,center=true, $fn=160 );    
    
    
     color([1,0,1])translate([0,100,0]) rotate([90,0,0])cylinder(300,4/2,4/2,center=true, $fn=160 );    
       color([1,0,1])translate([85,100,0]) rotate([90,0,0])cylinder(300,4/2,4/2,center=true, $fn=160 );   
     color([1,0,1])translate([-85,100,0]) rotate([90,0,0])cylinder(300,4/2,4/2,center=true, $fn=160 );   
    
 //color([1,0,1])translate([0,100,0]) rotate([90,0,14.5])cylinder(300,4/2,4/2,center=true, $fn=160 ); 

  

猜你喜欢

转载自www.cnblogs.com/kekeoutlook/p/9632024.html