跳到内容
CADCAMFUN
文档

文档

CAD几何图形

在共享几何核心中绘制实体、约束草图、参数化历史记录、网格和精确实体。

从英文自动翻译。 查看英文原文

绘图实体

@cadcamfun/core 直接导出 CAD 功能或在 cad 命名空间。架构优先 2D 实体使用 _tag 鉴别器:直线、圆、圆弧、折线、矩形、椭圆、样条线、文本、尺寸、剖面线和块。每个实体都有稳定的标识符、层、可见性和锁定状态;选择属于编辑器状态。

实体几何使用毫米和弧度。弧角标准化为一整圈,相等的起始/结束角度代表一个完整的圆。局部实体变换应用缩放、旋转,然后平移; Affine2D 支持可以包括剪切的组合变换。场景元素和参数历史适配器有自己记录的角度字段,包括度值放置和特征控制。

entitySchemaOf(tag) 返回一种实体类型的模式。在调用几何函数之前解码导入的数据。边界、曲面细分、相交、偏移和捕捉是单独的操作;渲染镶嵌曲线不会替换其分析实体。

约束草图

草图模型包含命名点、点之间的线、具有圆心和半径的圆以及逆时针圆弧。共享点标识符表示共享端点。约束包括重合、水平和垂直对齐、距离、长度、平行线和垂直线、相等长度和半径、相切、对称性和几何入射。

数值求解器通过 Levenberg-Marquardt 迭代和中心差雅可比行列式最小化约束残差。它报告自由度、自由点、冗余方程和冲突约束。结果可能是完全约束、约束不足、过度约束、冲突或失败。欠约束的解决方案可以满足每个维度,同时仍然允许运动;呼叫者必须保留这种区别。

草图约束接收数字。参数历史在调用求解器之前解析参数表达式。草图角度约束为弧度;转换用户输入的尺寸时,使用该功能自己的输入约定。

参数历史记录

参数化零件存储其参数和有序特征历史记录。重建按顺序评估表达式和特征,以便特征可以参考之前创建的草图、平面、实体或工具。核心包括拉伸、旋转、放样和扫描、布尔值、孔、图案、面编辑、文本、螺纹、钣金特征和配合控制。精确表示的可用性取决于特定的特征序列。

rebuild 产生网格体和特征问题。 rebuildExact 通过边界表示内核重播历史并记录为什么物体缺乏精确的表示。保留历史记录作为可编辑来源;生成的主体是派生输出。失败或不受支持的功能必须通过其问题记录保持可见。

读取重播结果

当精确重播无法代表某个特征时,可以存在网格输出。在提出有关精确几何形状、体积或导出保真度的声明之前,请检查主体和问题记录。

网格几何形状和放置

网格使用索引三角形几何体。 CAD 层提供原始构造、网格布尔值、扫描和放样助手、拓扑和法线实用程序以及几何清理。 CAM 模型适配器将支持的场景元素转换为网格,包括嵌套组件,因此分析和刀具路径生成可以使用相同的放置几何体。

元素位置、旋转、缩放和平移会影响生成的零件。精确的场景放置镜像围绕边界框中心的视口变换。非均匀缩放可以删除元素的精确模型路径;场景转换会报告原因,并可能在导出期间使用多面表示。

精确的边界表示

cad.brep 通过面、环、边使用、边和顶点拓扑公开解析和 NURBS 几何体。其模块涵盖基元、扫描、放样、布尔、面编辑、混合、缝纫、镶嵌、分类、验证、质量属性以及 STEP 读写。 history-brep.ts 和 scene-step.ts 将此内核连接到参数化部件并放置场景元素。

POST /api/cad/exact/analyze 返回每个零件的有效性问题、体积、面积、质心、边界、拓扑计数、表面计数、识别的孔和加工分类。它还返回跳过的元素以及原因和总计。棱柱形加工结果报告轮廓、孔、型腔和顶部/底部水平面;不受支持的部件是有原因的。

POST /api/cad/exact/assembly 报告干涉、预期重叠、接触和未确定的对、物料清单项目、接头和紧固件计划。未确定的几何形状是报告的结果,而不是间隙的证明。这些分析路线在不改变绘图的情况下计算结果。

进出口

该核心具有 DXF 和绘图导入助手、棱柱形 STEP 解释路径和精确的 STEP B-rep 阅读器。棱柱路径读取合适的板、支架和法兰的占地面积和挤压高度;它报告了棱镜无法描述的特征。当需要精确支持的 STEP 拓扑时,选择精确的读卡器,并从任一路径检查诊断。

