You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SCAD中如何将矩形框架侧边插槽移至侧边中心?

矩形框架侧边插槽居中问题排查与解决

矩形框架示意图

如上图所示,矩形框架的某一侧边上有一个偏位的小插槽,需要将其移至该侧边中心位置,但当前SCAD代码未达到预期效果。

问题代码片段

// 创建头带顶部切口(位于短边中间)
translate([outer_length / 2 - slot_width / 2, -outer_width / 2, -border_height]) {
    cube([slot_width, border_height + 1, slot_depth]);
}

原本通过除以2的计算尝试实现居中,但效果不符;已尝试交换outer_length与outer_width、在坐标前加0,均未解决问题。

完整框架代码

// 矩形框架参数
outer_length = 85;       // 框架外部长度(单位:毫米)
outer_width = 65;        // 框架外部宽度(单位:毫米)
border_thickness = 2;    // 凸起边框厚度(单位:毫米)
border_height = 10;      // 凸起边框高度(单位:毫米)
inner_length = outer_length - 2 * border_thickness;  // 框架内部长度(单位:毫米)
inner_width = outer_width - 2 * border_thickness;    // 框架内部宽度(单位:毫米)
bottom_thickness = 1;    // 底部薄不透明层厚度(单位:毫米)
corner_radius = 5;       // 圆角半径(单位:毫米)
slot_width = 10;         // 头带插槽宽度(单位:毫米)
slot_depth = 5;          // 头带插槽深度(单位:毫米)

// 创建带圆角、中空内部及底部薄不透明层的矩形框架模块
module rec_frame() {
    difference() {
        // 创建带圆角的凸起边框外壳
        translate([0, 0, -border_height])
        linear_extrude(height = border_height + bottom_thickness) {
            offset(r = corner_radius) {
                square([outer_length, outer_width], center = true);
            }
        }

        // 创建带圆角的内部中空部分
        translate([0, 0, -border_height])
        linear_extrude(height = border_height + bottom_thickness) {
            offset(r = corner_radius - 1) {
                square([inner_length, inner_width], center = true);
            }
        }

        // 创建底部薄不透明层
        translate([0, 0, -bottom_thickness])
        square([outer_length, outer_width], center = true);
        
        // 创建头带顶部切口(位于短边中间)
        translate([outer_length / 2 - slot_width / 2, -outer_width / 2, -border_height]) {
            cube([slot_width, border_height + 1, slot_depth]);
        }
    }

    // 创建底部薄不透明层
    translate([0, 0, -bottom_thickness - border_height])
    linear_extrude(height = bottom_thickness) {
        offset(r = corner_radius) {
            square([outer_length, outer_width], center = true);
        }
    }
}

// 调用模块创建框架
rec_frame();

第二个缩进插槽代码

// 创建框架中心的头带凹槽
translate([outer_length / 2 - slot_width / 2, 0, -border_height - indent_depth]) {
    cube([slot_width, outer_width, indent_depth]);
}

// 创建凹槽内的头带顶部插槽
translate([outer_length / 2 - slot_width / 2, 0, -border_height - indent_depth]) {
    cube([slot_width, outer_width, slot_depth]);
}

// 创建凹槽内的头带底部插槽
translate([outer_length / 2 - slot_width / 2, 0, -border_height - indent_depth - slot_depth]) {
    cube([slot_width, outer_width, slot_depth]);
}

问题原因与修正方案

核心问题

  1. 坐标计算逻辑错误:当前代码中outer_length / 2 - slot_width / 2是将插槽定位到长边的右侧区域,而非短边的中心位置;Y轴的-outer_width/2是短边的最外侧边缘,而非中心对齐的参考点。
  2. 立方体尺寸方向未匹配侧边:插槽的延伸方向需要与侧边长度方向对齐,否则会出现偏移视觉效果。

修正后的插槽代码(短边居中)

如果要在Y=-outer_width/2的短边(左侧短边)实现X方向居中,可采用两种方式:

  • 方式1:启用立方体的中心对齐参数
// 创建头带顶部切口(位于短边中间)
translate([0, -outer_width / 2, -border_height]) {
    cube([slot_width, border_height + 1, slot_depth], center=true);
}
  • 方式2:手动计算X轴偏移
// 创建头带顶部切口(位于短边中间)
translate([-slot_width/2, -outer_width / 2, -border_height]) {
    cube([slot_width, border_height + 1, slot_depth]);
}

第二个缩进插槽的修正逻辑

同理,要实现X方向居中,将平移坐标的X值改为-slot_width/2,或给cube添加center=true参数,即可让插槽在目标侧边居中。

内容的提问来源于stack exchange,提问作者Jackie Chiljian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 15:37:03