-
Notifications
You must be signed in to change notification settings - Fork 443
A variety of fixes and features #795
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
The GridFinity Refined base adds various features to GridFinity, but remains compatible with GridFinity. Notable features: - dovetail tabs to join panel - screw holes to affix bins to a panel - holes for magnets in the base
…e them for cutting on standard plywood panels
The photoframe module sets up a logger (this is okay) but then proceeds to set the loggers level and output handler. This causes photoframe to emit logging statements to the console (i.e. visible when boxes_main is run with --examples) and makes it difficult for upstream code to turn off undesired logging.
The original boxes_main would handle args via sys.argv, which limits functionality (for example adding a --debug flag that enables the logging module at the debug level). Full backwards compatibility is maintained using argparse.REMAINDER. This also then supports the convention of using '--' to separate boxes_main args and generator args when there is ambiguity
…lities The current test setup can only verify that generators default output doesn't change; this change uses a YAML file to automate generation of examples and supports making custom examples with custom arguments. This is also reusable to automate creation of multiple boxes. For example, you are generating a set of boxes for a silverware drawer and you can write a single YAML file and then share that file with others to generate all the boxes.
A common use case (at least for me) is that I want to make multiple cuts that won't fit on a single standard 12"x12" panel. I don't like having to manually arrange pieces to fit on these panels, so this script automates that action.
|
@florianfesti I know there are a lot of changes here (big and small). Let me know if you would like to see any of them separated out...or changed. Thanks! |
|
Sorry, for the slow response. This is indeed a lot of stuff. I cherry-picked a couple of commits into master to make at least some progress. I'll try to get the rest of the changes processed soon. |
|
@florianfesti if you are still interested in these fixes/features I can rebase this PR against main or break things out into separate PRs. Let me know how I can help. |
This PR has a mixure of fixes and features - and I appreciate it will be a lot to review. Each commit should be relatively isolated, so I'm happy to extract them into standalone PRs if desired so that easy merges can happen sooner.
The commit messages have more deatils, but the notable changes are:
examples.ymlwhich allows generating examples that don't use default args with the--examplesargumenttest_svg.pyalso usesexamples.ymlso it can test generators without default arguments--multi-generatorto generate multiple boxes in a repeatable and shareable fashion. A few of the YAML files I used for my projects are attached as examples.gridfinity_refined_bases.txt
silverware_drawer.txt