sceneToStep 将场景编写为 STEP AP214。精确支撑的实体保留精确的几何形状;仅网格实体可以作为多面实体发射。非实体元素会因原因而被跳过。这 faceted 选项控制后备。没有回应 step 不含可出口固体。

HTTP 精确路由接受 elements 或 drawingId;显式元素优先。快照数组允许 1–2、000 元素以及最多 200 个标识符的可选选择。通过存储的绘图,边车根据绘图访问规则读取场景。缺少源、空绘图、未知绘图或被拒绝的绘图会产生相应的请求或访问错误。

技术图纸

这 drawing 命名空间提供来自 3D 模型的投影、剖面、尺寸、图纸组合和 SVG 输出。这是与可编辑的 2D 实体绘图和加工程序分开的表示。模型更改后应重新生成投影和截面几何形状;工作表导出捕获用于构建它的模型状态。

在哪里扩展几何图形

开始于 packages/core/src/cad/index.ts 用于公共 CAD 曲面。实体运营就在旁边 entities.ts;约束求解是在 sketch.ts;网格历史记录位于 history.ts;确切的重播在 history-brep.ts;确切的拓扑和交换如下 brep/. packages/core/src/drawing/ 拥有图纸输出。同一文件夹中的支持模块包括 expr.ts (参数表达式如 width / 2 + 3,按依赖顺序解决,并将循环报告为错误), tolerance.ts (曲线的弦矢段计数), gear.ts (ISO 53 渐开线正齿轮轮廓), thread.ts, sheet-metal.ts, fasteners.ts, recipes.ts (发出完整的、完全受限的特征历史的生成器), dfm.ts (带有测量值和要求值的制造设计结果),以及 dxf.ts.

几何函数对值进行操作,无需打开应用程序存储。 Sidecar 服务处理访问和持久性,桌面适配器处理交互和渲染。在边界处保持明确的转换,以便显示网格、精确实体和保存的历史记录保留其独特的含义。

构建、验证和导出实体

这一完整的核心示例构建了一个 40 × 25 × 8 毫米的盒子,其一个角位于世界原点,检查其拓扑,对其进行测量,并导出 STEP 文本。它仅需要工作区核心包并且不执行任何应用程序写入。

一个精确的框及其STEP文本
import { cad } from "@cadcamfun/core"

const solid = cad.brep.makeBox(40, 25, 8)
const report = cad.brep.validateBrep(solid)
if (!report.valid) throw new Error(JSON.stringify(report.issues))

const mass = cad.brep.massProperties(solid)
console.log(mass.volume.toFixed(3)) // "8000.000" cubic millimetres
console.log(mass.centroid) // approximately { x: 20, y: 12.5, z: 4 }
const step = cad.brep.writeStepBreps([{ name: "Bracket blank", brep: solid }], {
  author: "Workshop",
  timestamp: "2026-01-01T00:00:00.000Z"
})
console.log(step.startsWith("ISO-10303-21;")) // true

明确的时间戳使得重复的交换输出可再现。如果没有它,STEP 写入将使用当前时间。 massProperties 还返回面积、每个面的面积以及单位密度下关于质心的惯性张量;体积为 mm3,面积为 mm2。计算物理质量时明确转换密度。

来源: packages/core/src/cad/brep/primitives.ts, mass.ts, validate.ts, 和 step.ts.

验证和转换选项

validateBrep 回报 valid, 问题记录, manifoldSolid,以及可选的属/卷。 manifoldSolid 表示每条边以相反含义使用两次的封闭壳。默认几何距离公差按模型尺寸的 10⁻⁵ 缩放,底面为 10⁻⁶ 毫米。调用者可以提供 tol,跳过体积/方向检查 skipVolume,或使用粗细分进行定向 coarseVolume.

精确分析 API machining 标志默认为 true。 STEP场景导出 faceted 回退默认为 true,并且装配紧固件规划的 washers 选项默认为 true。选择 ID 指的是场景元素,包括通过场景遍历解析的子组件。这些 HTTP 选项影响分析/导出,而不影响存储的绘图。

每个部分的场景导出返回 exact, faces, valid,以及可选注释。检查旁边的这些字段 skipped:可以导出有效的多面体,而不保留分析曲面。

来源: packages/core/src/cad/brep/validate.ts, scene-analysis.ts, scene-step.ts, assembly-analysis.ts, 和 packages/api/src/cad-exact.ts.

