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

如何在OpenSCAD中制作带参数化中心宽度的沙漏形圆角梁?

实现OpenSCAD参数化沙漏形圆角梁

原代码通过立方体+两端圆柱实现了圆角梁,要将中心改为沙漏形并支持中心宽度参数化,可按以下方式修改:

修改思路

  1. 新增参数控制中心宽度,初始设为6.0mm
  2. 用linear_extrude将自定义的2D沙漏轮廓拉伸为3D结构,替换原中心立方体
  3. 保留原两端圆角圆柱和挖孔的逻辑,确保整体结构兼容

完整代码

// Parameters for the beam and holes
nx_beam_length = 58.4; // Total length of the beam
ny_beam_width = 8.0; // Width at the ends
ny_beam_center_width = 6.0; // Width at the center (parametric)
nz_beam_thickness = 2.0; // Thickness of the beam
nx_hole_interaxis = 50.0; // Distance between hole centers
nd_hole = 2.2; // Diameter of the holes

// Calculate key dimensions for the hourglass shape
// Length of the tapered sections (from end to center)
taper_length = (nx_beam_length - ny_beam_width) / 2;

// Translate to center along z-axis
translate([0,0,nz_beam_thickness/2])
difference()
{
    union()
    {
        // Convert 2D hourglass outline to 3D structure
        linear_extrude(height=nz_beam_thickness, center=true)
        polygon(points=[
            // Left end semicircle points (180 to 360 degrees)
            for(theta = [180:10:360]) [
                -taper_length + (ny_beam_width/2)*cos(theta),
                (ny_beam_width/2)*sin(theta)
            ],
            // Right taper line (from left end edge to center)
            [taper_length, ny_beam_center_width/2],
            // Right end semicircle points (0 to 180 degrees)
            for(theta = [0:10:180]) [
                taper_length + (ny_beam_width/2)*cos(theta),
                (ny_beam_width/2)*sin(theta)
            ],
            // Left taper line (from right end edge back to center)
            [-taper_length, -ny_beam_center_width/2]
        ]);
        
        // Rounded end cylinders (original logic retained)
        translate([-(nx_beam_length - ny_beam_width)/2, 0, 0]) cylinder(h=nz_beam_thickness, d=ny_beam_width, center=true, $fn=50);
        translate([(nx_beam_length - ny_beam_width)/2, 0, 0]) cylinder(h=nz_beam_thickness, d=ny_beam_width, center=true, $fn=50);
    }
    
    // Hole cutting logic (original logic retained)
    translate([nx_hole_interaxis/2, 0, 0]) cylinder(h=nz_beam_thickness+1, r=nd_hole/2, center=true, $fn=50);
    translate([-nx_hole_interaxis/2, 0, 0]) cylinder(h=nz_beam_thickness+1, r=nd_hole/2, center=true, $fn=50);
}

关键说明

  • ny_beam_center_width是新增的参数,修改该值即可直接调整梁的中心宽度
  • 2D多边形通过圆弧点+斜直线构建完整沙漏轮廓,拉伸后与两端圆柱完美衔接
  • 保留了原代码的坐标系和挖孔逻辑,无需额外调整零件定位

内容的提问来源于stack exchange,提问作者05032 Mendicant Bias

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 00:37:40