burr 0.26.0

Design-rule checks for CAD-as-code workflows.
Documentation
{
  "schema_version": "burr.rulepack.v1",
  "id": "actuator_mount",
  "version": "0.12.0",
  "artifact_type": "actuator_mount",
  "process_kind": "FDM",
  "rules": [
    {
      "id": "m3_loaded_hole_edge_distance",
      "kind": "hole_edge_distance",
      "description": "Loaded M3 clearance holes in printed actuator mounts need enough edge material.",
      "applies_to": {
        "kind": "clearance_hole",
        "fastener": "M3",
        "intent_any": ["mechanical_interface"],
        "role_any": ["loaded_mount", "mount", "housing_mount"]
      },
      "min_center_to_edge_diameter_multiple": 3.0
    },
    {
      "id": "m3_clearance_hole_wall_thickness",
      "kind": "minimum_wall_thickness",
      "description": "M3 clearance holes in printed actuator mounts need printable wall material around the hole.",
      "applies_to": {
        "kind": "clearance_hole",
        "fastener": "M3",
        "intent_any": ["mechanical_interface"]
      },
      "min_wall_thickness_mm": 2.0
    },
    {
      "id": "mechanical_slot_edge_distance",
      "kind": "feature_edge_distance",
      "description": "Mechanical straight slots in printed actuator mounts need enough edge material around the whole slot envelope.",
      "applies_to": {
        "kind": "straight_slot",
        "intent_any": ["mechanical_interface"],
        "role_any": ["loaded_mount", "adjustable_mount", "housing_mount"]
      },
      "min_wall_to_edge_mm": 3.0
    },
    {
      "id": "counterbore_edge_distance",
      "kind": "feature_edge_distance",
      "description": "Mechanical counterbores in printed actuator mounts need enough edge material around the larger counterbore recess, not only the smaller through-hole.",
      "applies_to": {
        "kind": "counterbore",
        "intent_any": ["mechanical_interface"],
        "role_any": ["loaded_mount", "mount", "housing_mount"]
      },
      "diameter_field": "counterbore_diameter_mm",
      "min_wall_to_edge_mm": 3.0
    },
    {
      "id": "m3_bossed_mount_support_wall_thickness",
      "kind": "fastener_support_wall_thickness",
      "description": "Boss-supported M3 clearance holes need enough declared radial material around the hole.",
      "applies_to": {
        "kind": "clearance_hole",
        "fastener": "M3",
        "intent_any": ["mechanical_interface"],
        "role_any": ["bossed_mount", "fastener_support"]
      },
      "min_wall_thickness_mm": 2.0
    },
    {
      "id": "m3_insert_support_wall_thickness",
      "kind": "fastener_support_wall_thickness",
      "description": "Boss-supported M3 heat-set insert pockets need enough declared radial material around the pocket.",
      "applies_to": {
        "kind": "heat_set_insert_pocket",
        "intent_any": ["mechanical_interface"],
        "role_any": ["bossed_insert", "fastener_support"]
      },
      "min_wall_thickness_mm": 2.0
    },
    {
      "id": "m3_insert_pocket_back_wall_thickness",
      "kind": "blind_pocket_back_wall_thickness",
      "description": "Mechanical M3 heat-set insert pockets need enough material behind the blind pocket bottom.",
      "applies_to": {
        "kind": "heat_set_insert_pocket",
        "insert": "M3x5.7",
        "intent_any": ["mechanical_interface"],
        "role_any": ["threaded_mount", "pcb_standoff", "bossed_insert", "fastener_support"]
      },
      "min_back_wall_thickness_mm": 2.0
    },
    {
      "id": "m3_clearance_hole_step_presence",
      "kind": "feature_presence",
      "description": "Declared M3 clearance holes must exist as matching cylindrical geometry in the exported STEP artifact.",
      "applies_to": {
        "kind": "clearance_hole",
        "fastener": "M3",
        "intent_any": ["mechanical_interface"]
      },
      "artifact_kind": "step",
      "diameter_tolerance_mm": 0.05,
      "centerline_tolerance_mm": 0.25,
      "axis_dot_min": 0.99
    },
    {
      "id": "straight_slot_step_presence",
      "kind": "feature_presence",
      "description": "Declared straight slots must exist as matching endpoint-cylinder and side-plane geometry in the exported STEP artifact.",
      "applies_to": {
        "kind": "straight_slot",
        "intent_any": ["mechanical_interface"]
      },
      "artifact_kind": "step",
      "width_tolerance_mm": 0.05,
      "endpoint_tolerance_mm": 0.25,
      "side_plane_tolerance_mm": 0.25,
      "axis_dot_min": 0.99
    },
    {
      "id": "counterbore_step_presence",
      "kind": "feature_presence",
      "description": "Declared counterbores must exist as matching bore, counterbore, and shoulder-plane geometry in the exported STEP artifact.",
      "applies_to": {
        "kind": "counterbore",
        "intent_any": ["mechanical_interface"]
      },
      "artifact_kind": "step",
      "bore_diameter_tolerance_mm": 0.05,
      "counterbore_diameter_tolerance_mm": 0.05,
      "centerline_tolerance_mm": 0.25,
      "counterbore_center_tolerance_mm": 0.5,
      "shoulder_plane_tolerance_mm": 0.25,
      "axis_dot_min": 0.99
    },
    {
      "id": "heat_set_insert_pocket_step_presence",
      "kind": "feature_presence",
      "description": "Declared heat-set insert pockets must exist as matching blind pocket cylindrical and bottom-plane geometry in the exported STEP artifact.",
      "applies_to": {
        "kind": "heat_set_insert_pocket",
        "intent_any": ["mechanical_interface"]
      },
      "artifact_kind": "step",
      "pocket_diameter_tolerance_mm": 0.05,
      "centerline_tolerance_mm": 0.25,
      "pocket_center_tolerance_mm": 0.5,
      "bottom_plane_tolerance_mm": 0.25,
      "axis_dot_min": 0.99
    },
    {
      "id": "bearing_seat_step_presence",
      "kind": "feature_presence",
      "description": "Declared bearing seats must exist as matching seat cylindrical and shoulder-plane geometry in the exported STEP artifact.",
      "applies_to": {
        "kind": "bearing_seat",
        "intent_any": ["mechanical_interface"]
      },
      "artifact_kind": "step",
      "seat_diameter_tolerance_mm": 0.05,
      "centerline_tolerance_mm": 0.25,
      "seat_center_tolerance_mm": 0.5,
      "shoulder_plane_tolerance_mm": 0.25,
      "axis_dot_min": 0.99
    },
    {
      "id": "m3_standoff_boss_step_presence",
      "kind": "feature_presence",
      "description": "Declared M3 standoff bosses must exist as matching boss cylindrical and top-plane geometry in the exported STEP artifact.",
      "applies_to": {
        "kind": "standoff_boss",
        "fastener": "M3",
        "intent_any": ["mechanical_interface"],
        "role_any": ["pcb_standoff", "fastener_support", "bossed_mount"]
      },
      "artifact_kind": "step",
      "boss_diameter_tolerance_mm": 0.05,
      "centerline_tolerance_mm": 0.25,
      "boss_center_tolerance_mm": 0.5,
      "top_plane_tolerance_mm": 0.25,
      "axis_dot_min": 0.99
    },
    {
      "id": "m3_standoff_boss_support_link",
      "kind": "standoff_boss_support_link",
      "description": "Declared M3 standoff bosses must align with the hole or insert they claim to support.",
      "applies_to": {
        "kind": "standoff_boss",
        "fastener": "M3",
        "intent_any": ["mechanical_interface"],
        "role_any": ["pcb_standoff", "fastener_support", "bossed_mount"]
      },
      "centerline_tolerance_mm": 0.25,
      "support_diameter_tolerance_mm": 0.05,
      "axis_dot_min": 0.99
    }
  ]
}