修复失败的重建或导出

寻找下次检查
草图仍然受到约束读取自由度和自由点 ID。添加缺失的位置/方向约束;仅具有一个固定端点的尺寸线仍可以旋转。
草图约束冲突使用命名冲突 ID 和残差来查找不兼容的维度。重复相容方程是冗余;两个不同的所需长度是冲突的。
历史特征引用了未知的物体或平面检查特征顺序和标识符。依赖关系必须存在于重放的较早位置,抑制/删除可能会使后面的引用无效。
缩放后无法获得精确模型检查不均匀比例和元素报告的原因。使用受支持的统一放置或接受并标记多面导出。
STEP 结果已跳过项目或没有文本检查选择是否包含实体以及是否启用了多面回退。空或 2仅限 D 的选择无法生成可靠的 STEP 文件。

原始维度必须是正的且有限的。直接几何函数可能会因无效尺寸而引发范围错误;传输层和服务层必须将这些故障转换为它们自己的类型化结果。重建问题与功能 ID 相关,因此可以从源头修复故障,而不是通过保留较早的网格来隐藏故障。

来源: packages/core/src/cad/sketch.test.ts, history.ts, scene-step.ts, 和 apps/sidecar/test/cad-exact.test.ts.

一步一步解决草图

草图是纯数据:一组 entities (点、线、圆、弧)和数组 constraints。直线、圆和圆弧通过标识符引用点,因此共享端点的两条直线共享相同的点 ID。解算器仅移动点坐标和圆半径;它从不添加或删除实体。

p1(固定)p2p3p4 l1 · 水平l2 · 垂直 l3 · 水平l4 · 垂直 宽度 = 40 深度 = 25
示例中使用的草图:四个点、四条线、一个固定点、四个方向约束和两个长度尺寸。每个自由度都被删除,因此求解器报告 fully-constrained 和 dof = 0.
求解完全约束的矩形
import { cad } from "@cadcamfun/core"

const sketch = {
  entities: [
    { id: "p1", kind: "point", x: 0, y: 0 },
    { id: "p2", kind: "point", x: 38, y: 1 },   // rough positions are fine:
    { id: "p3", kind: "point", x: 39, y: 26 },  // the solver moves them
    { id: "p4", kind: "point", x: 1, y: 24 },
    { id: "l1", kind: "line", p1: "p1", p2: "p2" },
    { id: "l2", kind: "line", p1: "p2", p2: "p3" },
    { id: "l3", kind: "line", p1: "p3", p2: "p4" },
    { id: "l4", kind: "line", p1: "p4", p2: "p1" },
  ],
  constraints: [
    { type: "fixed", point: "p1", x: 0, y: 0 },
    { type: "horizontal", line: "l1" },
    { type: "horizontal", line: "l3" },
    { type: "vertical", line: "l2" },
    { type: "vertical", line: "l4" },
    { id: "width", type: "length", line: "l1", value: 40 },
    { id: "depth", type: "length", line: "l2", value: 25 },
  ],
}

const result = cad.solveSketch(sketch)
result.status     // "fully-constrained"
result.dof        // 0
result.iterations // 3
result.residual   // < 1e-9
// points now at (0,0) (40,0) (40,25) (0,25)

运行相同的草图,无需 fixed 约束,结果变为 under-constrained 和 dof = 2 和 free = ["p1", "p2", "p3", "p4"]。矩形仍然具有正确的尺寸,但它可以在 X 和 Y 方向上滑动。添加第三个长度, { id: "w2", type: "length", line: "l3", value: 50 },状态变为 conflicting. conflicts 然后列出不能同时满足的命名约束,最差的先列出(例如 w2 和 width)。列出您关心的约束条件 id;未命名的约束使用生成的标签进行报告,例如 vertical#4.

选项默认意义
maxIterations200求解前 Levenberg-Marquardt 迭代的上限报告为 failed.
tolerance1e-9接受的最大绝对残差已解决。
结果字段内容
sketch具有已求解坐标和半径的输入草图。
statusfully-constrained, under-constrained, over-constrained, conflicting, 或者 failed.
dof剩余自由度。
free仍可移动的点 ID,以及半径仍可更改的圆 ID。
conflicts无法满足的约束 ID,最坏的优先。
redundant冗余方程的数量(秩不足)。
iterations, residual, message求解器诊断。

格式错误的输入抛出

引用未知点或实体的草图是畸形的而不是无法解决的,并且 solveSketch 抛出一个 SketchError。在循环求解之前验证导入的草图。

