KiCadとWebGL

あなたは、ボードをマウスで動かすことができます。

私が本当に表示させたいのは、パーツを搭載したボードです。

STLファイルと、 WebGL

あなたは、物体をあなたのマウスで動かすことができます。

画像の中を左クリックして、押し下げたまま、マウスを動かして下さい。他の制御も可能です。

<script src="/js/three.js-dev/build/three.js"></script>
<script src="/js/three.js-dev/examples/js/loaders/STLLoader.js"></script>

<script>
        var loader = new THREE.STLLoader();
        loader.load( 'SMA.stl', function ( geometry ) {
                var material = new THREE.MeshLambertMaterial( { ambient: 0xff5533, color: 0x8f55f3} );
                mesh = new THREE.Mesh( geometry, material );
                APP.scene.add( mesh );
                APP.controls = new THREE.TrackballControls( APP.camera );
                APP.animate();
        });

KiCadと3次元モデル(6)

// dimensions in 0.1mm
l=63;
r1=23/2;
r2=6/2;
h2h=8*(50/1000)*25.4*10; echo(h2h);
ll=(h2h-l)/2; echo(ll);

module pin() {
translate([0,0,-r1]) rotate([0,0,0]) cylinder(r=r2,h=r1*3-5, $fn=16); // vertical
translate([0,-5,r1*2]) rotate([90,0,0]) cylinder(r=r2,h=ll-5, $fn=16); // horizozntal
translate([0,-5,r1*2-5]) rotate([0,-90,0]) 
rotate_extrude(angle=90, convexity=10) translate([5, 0]) circle(r2, $fn=16);
}

translate([0,l/2,r1*2]) rotate([90,0,0]) cylinder(r=r1,h=l, $fn=16); // body
translate([0,  h2h/2, 0]) pin();
translate([0, -h2h/2, 0]) rotate([0,0,180]) pin();

KiCadと3次元モデル(5)


// dimensions in mm
 
a=7.0;
b=7.0;
c=13.5-(5.8+1.8+3.9);

h1=1.8;
r1=25.4/4/2;

h2=5.8;
r2=r1*0.9;
 
xoff=a/2;
yoff=b/2;
  
nx=2;
ny=2;
gx=5.08;
gy=gx;
k=1.02;
k2=1.25/2;
h=3.9;
 
xoffset=(a-gx*(nx-1)-k2)/2;
yoffset=(b-gy*(ny-1)-k2)/2;
  
cube([a, b, c]);
  
translate([xoff,yoff,c])
        cylinder(h1, r1, r1, false,$fn=13);

difference() {
translate([xoff,yoff,c+h1])
        cylinder(h2, r2, r2, false,$fn=18);

translate([xoff,yoff,c+h1+h2*0.8])
        cylinder(h2*0.3, r2*0.9, r2*0.9, false,$fn=18);
}
 
for (x=[0:nx-1]) {
    for (y=[0:ny-1]) {
    translate([xoffset+gx*x,yoffset+gy*y,-h])
        cube([k, k, h]);
    }
}

translate([xoff, yoff, -h])
cylinder(h, k2, k2, false, $fn=20);

KiCadと3次元モデル(4)

これは、トグル・スイッチです。

そんなに正確ではありませんが、私の用途には十分でしょう。

// dimensions in inches

a=0.450;
b=0.500;
c=0.3350+0.060;
h1=0.350;
h2=0.410;
r1=0.25/2;
r2=0.115/2;

xoff=a/2;
yoff=b/2;
 
nx=2;
ny=3;
gx=0.190;
gy=0.185;
k=0.073/2;
h=0.201;

xoffset=(a-gx*(nx-1))/2;
yoffset=(b-gy*(ny-1))/2;
 
cube([a, b, c]);
 
translate([xoff,yoff,c])
        cylinder(h1, r1, r1, false,$fn=16);

translate([xoff,yoff,c+h1*0.9]) {
        rotate(30,[1,0,0])
        cylinder(h2, r2, r2, false,$fn=10);
 
}

for (x=[0:nx-1]) {
    for (y=[0:ny-1]) {
    translate([xoffset+gx*x,yoffset+gy*y,-h])
        cylinder(h, k, k, false);
    }
}

KiCadと3次元モデル(3)

3次元モデルを作るのは、例えば、FreeCADよりも、OpenSCADの方がずっと簡単です。

これが、あなたがモデルを作りたいと思っているTAK-5周波数ミキサです。

物理的なパラメータの幾つかをコピーして、非常に短いプログラムを書くだけです。

そら、出来た!

// dimensions in inches
b=0.800;a
d=0.210;
f=0.400;
g=0.200;
h=0.20;
k=0.031;
nx=2;
ny=4;
xoffset=(f-g*(nx-1))/2;
yoffset=(b-g*(ny-1))/2;

cube([f,b,d]);

for (x=[0:nx-1]) {
    for (y=[0:ny-1]) {
    translate([xoffset+g*x,yoffset+g*y,-h])
        cylinder(h, k, k, false);
    }
}

KiCadと3次元モデル

非常に簡単な手順で、あなたはKiCad用の独自の3次元モデルを作ることが可能です。

最初に、あなたはOpenSCADでモデルをデザインし、STLファイルを出力します。

次に、あなたはMeshLabを用いて、このSTLファイルをテキストからバイナリに変換します。

最後に、あなたはバイナリのSTLファイルをWings3Dに読み込ませ、VRMLファイルを出力します。このファイルが、KiCadにより3次元モデルとして参照されます。

Footprint Editorを用いて、Footprint Propertiesの3D settingsタブで、あなたのVRMLファイルを指定します。