94.8s
· 1340/13046t · $0.0053
diff vs bare: +7/-5
$fn = 100;
outer_radius = 40; // 外径 80 mm -> 半径 40 mm
wall_thickness = 4;
bottom_thickness = 6;
height = 100;
inner_radius = outer_radius - wall_thickness;
cavity_height = height - bottom_thickness;
// マグカップの外形と内腔を作成
module mug_shell() {
difference() {
// 外形(実体)
cylinder(h = height, r = outer_radius, center = false);
// 内腔(くり抜き、底の厚みは bottom_thickness)
translate([0, 0, bottom_thickness])
cylinder(h = cavity_height, r = inner_radius, center = false);
}
}
// トーラス(輪っか)を作成するヘルパー
module torus(R, r) {
rotate_extrude(angle = 360)
translate([R, 0, 0])
circle(r = r);
}
// 取手(リング状のリング)を側面に取り付ける
+ // 外周面に接するよう、半径の組み合わせを R + r = 12 に設定
+ ring_major = 8; // major radius of torus
+ ring_tube = 4; // minor radius (tube radius)
+ ring_center_x = outer_radius; // 外周面に接するよう、中心位置を設定
+
module ring_handle() {
- // 外周から十分にはみ出すよう、外側に位置させる
- // major radius 12 mm(要求の半径)とし、薄い輪っかにする
- // 取手はカップの中高さ付近に配置
- translate([outer_radius + 12, 0, height/2])
+ translate([ring_center_x, 0, height/2])
rotate([0, 90, 0]) // リングを側面の平面に配置
- torus(12, 4);
+ torus(ring_major, ring_tube);
}
union() {
mug_shell();
ring_handle();
}
SCAD (44 lines)
$fn = 100;
outer_radius = 40; // 外径 80 mm -> 半径 40 mm
wall_thickness = 4;
bottom_thickness = 6;
height = 100;
inner_radius = outer_radius - wall_thickness;
cavity_height = height - bottom_thickness;
// マグカップの外形と内腔を作成
module mug_shell() {
difference() {
// 外形(実体)
cylinder(h = height, r = outer_radius, center = false);
// 内腔(くり抜き、底の厚みは bottom_thickness)
translate([0, 0, bottom_thickness])
cylinder(h = cavity_height, r = inner_radius, center = false);
}
}
// トーラス(輪っか)を作成するヘルパー
module torus(R, r) {
rotate_extrude(angle = 360)
translate([R, 0, 0])
circle(r = r);
}
// 取手(リング状のリング)を側面に取り付ける
// 外周面に接するよう、半径の組み合わせを R + r = 12 に設定
ring_major = 8; // major radius of torus
ring_tube = 4; // minor radius (tube radius)
ring_center_x = outer_radius; // 外周面に接するよう、中心位置を設定
module ring_handle() {
translate([ring_center_x, 0, height/2])
rotate([0, 90, 0]) // リングを側面の平面に配置
torus(ring_major, ring_tube);
}
union() {
mug_shell();
ring_handle();
}
79.5s
· 1356/9961t · $0.0041
diff vs i1: +0/-0
$fn = 100;
outer_radius = 40; // 外径 80 mm -> 半径 40 mm
wall_thickness = 4;
bottom_thickness = 6;
height = 100;
inner_radius = outer_radius - wall_thickness;
cavity_height = height - bottom_thickness;
// マグカップの外形と内腔を作成
module mug_shell() {
difference() {
// 外形(実体)
cylinder(h = height, r = outer_radius, center = false);
// 内腔(くり抜き、底の厚みは bottom_thickness)
translate([0, 0, bottom_thickness])
cylinder(h = cavity_height, r = inner_radius, center = false);
}
}
// トーラス(輪っか)を作成するヘルパー
module torus(R, r) {
rotate_extrude(angle = 360)
translate([R, 0, 0])
circle(r = r);
}
// 取手(リング状のリング)を側面に取り付ける
// 外周面に接するよう、半径の組み合わせを R + r = 12 に設定
ring_major = 8; // major radius of torus
ring_tube = 4; // minor radius (tube radius)
ring_center_x = outer_radius; // 外周面に接するよう、中心位置を設定
module ring_handle() {
translate([ring_center_x, 0, height/2])
rotate([0, 90, 0]) // リングを側面の平面に配置
torus(ring_major, ring_tube);
}
union() {
mug_shell();
ring_handle();
}
SCAD (44 lines)
$fn = 100;
outer_radius = 40; // 外径 80 mm -> 半径 40 mm
wall_thickness = 4;
bottom_thickness = 6;
height = 100;
inner_radius = outer_radius - wall_thickness;
cavity_height = height - bottom_thickness;
// マグカップの外形と内腔を作成
module mug_shell() {
difference() {
// 外形(実体)
cylinder(h = height, r = outer_radius, center = false);
// 内腔(くり抜き、底の厚みは bottom_thickness)
translate([0, 0, bottom_thickness])
cylinder(h = cavity_height, r = inner_radius, center = false);
}
}
// トーラス(輪っか)を作成するヘルパー
module torus(R, r) {
rotate_extrude(angle = 360)
translate([R, 0, 0])
circle(r = r);
}
// 取手(リング状のリング)を側面に取り付ける
// 外周面に接するよう、半径の組み合わせを R + r = 12 に設定
ring_major = 8; // major radius of torus
ring_tube = 4; // minor radius (tube radius)
ring_center_x = outer_radius; // 外周面に接するよう、中心位置を設定
module ring_handle() {
translate([ring_center_x, 0, height/2])
rotate([0, 90, 0]) // リングを側面の平面に配置
torus(ring_major, ring_tube);
}
union() {
mug_shell();
ring_handle();
}
61.0s
· 1356/8846t · $0.0036
diff vs i2: +0/-0
$fn = 100;
outer_radius = 40; // 外径 80 mm -> 半径 40 mm
wall_thickness = 4;
bottom_thickness = 6;
height = 100;
inner_radius = outer_radius - wall_thickness;
cavity_height = height - bottom_thickness;
// マグカップの外形と内腔を作成
module mug_shell() {
difference() {
// 外形(実体)
cylinder(h = height, r = outer_radius, center = false);
// 内腔(くり抜き、底の厚みは bottom_thickness)
translate([0, 0, bottom_thickness])
cylinder(h = cavity_height, r = inner_radius, center = false);
}
}
// トーラス(輪っか)を作成するヘルパー
module torus(R, r) {
rotate_extrude(angle = 360)
translate([R, 0, 0])
circle(r = r);
}
// 取手(リング状のリング)を側面に取り付ける
// 外周面に接するよう、半径の組み合わせを R + r = 12 に設定
ring_major = 8; // major radius of torus
ring_tube = 4; // minor radius (tube radius)
ring_center_x = outer_radius; // 外周面に接するよう、中心位置を設定
module ring_handle() {
translate([ring_center_x, 0, height/2])
rotate([0, 90, 0]) // リングを側面の平面に配置
torus(ring_major, ring_tube);
}
union() {
mug_shell();
ring_handle();
}
SCAD (44 lines)
$fn = 100;
outer_radius = 40; // 外径 80 mm -> 半径 40 mm
wall_thickness = 4;
bottom_thickness = 6;
height = 100;
inner_radius = outer_radius - wall_thickness;
cavity_height = height - bottom_thickness;
// マグカップの外形と内腔を作成
module mug_shell() {
difference() {
// 外形(実体)
cylinder(h = height, r = outer_radius, center = false);
// 内腔(くり抜き、底の厚みは bottom_thickness)
translate([0, 0, bottom_thickness])
cylinder(h = cavity_height, r = inner_radius, center = false);
}
}
// トーラス(輪っか)を作成するヘルパー
module torus(R, r) {
rotate_extrude(angle = 360)
translate([R, 0, 0])
circle(r = r);
}
// 取手(リング状のリング)を側面に取り付ける
// 外周面に接するよう、半径の組み合わせを R + r = 12 に設定
ring_major = 8; // major radius of torus
ring_tube = 4; // minor radius (tube radius)
ring_center_x = outer_radius; // 外周面に接するよう、中心位置を設定
module ring_handle() {
translate([ring_center_x, 0, height/2])
rotate([0, 90, 0]) // リングを側面の平面に配置
torus(ring_major, ring_tube);
}
union() {
mug_shell();
ring_handle();
}