约束参考

每个约束都是一个带有 type 和一个可选的 id。长度以毫米为单位,角度以弧度为单位。在参数历史中,任何 value 也可以是参数表达式字符串。

类型领域Effect
fixedpoint, 选修的 x, y固定一个点,可以选择固定到显式坐标。
coincidenta, b两个点占据相同的位置。
horizontal / verticalline一条线平行于 X / Y。
horizontalPoints / verticalPointsa, b两个点共享一个 Y/X 坐标。
distancea, b, value两点之间的欧氏距离。
distanceX / distanceYa, b, value带符号的水平/垂直偏移。
lengthline, value线的长度。
parallel / perpendiculara, b两条线之间的关系。
equalLength / equalRadiusa, b相等的线长/圆或圆弧半径。
radius / diametercircle, value圆或弧的大小。
anglea, b, value与直线的逆时针角度 a 到线 b,以弧度为单位。
pointOnLine / pointOnCirclepoint 和 line / circle关联。
midpointpoint, line一个点位于一条线的中间。
symmetrica, b, line两点关于一条线互相镜像。
tangentLineCircleline, circle一条线与一个圆或圆弧相切。
tangentCirclesa, b, 选修的 internalCircles touch externally (distance = r1 + r2) or internally (distance = |r1 − r2|).
concentrica, b共享圆或圆弧的中心。

弧线是逆时针从 start 至 end 关于 center。圆的半径是求解器变量,因此没有半径的圆 radius, diameter, equalRadius,或相切约束出现在 free.

构建参数化零件

A History 是一个参数表加上一个有序的特征列表。参数是其他参数的数字或表达式。它们按依赖顺序解析,循环是命名循环的错误。特征在任何尺寸字段中按名称引用参数。

参数板:40 × 25 × 8 mm,带 Ø5 通孔 拖动进行轨道旋转·滚动进行缩放·右键拖动进行平移
Result of the history example below: the sketch is solved, extruded by thick = 8 mm, and the hole (diameter = width / 8 = 5 mm) is subtracted. Exact replay of this history has a volume of 7,842.92 mm³ (8,000 − π·2.5²·8).
带参数孔的板
import { cad } from "@cadcamfun/core"

const history = {
  parameters: { width: 40, depth: 25, thick: 8, hole: "width / 8" },
  features: [
    // the rectangle sketch from the previous section, with dimension
    // values replaced by parameter names: value: "width", value: "depth"
    { id: "s1", type: "sketch", plane: "XY", sketch: rectangleSketch },
    { id: "e1", type: "extrude", sketch: "s1", depth: "thick", operation: "new" },
    { id: "h1", type: "hole", plane: "XY", offset: "thick",
      at: [20, 12.5], diameter: "hole", depth: "thick" },
  ],
}

const mesh = cad.rebuild(history)
mesh.parameters // { width: 40, depth: 25, thick: 8, hole: 5 }
mesh.bodies     // one mesh body, id "e1"
mesh.issues     // []

const exact = cad.rebuildExact(history, mesh)
exact.bodies[0].brep        // present: the history has an exact representation
exact.warnings              // []
cad.brep.massProperties(exact.bodies[0].brep).volume // 7842.92… mm³
cad.brep.validateBrep(exact.bodies[0].brep).valid    // true
rebuild 回报 bodies (三角形网格由创建它们的特征设置关键帧),已解析 parameters、每个草图的平面、框架和求解结果、钣金特征的展开模式,以及 issues。报告了无法构建的功能 issues 及其功能 ID 和严重性,并且会被跳过。不依赖于它的功能仍然可以构建。 rebuildExact(history, given?, options?) 可以重用您已有的网格重建,并接受 budgetMs 时间预算。

基准平面是右旋的: XY 有 u = X,v = Y,正常 +Z; YZ 有 u = Y,v = Z,法线 +X; ZX 有 u = Z,v = X,正常 +Y。草图、孔或文本也可以放置在较早版本的 ID 上 plane 功能,具有 offset 沿着正常。

