|
Namazu for hns による簡易全文検索 詳しくは 詳細指定/ヘルプを参照して下さい |
||||||||||||||||||||||||||||||||||||||||||||||
2024年01月29日(月) 旧暦 [n年日記] [更新:"2024/01/29 07:51:45"]#1 [openscad] hull() does not work yet STL model
// SignWave shaped hill
// ---------------------------------------------------------------------
module SignWaveHill (Xamp, Yamp, Zamp, delta, Xcount, Ycount, pitchX, pitchY) {
D2 = delta/2;
pitchX = Xamp / Xcount;
y_angle_pitch = 360/Ycount;
x_angle_pitch = 360/Xcount;
for ( seqY = [0:0.5:Ycount - 1] ){
for ( seqX = [0:0.5:Xcount - 1] ){
x = (seqX ) * pitchX ;
y = (seqY ) * pitchY ;
// ---------------------------------------------------------------------------------------------------------
hull(){ // works only on X axis (why ?)
amp = Zamp * cos( seqY * y_angle_pitch - 180);
z = amp * cos((seqX ) * x_angle_pitch - 180);
translate([x , y, Zamp]){ cube([delta, delta, z + Zamp + 0.1]); }
// --------------------------------------------------------------------------------------------------------
amp = Zamp * cos((seqY + 0.5) * y_angle_pitch - 180);
z = amp * cos((seqX ) * x_angle_pitch - 180);
translate([x , y + D2, Zamp]){ cube([delta, delta, z + Zamp + 0.1]); }
// --------------------------------------------------------------------------------------------------------
amp = Zamp * cos( seqY * y_angle_pitch - 180);
g = amp * cos((seqX + 0.5 ) * x_angle_pitch - 180);
translate([x + D2, y, Zamp]){ cube([delta, delta, g + Zamp + 0.1]); }
// --------------------------------------------------------------------------------------------------------
amp = Zamp * cos((seqY + 0.5) * y_angle_pitch - 180);
g = amp * cos((seqX + 0.5 ) * x_angle_pitch - 180);
translate([x + D2, y + D2, Zamp]){ cube([delta, delta, g + Zamp + 0.1]); }
}
// ---------------------------------------------------------------------------------------------------------
}
}
}
Xamp = 50; // one wave length
Yamp = 50; // one wave length
Zamp = 20; // amplitude (height)
Xcount = 50;
Ycount = 50;
pitchX = Xamp/Xcount;
pitchY = Yamp/Ycount;
delta = pitchX;
X2 = Xamp/2;
Y2 = Yamp/2;
D2 = delta/2;
SignWaveHill(Xamp, Yamp, Zamp, delta, Xcount, Ycount, pitchX, pitchY);
( Post message... )
#2 x 1.4142 version STL modeld
// SignWave shaped hill
// ---------------------------------------------------------------------
module SignWaveHill (Xamp, Yamp, Zamp, delta, Xcount, Ycount, pitchX, pitchY) {
D2 = delta/2;
pitchX = Xamp / Xcount;
y_angle_pitch = 360/Ycount;
x_angle_pitch = 360/Xcount;
for ( seqX = [0:0.5:Xcount - 1] ){
for ( seqY = [0:0.5:Ycount - 1] ){
x = (seqX ) * pitchX ;
y = (seqY ) * pitchY ;
// ---------------------------------------------------------------------------------------------------------
hull(){ // works only on X axis (why ?)
amp = Zamp * cos( seqY * y_angle_pitch - 180);
z = amp * cos((seqX ) * x_angle_pitch - 180);
translate([x , y, Zamp]){ cube([delta, delta, z + Zamp + 0.1]); }
amp = Zamp * cos((seqY + 0.5) * y_angle_pitch - 180);
z = amp * cos((seqX ) * x_angle_pitch - 180);
translate([x , y + D2, Zamp]){ cube([delta, delta, z + Zamp + 0.1]); }
amp = Zamp * cos( seqY * y_angle_pitch - 180);
g = amp * cos((seqX + 0.5 ) * x_angle_pitch - 180);
translate([x + D2, y, Zamp]){ cube([delta, delta, g + Zamp + 0.1]); }
amp = Zamp * cos((seqY + 0.5) * y_angle_pitch - 180);
g = amp * cos((seqX + 0.5 ) * x_angle_pitch - 180);
translate([x + D2, y + D2, Zamp]){ cube([delta, delta, g + Zamp + 0.1]); }
}
// ---------------------------------------------------------------------------------------------------------
}
}
}
Xamp = 50 * 1.4142; // one wave length
Yamp = 50 * 1.4142; // one wave length
Zamp = 20; // amplitude (height)
Xcount = 50;
Ycount = 50;
pitchX = Xamp/Xcount;
pitchY = Yamp/Ycount;
delta = pitchX;
X2 = Xamp/2;
Y2 = Yamp/2;
D2 = delta/2;
SignWaveHill(Xamp, Yamp, Zamp, delta, Xcount, Ycount, pitchX, pitchY);
( Post message... )
|
最近の日記 2024年11月14日 ・DWL66+ 2018 405 nm 2024年02月19日 ・another (large, 0.55 x 1.0 m/m) version for contrast curve 2024年02月15日 ・curved star cone 2024年02月13日 ・paraboloid with base plane 2024年02月09日 ・bit map format for contrast curve | ||