Introduce the autocad-mcp-premium skill with workflow docs, examples, and references (.claude/skills/autocad-mcp-premium/*). Add PlanSpec/critique plumbing and engineering helpers (engineering/plan_spec.py, engineering/critique.py) plus tests and a smoke script. Extend backend API (backends/base.py) with corner operations and premium meta-tools (trim/extend/fillet/chamfer, drawing_plan, drawing_critique, point_from_snap, construction_xline/clear, drawing_apply_iso_layers, dimension_auto, entity_select_smart) and implement COM backend corner ops (backends/com_backend.py) with placeholders for meta-tools. Update CLAUDE.md to document the premium drawing rules and standard workflow. Misc: add examples, references, and tests for premium features, and minor server/backend adjustments.
86 lines
2.2 KiB
Python
86 lines
2.2 KiB
Python
"""Deterministic engineering CAD layer for AutoCAD MCP Pro."""
|
|
|
|
from .gear import (
|
|
draw_gear_section_aa,
|
|
draw_helical_gear_front_view,
|
|
draw_spur_gear_front_view,
|
|
generate_full_gear_outline,
|
|
generate_involute_flank,
|
|
generate_tooth_profile,
|
|
involute_xy,
|
|
)
|
|
from .keyway import (
|
|
DIN6885_TABLE,
|
|
draw_keyed_bore,
|
|
draw_keyway_section,
|
|
keyway_dimensions,
|
|
)
|
|
from .layers import (
|
|
ENGINEERING_LAYERS,
|
|
STANDARD_LINETYPES,
|
|
ensure_engineering_layers,
|
|
ensure_standard_linetypes,
|
|
)
|
|
from .plan_spec import (
|
|
ALL_CRITIQUE_FOCUSES,
|
|
ISO_128_LINEWEIGHTS_MM,
|
|
CritiqueFocus,
|
|
DimStyle,
|
|
Issue,
|
|
LayerSetId,
|
|
PlanSpec,
|
|
SheetSize,
|
|
SnapType,
|
|
)
|
|
from .section import apply_section_hatch, cutting_plane_line
|
|
|
|
# Agent B contributes titleblock + validator. Imports are guarded so this
|
|
# package remains usable while B is still in flight; once those modules land
|
|
# the symbols flow through transparently.
|
|
try:
|
|
from .titleblock import TitleBlockMetadata, apply_iso_a3_titleblock
|
|
except ImportError:
|
|
TitleBlockMetadata = None # type: ignore[assignment]
|
|
apply_iso_a3_titleblock = None # type: ignore[assignment]
|
|
|
|
try:
|
|
from .validator import DrawingValidator, ValidationFinding, ValidationResult
|
|
except ImportError:
|
|
DrawingValidator = None # type: ignore[assignment]
|
|
ValidationFinding = None # type: ignore[assignment]
|
|
ValidationResult = None # type: ignore[assignment]
|
|
|
|
__all__ = [
|
|
"draw_helical_gear_front_view",
|
|
"draw_spur_gear_front_view",
|
|
"draw_gear_section_aa",
|
|
"generate_full_gear_outline",
|
|
"generate_involute_flank",
|
|
"generate_tooth_profile",
|
|
"involute_xy",
|
|
"draw_keyed_bore",
|
|
"draw_keyway_section",
|
|
"keyway_dimensions",
|
|
"DIN6885_TABLE",
|
|
"cutting_plane_line",
|
|
"apply_section_hatch",
|
|
"ENGINEERING_LAYERS",
|
|
"STANDARD_LINETYPES",
|
|
"ensure_engineering_layers",
|
|
"ensure_standard_linetypes",
|
|
"apply_iso_a3_titleblock",
|
|
"TitleBlockMetadata",
|
|
"DrawingValidator",
|
|
"ValidationResult",
|
|
"ValidationFinding",
|
|
"PlanSpec",
|
|
"Issue",
|
|
"CritiqueFocus",
|
|
"SheetSize",
|
|
"LayerSetId",
|
|
"DimStyle",
|
|
"SnapType",
|
|
"ALL_CRITIQUE_FOCUSES",
|
|
"ISO_128_LINEWEIGHTS_MM",
|
|
]
|