特征关键字段和默认值
sketchplane, 选修的 offset, sketch (实体、约束、可选参数 shapes:矩形、圆形、多边形、椭圆形、槽形、折线)。
extrudesketch, depth, direction up/down/symmetric, operation new/union/subtract/intersect, 选修的 targets (默认值:到目前为止的每个机构), edge 端面的倒角/圆角(ends 默认 both), corner 治疗,以及 taper 以度为单位的草稿。循环内的循环是空洞(偶数-奇数)。
revolvesketch, axis (x, y,或草图线), angle 以度为单位(默认为 360), operation.
holeplane, offset, at [u, v], diameter, depth; kind simple (默认), counterbore, 或者 countersink 和 headDiameter, headDepth, 和 angle (默认为 90°)。可选化妆品 thread 注意(例如 M4), tolerance和 ISO 286 fit 例如 H7。装饰线不会改变几何形状。
pattern, mirror早期功能工具的副本,以相同的方式应用。
sweep, loft, coil沿路径、截面之间或沿螺旋线的轮廓。
shell, fillet, draft, pushpull面和边缘编辑。
move, scale, split, combine身体操作。
rib, sheet, thread, text肋骨、带有平面图案、模型螺纹和笔画字体文本的钣金体。
plane, primitive, mate构造平面、原始实体和装配配合。

编辑历史,而不是正文

更改参数并重建:使用它的每个草图都会重新求解,并且重做后每个实体和布尔值都会重新求解。直接编辑生成的网格将在下次重建时丢失。

精确的基元和放置

B-rep 内核直接构建解析实体。每个构造函数都有一个可选的位置 Frame;如果没有,实体将放置在世界框架中。

构造函数论据世界排名
makeBox(dx, dy, dz, placement?)边长(毫米)原点处的最小角。
makeCylinder(radius, height, placement?)半径和高度半径相等的圆锥体;沿 Z 轴。
makeCone(r1, r2, height, placement?)底半径和顶半径沿 Z 轴。
makeSphere(radius, placement?)半径以原点为中心。
makeTorus(major, minor, placement?)环和管半径沿 Z 轴。
精确基元 拖动进行轨道旋转·滚动进行缩放·右键拖动进行平移
makeBox(40, 25, 8) with its corner at the origin, next to a cylinder of radius 6 and height 20 placed beside it. The axes show +X (red), +Y (green), and +Z (blue).

维度必须是正数且有限;否则构造函数会抛出范围错误。跑步 validateBrep 在信任体积或导出结果之前,对您从布尔值、扫描或导入构建的任何内容进行分析。直接来自构造函数的原语在构造时是有效的。

可靠重建的建模实践

  • 在添加尺寸之前固定一个点并约束方向。约束不足的草图可以满足每个尺寸,并且在下一次重建时仍然会移动。
  • 为每个面向用户的维度提供一个 id 因此,冲突报告会命名一个人认可的事物。
  • 首选参数和表达式 ("width / 2 + 3", "max(a, b) * 2") 重复的文字;一次编辑即可驱动整个部分。
  • 仅当较早的功能存在于列表中后,才通过 ID 引用它们。对历史记录重新排序可能会将有效的参考变成问题。
  • 使用 targets 当一个零件有多个实体时,使用布尔值。默认情况下,该操作适用于迄今为止构建的每个实体。
  • 查看 issues 每次之后 rebuild 和每个身体 brep 之后存在 rebuildExact 在依赖精确质量属性或 STEP 导出之前。
  • 在草图中保留毫米和弧度单位。度值字段按原样记录(旋转角度、锥度、埋头孔角度)。

设计食谱

cad.buildRecipe(name, input) 将一些工程输入转化为完整的参数化历史记录,加上一行摘要、导出的数字以及产生这些数字的设计规则。共有七种食谱;当省略时,没有默认值的参数将从其他参数派生。
姓名标题参数(默认)
mounting_plate安装板width=100, depth=60, thickness=10, fastener=M8, fit=medium, counterbore=false, cornerRadius=0, edgeChamfer=0, edgeDistance
flange螺栓法兰outerDiameter=120, boreDiameter=40, thickness=14, boltCount=6, fastener=M10, fit=medium, boltCircleDiameter, hubDiameter=0, hubHeight=0, edgeChamfer=0
l_bracketL型支架baseLength=60, legHeight=50, thickness=5, width=40, fastener=M6, fit=medium, holesPerLeg=1, cornerRadius=0
stepped_shaft阶梯轴部分,倒角=1,keywaySection=-1,keyLength
pipe_bend管道弯头outerDiameter=30, wall=3, legA=100, legB=100, bendAngle=90, bendRadius
duct_transition风管过渡shape=rect, width1=80, height1=50, width2=40, height2=40, length=120, wall=2
enclosure外壳length=120, width=80, height=40, wall=3, floor, cornerRadius=6, fastener=M3, bosses=true
用于 M8 螺钉的安装板
import { cad } from "@cadcamfun/core"

