René's URL Explorer Experiment


Title: UI is poor (arguments checked one-by-one, cryptic error messages when arguments have problems) · Issue #707 · pcb2gcode/pcb2gcode · GitHub

Open Graph Title: UI is poor (arguments checked one-by-one, cryptic error messages when arguments have problems) · Issue #707 · pcb2gcode/pcb2gcode

X Title: UI is poor (arguments checked one-by-one, cryptic error messages when arguments have problems) · Issue #707 · pcb2gcode/pcb2gcode

Description: Description of bug: The UI is poor: a) Stops parsing at first argument error it finds. Leading the user to play whac-a-mole, fixing each argument problem one-by-one rerunning the command each time. It should parse all arguments and pull ...

Open Graph Description: Description of bug: The UI is poor: a) Stops parsing at first argument error it finds. Leading the user to play whac-a-mole, fixing each argument problem one-by-one rerunning the command each time....

X Description: Description of bug: The UI is poor: a) Stops parsing at first argument error it finds. Leading the user to play whac-a-mole, fixing each argument problem one-by-one rerunning the command each time....

Opengraph URL: https://github.com/pcb2gcode/pcb2gcode/issues/707

X: @github

direct link

Domain: patch-diff.githubusercontent.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"UI is poor (arguments checked one-by-one, cryptic error messages when arguments have problems)","articleBody":"## Description of bug:\nThe UI is poor:\n\na) Stops parsing at first argument error it finds. Leading the user to play whac-a-mole, fixing each argument problem one-by-one rerunning the command each time. It should parse all arguments and pull out all issues (as much as possible, I'm aware some arguments going to be conditional on what has been entered for others), and should tell the user about all the problems found all at once.\n\nb) Errors don't tell a user how to amend the situation.\ne.g. \"Error: Tool changing height not specified.\"\nWould be far better as:\n\"Tool changing height not specified. Specify --zchange=\u003cinteger\u003e to set the tool change height, e.g. --zchange=25\"\n\n\n\n## What did you try (include command-line arguments):\n1. First step\n`pcb2gcode --front=AVmic3-F_Cu.gbr --drill=AVmic3.drl \\\n    --isolation-width=0.3 --mill-diameters=0.3 --cut-infeed=-0.1 \\\n    --mill-feed=100 --mill-speed=15000 --safety=3 \\\n    --drill-feed=50 --drill-speed=10000 --drill-diameters=0.8 \\\n    --output-dir=./front_gcode --basename=AVmic3_front\n`\n\n\n2. Second step\n`\npcb2gcode --metric --metricoutput \\\n    --front=AVmic3-F_Cu.gbr --drill=AVmic3.drl \\\n    --mill-diameters=0.3 --zwork=-0.1 --zsafe=20 \\\n    --mill-feed=100 --mill-speed=15000 \\\n    --drill-feed=50 --drill-speed=10000 --zdrill=-2 \\\n    --drill-side=front \\\n    --output-dir=./front_gcode --basename=AVmic3_front\n`\n\n3. Third step\n`\npcb2gcode --metric --metricoutput \\\n    --front=AVmic3-F_Cu.gbr --drill=AVmic3.drl \\\n    --mill-diameters=0.3 --zwork=-0.1 --zsafe=20 \\\n    --mill-feed=100 --mill-speed=15000 \\\n    --drill-feed=50 --drill-speed=10000 --zdrill=-2 \\\n    --drill-side=front --zchange=25 \\\n    --output-dir=./front_gcode --basename=AVmic3_front\n`\n\n4. Fourth step:\n`\npcb2gcode --metric --metricoutput \\\n    --front=AVmic3-F_Cu.gbr --drill=AVmic3.drl \\\n    --mill-diameters=0.3 --zwork=-0.1 --zsafe=20 \\\n    --mill-feed=100 --mill-speed=15000 \\\n    --drill-feed=50 --drill-speed=10000 --zdrill=-2 \\\n    --drill-side=front --zchange=25 \\\n    --basename=AVmic3_front\n`\n\n\n\n## What happened:\n\nSpecified this:\n`pcb2gcode --front=AVmic3-F_Cu.gbr --drill=AVmic3.drl \\\n    --isolation-width=0.3 --mill-diameters=0.3 --cut-infeed=-0.1 \\\n    --mill-feed=100 --mill-speed=15000 --safety=3 \\\n    --drill-feed=50 --drill-speed=10000 --drill-diameters=0.8 \\\n    --output-dir=./front_gcode --basename=AVmic3_front\n`\n\nGot this:\n`\nError: You've supplied an invalid parameter.\nDetails: unrecognised option '--safety=3'\n`\n\nCross-checked it against the --help. Realised the correct argument was --zsafe. \n\nTried this:\n`\npcb2gcode --metric --metricoutput \\\n    --front=AVmic3-F_Cu.gbr --drill=AVmic3.drl \\\n    --mill-diameters=0.3 --zwork=-0.1 --zsafe=20 \\\n    --mill-feed=100 --mill-speed=15000 \\\n    --drill-feed=50 --drill-speed=10000 --zdrill=-2 \\\n    --drill-side=front \\\n    --output-dir=./front_gcode --basename=AVmic3_front\n`\n\nGot this:\n`\nError: Tool changing height not specified.\n`\n\nHad to consult --help again to find the command for tool changing height.\n\nFinally tried this:\n`\npcb2gcode --metric --metricoutput \\\n    --front=AVmic3-F_Cu.gbr --drill=AVmic3.drl \\\n    --mill-diameters=0.3 --zwork=-0.1 --zsafe=20 \\\n    --mill-feed=100 --mill-speed=15000 \\\n    --drill-feed=50 --drill-speed=10000 --zdrill=-2 \\\n    --drill-side=front --zchange=25 \\\n    --output-dir=./front_gcode --basename=AVmic3_front\n`\n\nand it appeared to work, but then no files got dropped anywhere on the filesystem.\n\nRemoving the --output-dir finally gave me some files output in the current directory.\n\n`\npcb2gcode --metric --metricoutput \\\n    --front=AVmic3-F_Cu.gbr --drill=AVmic3.drl \\\n    --mill-diameters=0.3 --zwork=-0.1 --zsafe=20 \\\n    --mill-feed=100 --mill-speed=15000 \\\n    --drill-feed=50 --drill-speed=10000 --zdrill=-2 \\\n    --drill-side=front --zchange=25 \\\n    --basename=AVmic3_front\n`\n\n\n## What did you expect to happen:\n\nAll arguments, insofar as possible, are checked for errors and all errors found are shown to the user at the same time all in one go. The user can then fix the command in one attempt.\n\nError messages shown to users should include suggestions for how to rectify the situation where possible.\n\n\n## pcb2gcode version 2.5.0\n\n(This is a UI issue, not a file output issue.)\n","author":{"url":"https://github.com/michaeljtbrooks","@type":"Person","name":"michaeljtbrooks"},"datePublished":"2025-05-04T22:49:42.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":2},"url":"https://github.com/707/pcb2gcode/issues/707"}

