螺旋

Helical 是一个 SwiftSCAD 库,旨在简化螺纹组件和相关零件的创建。它支持广泛使用的公制螺纹、螺栓和螺母,并能够自定义这些组件以满足特定需求。

螺栓演示
螺母和垫圈演示

安装

通过在您的 Package.swift 文件中将其添加为依赖项,使用 Swift Package Manager 将 Helical 集成到您的项目中

let package = Package(
    name: "thingamajig",
    dependencies: [
        .package(url: "https://github.com/tomasf/SwiftSCAD.git", .upToNextMinor(from: "0.8.1")),
        .package(url: "https://github.com/tomasf/Helical.git", from: "0.1.2")
    ],
    targets: [
        .executableTarget(name: "thingamajig", dependencies: ["SwiftSCAD", "Helical"])
    ]
)

然后,在需要的地方导入 Helical

import Helical

用法

标准组件

Helical 简化了创建螺纹形状的过程,使将螺纹孔融入您的模型变得更加容易。它还提供了一系列标准螺栓、螺母和相应的孔。创建一个典型的 M8x30 六角头螺栓非常简单

Bolt.hexHead(.m8, length: 30, shankLength: 8)

这将生成一个标准的 DIN 931 螺栓,正如预期的那样。

自定义组件

除了标准产品之外,Helical 还允许进行修改以满足独特的需求

Bolt.hexHead(.isoMetric(.m8, pitch: 0.75), headWidth: 15, headHeight: 6.5, length: 30)

或者完全自定义零件以满足您的特定需求

let thread = ScrewThread(
    handedness: .left,
    starts: 2,
    pitch: 1.5,
    majorDiameter: 6.2,
    minorDiameter: 5.3,
    form: .trapezoidal(angle: 90°, crestWidth: 0.25)
)
let customBolt = Bolt(
    thread: thread,
    length: 15,
    shankLength: 3,
    shankDiameter: 5,
    headShape: .countersunk(angle: 80°, topDiameter: 10, boltDiameter: 5),
    socket: .slotted(length: 10, width: 1, depth: 1.4)
)

创建与螺栓匹配的沉头间隙孔非常简单

Box([20, 20, 10])
    .aligned(at: .centerXY)
    .subtracting {
        customBolt.clearanceHole(recessedHead: true)
    }

创建特定螺纹的螺纹孔也很简单

Box([20, 20, 10])
    .aligned(at: .centerXY)
    .subtracting {
        ThreadedHole(thread: thread, depth: 10, unthreadedDepth: 2)
    }

贡献

我们欢迎贡献。请随时提出 issue 以提供反馈或建议,并提交 pull request 以改进代码库。