first commit
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
# ModelDiagnosticVerifier
|
||||
|
||||
Verifies product models against rule packages generated by `RuleTemplateGenerator`.
|
||||
|
||||
## Responsibility
|
||||
|
||||
`ModelDiagnosticVerifier` handles only model-side diagnosis:
|
||||
|
||||
- input: a SolidWorks model path or an existing model evidence JSON
|
||||
- input: a rule package JSON
|
||||
- output: `not_applicable`, `pass`, `problem`, or `needs_review`
|
||||
- it does not interpret teaching images/text
|
||||
- it does not invent new rules
|
||||
|
||||
## Pipeline
|
||||
|
||||
```text
|
||||
SolidWorks model
|
||||
-> 3D B-rep / structural raw evidence
|
||||
-> section 2D structure instance
|
||||
-> scene candidates
|
||||
-> rule applicability
|
||||
-> image 2D structure template matching
|
||||
-> real geometry/contact validation
|
||||
-> final diagnosis
|
||||
```
|
||||
|
||||
Current implementation can consume existing evidence JSON. If a `.SLDASM` or `.SLDPRT` is passed, it tries to run:
|
||||
|
||||
- `tools\model-diagnostics\SectionBrepExtractor`: extracts section sketch graph evidence such as edges, relations, dimensions, regions, and semantic roles.
|
||||
- `tools\model-diagnostics\StructuralFaultProbe`: extracts assembly structure evidence such as components, axial contacts, bearing limits, and fixation information.
|
||||
|
||||
The verifier then normalizes and merges these sources before matching rule templates.
|
||||
|
||||
## Evidence Discipline
|
||||
|
||||
The verifier must not treat "no direct relation matched" as immediate failure. For every pass template it reports:
|
||||
|
||||
- model evidence found and missing
|
||||
- 2D structure relations found and missing
|
||||
- `found`, `candidate`, or `missing` status
|
||||
|
||||
This is important because image templates and model evidence usually do not use identical names. Low-level extractor facts may need explicit promotion before they satisfy a higher-level rule evidence type.
|
||||
|
||||
## Usage
|
||||
|
||||
Verify from an existing evidence JSON:
|
||||
|
||||
```powershell
|
||||
dotnet run --project tools\model-diagnostics\ModelDiagnosticVerifier\ModelDiagnosticVerifier.csproj -c Release -- verify --model runtime\structural_fault_probe\structural_fault_evidence.json --rules runtime\rule_templates\tight_fit_sleeve_requires_disassembly_access.json --out runtime\diagnostics\sleeve_check
|
||||
```
|
||||
|
||||
Verify directly from a SolidWorks assembly:
|
||||
|
||||
```powershell
|
||||
dotnet run --project tools\model-diagnostics\ModelDiagnosticVerifier\ModelDiagnosticVerifier.csproj -c Release -- verify --model "D:\path\assembly.SLDASM" --rules runtime\rule_templates\tight_fit_sleeve_requires_disassembly_access.json --out runtime\diagnostics\sleeve_check
|
||||
```
|
||||
|
||||
Output:
|
||||
|
||||
- `<out>.json`
|
||||
- `<out>.md`
|
||||
|
||||
Reference in New Issue
Block a user