SolidWorks Automation
Use this skill when the task requires executable SolidWorks automation code or a live COM session for parts, assemblies, drawings, Simulation, Flow Simulation, sheet metal, weldments, molds, or tooling. For design-only decisions or parameterization methodology without implementation, use sw-designer instead.
Operating rules
- Reuse an active SolidWorks instance with
GetActiveObject("SldWorks.Application"); only fall back toDispatchwhen no usable instance exists. - Reuse
sw.ActiveDocwhen it matches the task. Create a new document only when explicitly required or no suitable document exists. - Wrap temporary documents in
try...finallyand close them by title; do not leave orphan windows or COM references. - Treat units as meters inside the API. Keep user-facing dimensions in millimeters and convert explicitly.
- Before any mutation, capture a geometry fingerprint: feature count, body count, bbox, volume, and relevant dimensions.
- After each mutation, force a rebuild, re-read the fingerprint, and assert the expected change. Do not report success from a return value alone.
- If an assertion fails, stop the current strategy, print the traceback and current feature-tree state, and propose a concrete fallback. Do not silently catch the failure.
- Do not guess API names, argument counts, or COM null handling. Probe the live object with
dir(),get_com_member, or a tiny subprocess before using an uncertain API. - Keep real project files and generated models under
F:\codexspace\...; do not copy full projects to the Desktop or C drive.
Recommended workflow
- Preflight capability. State whether the current runtime can inspect images/PDFs and whether SolidWorks is available. For drawing-driven work, identify the drawing source and who or what performed visual verification.
- Build a dimension ledger. Separate exact, inferred, designer-choice, and unsupported dimensions. Bounding-box matching is not sufficient; account for recesses, lands, grooves, PCD holes, chamfers, and secondary features.
- Choose an execution channel.
- Prefer Python COM for connection, sketching, additive extrudes, measurements, and file I/O.
- Prefer one sketch with outer and inner closed loops plus
FeatureExtrusion2for through holes and rings. - Use C# or a generated VBA macro for methods that Python COM cannot call reliably, especially complex cut features with more than 12 parameters.
- Implement in the project workspace. Keep builder code modular, parameter-driven, and testable without loading the full manual.
- Execute and validate. Compile the script first. If SolidWorks is available, run it, force a rebuild, then assert feature/body counts, bbox, volume, and output-file existence. Use screenshots or rendered views when geometry intent matters.
- Report truthfully. Distinguish completed geometry, markers-only holes, approximations, and unsupported features. Never describe an uncut marker as a through hole.
Known SW 2024 COM shortcuts
SelectByID2has 9 arguments; the Callout argument must be a real COM null variant, typicallyVARIANT(VT_DISPATCH, None).FeatureExtrusion2uses 23 arguments on this install.EditRebuild3may be a property instead of a method.ForceRebuild3(False)is the safer rebuild call.FeatureCut,FeatureCut3, andFeatureCut4are fragile from Python COM. Use additive geometry, multi-contour sketches, C#, or VBA rather than pretending aNonereturn means success.LoadFile4may return(doc, status); unwrap it before using the document.Extension.SaveAsneeds COM variants for export data and by-ref error/warning values.- For assemblies, preload components, insert at process coordinates, then mate using stable named entities or
SelectByRay; verify BOM count and envelope before attempting perfect mates.
References
Read these only when the current task needs them.
references/automation-manual.md— the full 46-section manual. Search it first withrg -n "keyword" references/automation-manual.md, then read the narrow line range. Avoid loading the whole file by default.references/drawing-to-3d-lessons.md— DXF/PDF-to-part rules, secondary-feature checks, volume calibration, and ground-truth STEP comparison.references/materials-forming-mold-lessons.md— stamping edge sizing, die-cast shrink direction, process metadata, moldbase checks, and mold assembly QA.references/assembly-debugging-lessons.md— repeated-instance counting, transformed hole centers, and render-based assembly validation.references/com-dualinterface-quirks.md— COM 双接口怪癖实证手册(2026-10 单机全流程实战沉淀)。当动态 COM 调用报"找不到成员"、拉伸静默返回 None、AddComponent5 静默失败、ComposeTransform 摆位不对、截图视图切不过去时,先读它。配套可运行流水线见examples/verified/。examples/01_basic_part.pyexamples/02_assembly.pyexamples/03_drawing.pyexamples/04_simulation.py