route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:4382d9bd-f95f-e64a-a941-6ef6cd5e2c73
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-idCF00:31D3B:304F50:3DA799:698E86F0
html-safe-nonce6656fbfcbe96efa3bdf67e3896ed129418d98d5b12906b41a34b880740caab29
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDRjAwOjMxRDNCOjMwNEY1MDozREE3OTk6Njk4RTg2RjAiLCJ2aXNpdG9yX2lkIjoiNTIwNjk5MDM5NjA1MjExMzEzNiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmacc46a54c6155d1cce9e3153f4db5e5095aeec8fa1246ee07ba0379d5989d817e2
hovercard-subject-tagissue:3038291289
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/pcb2gcode/pcb2gcode/707/issue_layout
twitter:imagehttps://opengraph.githubassets.com/2d6d8d1376b6798da19edad2ee7cb22555019fb9512487d2071b097d4dfa7be8/pcb2gcode/pcb2gcode/issues/707
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/2d6d8d1376b6798da19edad2ee7cb22555019fb9512487d2071b097d4dfa7be8/pcb2gcode/pcb2gcode/issues/707
og:image:altDescription of bug: The UI is poor: a) Stops parsing at first argument error it finds. Leading the user to play whac-a-mole, fixing each argument problem one-by-one rerunning the command each time....
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernamemichaeljtbrooks
hostnamegithub.com
expected-hostnamegithub.com
Nonecb2828a801ee6b7be618f3ac76fbf55def35bbc30f053a9c41bf90210b8b72ba
turbo-cache-controlno-preview
go-importgithub.com/pcb2gcode/pcb2gcode git https://github.com/pcb2gcode/pcb2gcode.git
octolytics-dimension-user_id11042572
octolytics-dimension-user_loginpcb2gcode
octolytics-dimension-repository_id30911983
octolytics-dimension-repository_nwopcb2gcode/pcb2gcode
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id30911983
octolytics-dimension-repository_network_root_nwopcb2gcode/pcb2gcode
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
releasef7a12861f7011eecb14bcc4388a767d829a52dfc
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://patch-diff.githubusercontent.com/pcb2gcode/pcb2gcode/issues/707#start-of-content
https://patch-diff.githubusercontent.com/
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpcb2gcode%2Fpcb2gcode%2Fissues%2F707
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpcb2gcode%2Fpcb2gcode%2Fissues%2F707
Sign up https://patch-diff.githubusercontent.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=pcb2gcode%2Fpcb2gcode
Reloadhttps://patch-diff.githubusercontent.com/pcb2gcode/pcb2gcode/issues/707
Reloadhttps://patch-diff.githubusercontent.com/pcb2gcode/pcb2gcode/issues/707
Reloadhttps://patch-diff.githubusercontent.com/pcb2gcode/pcb2gcode/issues/707
pcb2gcode https://patch-diff.githubusercontent.com/pcb2gcode
pcb2gcodehttps://patch-diff.githubusercontent.com/pcb2gcode/pcb2gcode
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2Fpcb2gcode%2Fpcb2gcode
Fork 112 https://patch-diff.githubusercontent.com/login?return_to=%2Fpcb2gcode%2Fpcb2gcode
Star 473 https://patch-diff.githubusercontent.com/login?return_to=%2Fpcb2gcode%2Fpcb2gcode
Code https://patch-diff.githubusercontent.com/pcb2gcode/pcb2gcode
Issues 62 https://patch-diff.githubusercontent.com/pcb2gcode/pcb2gcode/issues
Pull requests 12 https://patch-diff.githubusercontent.com/pcb2gcode/pcb2gcode/pulls
Actions https://patch-diff.githubusercontent.com/pcb2gcode/pcb2gcode/actions
Projects 0 https://patch-diff.githubusercontent.com/pcb2gcode/pcb2gcode/projects
Wiki https://patch-diff.githubusercontent.com/pcb2gcode/pcb2gcode/wiki
Security 0 https://patch-diff.githubusercontent.com/pcb2gcode/pcb2gcode/security
Insights https://patch-diff.githubusercontent.com/pcb2gcode/pcb2gcode/pulse
Code https://patch-diff.githubusercontent.com/pcb2gcode/pcb2gcode
Issues https://patch-diff.githubusercontent.com/pcb2gcode/pcb2gcode/issues
Pull requests https://patch-diff.githubusercontent.com/pcb2gcode/pcb2gcode/pulls
Actions https://patch-diff.githubusercontent.com/pcb2gcode/pcb2gcode/actions
Projects https://patch-diff.githubusercontent.com/pcb2gcode/pcb2gcode/projects
Wiki https://patch-diff.githubusercontent.com/pcb2gcode/pcb2gcode/wiki
Security https://patch-diff.githubusercontent.com/pcb2gcode/pcb2gcode/security
Insights https://patch-diff.githubusercontent.com/pcb2gcode/pcb2gcode/pulse
New issuehttps://patch-diff.githubusercontent.com/login?return_to=https://github.com/pcb2gcode/pcb2gcode/issues/707
New issuehttps://patch-diff.githubusercontent.com/login?return_to=https://github.com/pcb2gcode/pcb2gcode/issues/707
UI is poor (arguments checked one-by-one, cryptic error messages when arguments have problems)https://patch-diff.githubusercontent.com/pcb2gcode/pcb2gcode/issues/707#top
https://github.com/michaeljtbrooks
https://github.com/michaeljtbrooks
michaeljtbrookshttps://github.com/michaeljtbrooks
on May 4, 2025https://github.com/pcb2gcode/pcb2gcode/issues/707#issue-3038291289
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.