제 폴크 스피커를 위한 시트록의 인서트가 필요했습니다. 그리고 AI는 오픈SCAD 파일을 제공해 주었습니다:
$fn = 64;
IN_TO_MM = 25.4;
// 1 = 왼쪽 반쪽(핀들)
// 2 = 오른쪽 반쪽 (구멍들)
// 3 = 양자(보기만 가능)
파트 = 1;
// --- 단일 핀 Z-위치 ---
// 0은 드라이월에 닿는 얼굴입니다. 12.7은 1인치 프레임의 중간입니다.
모든 핀/홀을 위로 또는 아래로 이동하려면 이 변수를 조정하세요.
PIN_Z_POS = 12.7;
// --- 핀 설정 ---
PIN_RADIUS = 4; // 8mm 직경
PIN_HEIGHT = 8; // 8mm 길이
PIN_TOLERANCE = 0.25; // 구멍을 위한 여분의 공간
// --- 치수 ---
INNER_X = 12.75 * IN_TO_MM;
INNER_Y = 8.75 * IN_TO_MM;
FRAME_WALL = 1.00 * IN_TO_MM;
CONTACT_THICK = 0.50 * IN_TO_MM;
REINFORCE_THICK = 0.50 * IN_TO_MM;
TOTAL_THICK = CONTACT_THICK + REINFORCE_THICK;
OUTER_CLEARANCE = 0.03 * IN_TO_MM;
REINFORCE_INSET = 0.25 * IN_TO_MM;
OUTER_X = (12.75 + 2*1.00)IN_TO_MM - (2아우터 클리어런스);
OUTER_Y = (8.75 + 2*1.00)IN_TO_MM - (2아우터 클리어런스);
REINF_OX = OUTER_X - (2 * REINFORCE_INSET);
REINF_OY = OUTER_Y - (2 * REINFORCE_INSET);
// ===== 모듈 =====
모듈 rectangular_ring(ox, oy, ix, iy, h) {
차이점() {
cube([ox, oy, h], center=false);
translate([(ox-ix)/2, (oy-iy)/2, -0.1])
中心=false; cube([ix, iy, h+0.2]);
}
그것은...
모듈 full_model() {
유니온() {
직사각형 반지(OUTER_X, OUTER_Y, INNER_X, INNER_Y, CONTACT_THICK);
translate([(OUTER_X-REINF_OX)/2, (OUTER_Y-REINF_OY)/2, CONTACT_THICK])
직사각형 반지(REINF_OX, REINF_OY, INNER_X, INNER_Y, REINFORCE_THICK);
}
그것은...
모듈 pin_geometry(추가 기능 0) {
// 쉽게 삽입할 수 있는 테이퍼형 실린더
회전(0, 90, 0)
구형(r1=PIN_RADIUS+extra, r2=(PIN_RADIUS*0.8)+extra, h=PIN_HEIGHT);
그것은...
// ===== 어셈블리 =====
SPLIT_X = OUTER_X / 2;
프레임 레일의 중간에 핀을 중심에 배치하는 로직
PIN_Y_TOP = OUTER_Y - (FRAME_WALL / 2);
PIN_Y_BOT = FRAME_WALL / 2;
// --- 파트 1: 왼쪽 ---
만약 (PART == 1 || PART == 3) {
유니온() {
교차점() {
전체 모델();
cube([SPLIT_X, OUTER_Y, TOTAL_THICK]);
}
// 잘리는 얼굴(SPLIT_X)에 추가된 핀들.
translate([SPLIT_X, PIN_Y_TOP, PIN_Z_POS]) pin_geometry(0);
translate([SPLIT_X, PIN_Y_BOT, PIN_Z_POS]) pin_geometry(0);
}
그것은...
// --- 파트 2: 오른쪽 сторо면 ---
만일 (PART == 2 || PART == 3) {
// 두 개를 모두 보고 있는 경우에는 조금 움직이세요.
VIS_OFFSET = (PART == 3) ? 10 : 0;
translate([VIS_OFFSET, 0, 0])
차이점() {
// 인쇄하기 더 쉽게 오른쪽 반을 원점으로 이동하세요.
translate([-SPLIT_X, 0, 0])
교차점() {
전체 모델();
translate([SPLIT_X, 0, 0]) cube([SPLIT_X, OUTER_Y, TOTAL_THICK]);
}
// 절단된 면(이제 X=0)에서 구멍을 뺄습니다.
translate([0, PIN_Y_TOP, PIN_Z_POS]) pin_geometry(PIN_TOLERANCE);
translate([0, PIN_Y_BOT, PIN_Z_POS]) pin_geometry(PIN_TOLERANCE);
}
그것은...
저는 사용했습니다.https://ochafik.com/openscad2/
モデルソース