const recipe = cad.buildRecipe("mounting_plate", { width: 100, depth: 60, thickness: 10, fastener: "M8" })
recipe.summary  // "100 x 60 x 10 mm plate with four holes for M8 screws (Ø9 mm, medium fit)"
recipe.derived  // { holeDiameter: 9, edgeDistance: 18, holeSpacingX: 64, holeSpacingY: 24 }
recipe.rules    // ["hole diameter from ISO 273",
                //  "centre to edge >= 1.5 x hole diameter",
                //  "centre to centre >= 2.5 x hole diameter"]

recipe.history.parameters  // { width: 100, depth: 60, thick: 10, hole: 9, inset: 18 }
// features: sketch "outline", extrude "plate", holes hole_sw, hole_se, hole_ne, hole_nw
//           placed at ["inset","inset"], ["width - inset","inset"], …

const mesh = cad.rebuild(recipe.history)          // issues: []
const exact = cad.rebuildExact(recipe.history, mesh)
cad.brep.massProperties(exact.bodies[0].brep).volume  // 57455.31 mm³ = 60000 − 4·π·4.5²·10
安装板配方,M8 拖动进行轨道旋转·滚动进行缩放·右键拖动进行平移
重建配方:100 × 60 × 10 毫米,每条边缘有四个 Ø9 孔 18 毫米。由于孔位置是宽度和插入量的表达式,因此历史记录中宽度的变化会随之移动右侧的孔。

历史记录很普通:您可以在编辑器中打开它,更改参数并重建。该配方只选择了合理的数字。

渐开线齿轮

模数2、18齿正齿轮
const spec = { moduleValue: 2, teeth: 18 }          // pressureAngle defaults to 20°
cad.gearDimensions(spec)
// { pitchRadius: 18, baseRadius: 16.914, tipRadius: 20, rootRadius: 15.5 }

const outline = cad.gearOutline(spec, 6)   // 324 points, 6 per flank
cad.gearOutline({ moduleValue: 2, teeth: 5 })
// throws: 'A gear needs a module > 0 and at least 6 whole teeth'
正齿轮 m = 2, z = 18 拖动进行轨道旋转·滚动进行缩放·右键拖动进行平移
gearOutline extruded 8 mm with an Ø8 bore. Pitch radius = m·z/2 = 18 mm, tip radius = pitch + m = 20 mm, root radius = pitch − 1.25·m = 15.5 mm, base radius = pitch·cos 20° ≈ 16.91 mm.
方面公式m = 2, z = 18
节距半径m·z / 218
尖端半径节距+米20
根半径节距 − 1.25·m15.5
底面半径螺距·cos α16.914
MIN_GEAR_TEETH 为6:在其之下,齿侧底切基圆且相邻齿重叠。

紧固件和配合数据

尺寸沥青丝锥钻头间隙细/中/粗头部Ø×高沉孔直径×深度埋头孔直径
M30.52.53.2 / 3.4 / 3.65.5 × 36.5 × 3.46
M50.84.25.3 / 5.5 / 5.88.5 × 510 × 5.710
M6—56.4 / 6.6 / 7———
M81.256.88.4 / 9 / 1013 × 815 × 916
M121.7510.213 / 13.5 / 14.518 × 1220 × 1324

价值观来自于 cad.metricThread(size), clearanceHole(size, fit) 和 tapDrill(size);仅通过两个助手查询 M6 行。相关规则,以及 M6 螺钉及其 Ø6.6 间隙孔的实际结果:

帮手结果
threadEngagement("M6", material)钢 6、铝 9、铸件 12、塑料 12 mm
tappedHoleDepth("M6", 12)15.8 mm
minEdgeDistance(6.6) / (6.6, "plastic")9.9 / 13.2 mm
minHoleSpacing(6.6)16.5 mm(2.5 × 直径)
keywayFor(25)从 22 到 30:b 8、h 7、t1 4、t2 3。3
toleranceGrade(7, 25) / (6, 25)21 / 13 µm
合身种类使用案例
H7/h6位置(滑动)零件由手工组装并精确定位,滑动插口、导向衬套
H7/g6近距离运行运动部件、主轴、滑阀的精确导向
H7/f7跑步一般机械制造中的滑动轴承、轴
H7/k6过渡轻按即可驱动齿轮、滑轮和轴承内圈
H7/n6干扰(轻按)衬套和轮毂压入;小扭矩无需钥匙
H7/p6干扰(按)外壳中衬套的永久压配合