New skill proposal: dfam-check — printability rules for meshes #188
Closed
knewnothing-git
started this conversation in
Ideas
Replies: 2 comments 3 replies
|
Hey, yes I've been wanting to add a skill for ISO/ASTM 52910! Please proceed. How do you plan on storing and reading the PDF since it's very large? |
1 reply
|
No PDF storage needed — the skill doesn't parse the standard at all.
The limits are encoded as deterministic rules, and each finding cites the
clause as a reference string next to an independently measured value. So
there's nothing large to read or ship.
That also avoids a licensing problem: ISO/ASTM 52910 is copyrighted and
sold by ASTM, so bundling the document would be redistribution. Citing
clause numbers alongside our own measurements isn't.
What it does:
Runs entirely locally — no API key, no network call, no service dependency.
Only trimesh, numpy, rtree.
scripts/dfam_tool.py is fact-only: it measures and never emits pass/fail.
Verdicts belong to the workflow, so the thresholds stay inspectable rather
than buried in the tool.
Measures ray-cast wall thickness (shape-diameter function, 9-ray cone per
sample), face-angle overhang maps, support volume estimate, and a
6-orientation ranking.
Per-process limits for FDM, SLA/DLP, SLS, metal PBF, and MJF in
references/process-limits.md, so they're readable and editable without
touching code.
Accepts .stl, .obj, .ply, .3mf. Z-up build convention.
Sits naturally before $gcode — check printability, then slice.
On validation: the engine is tested against a 100-part parametric rig built
with build123d, covering 33 features and 8 surface types, where each part
declares its expected verdict. Currently 100/100, 0 mismatches. It's caught
real bugs — a single-ray thickness probe was producing false failures on
high-genus meshes, which is why it now uses the cone method.
Happy to open a PR. Would you prefer the test rig in the same PR, or kept
separate to keep the diff reviewable?
…On Wed, Aug 12, 2026 at 6:50 AM earthtojake ***@***.***> wrote:
Hey, yes I've been wanting to add a skill for ISO/ASTM 52910! Please
proceed. How do you plan on storing and reading the PDF since it's very
large?
—
Reply to this email directly, view it on GitHub
<#188?email_source=notifications&email_token=BSLL7SQLWZVSD7VI4ABWOTD5JPA7LA5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCNZZHAZDOMRYUZZGKYLTN5XKM3LBNZ2WC3FFMV3GK3TUVRTG633UMVZF6Y3MNFRWW#discussioncomment-17982728>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BSLL7SWWWNW2XG6IW5XFZKL5JPA7LAVCNFSNUABJKJSXA33TNF2G64TZHMYTEMJXGUZDEMBWG45UI2LTMN2XG43JN5XDWMJQGUZTSNRSHCQXMAQ>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***
.com>
|
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Hi maintainers,
I'd like to propose adding a dfam-check skill that fills a gap between $cad (generates meshes) and $gcode (slices them): checking whether the mesh is actually printable for the target AM process before it gets sliced.
What it does
Measures mesh files (.stl, .obj, .ply, .3mf) against DfAM rules from ISO/ASTM 52910 and published process design guides:
Overhang angle histogram (build-plate contact excluded)
Wall thickness field via ray-cast sampling
Support-volume upper-bound estimate
Six axis-aligned orientation candidates ranked by support area and build height
Reports facts only — the workflow does the ✅/❌/❓ comparisons against a limits table per process (FDM, SLS, SLA/DLP, metal PBF, MJF), same pattern as $sendcutsend.
Why it fits
Today an agent can go $cad → $gcode → print with no printability gate. $sendcutsend is the sheet-metal preflight; there's no equivalent for FDM/SLS/SLA/metal AM before slicing. dfam-check would be that gate, and would hand off to $cad for regeneration and $cad-viewer for visual inspection.
Status
Working prototype, tested on three fixtures (thin-walled box, cantilevered bracket, solid block) — measurements match the planted defects exactly (0.6mm walls flagged, 1200mm² of 0° overhangs located, 226% support ratio on the bracket).
Structure matches the $sendcutsend / $gcode convention: SKILL.md + references/process-limits.md + scripts/dfam_tool.py + agents/openai.yaml + MIT LICENSE.
Would this fit the roadmap? Happy to open a PR against develop if there's interest — CONTRIBUTING.md is clear on the flow.
Thanks!
All reactions