Replies: 1 comment 1 reply
-
Well this is very exciting. Thanks for starting this discussion, as I've been thinking about how to go about refactoring to clean up some of my hacky initial code. My experience with Python has been all through embedded use and this plugin, so I am very aware I am not familiar with time-tested patterns, plus this started as a weekend hack project to scratch an itch I had on my printer. I would love support a refactoring effort and your plan seems like a great place to work off of. I'm also not precious with my code, personal or work. More minds make it better and the amazing community contributions I've reviewed and merged from other users have leveled the functionality up here more than I would have done individually. Let's rock and roll, looking forward to the initial PRs! Bonus: I get to learn more, which is always great. |
Beta Was this translation helpful? Give feedback.
-
Hi all! 👋
I've really appreciated the Micro Panel I've printed and assembled based on this code and design files - it's made it a lot easier to work with my printer which is quite a distance from my working laptop. I especially like the stock design of the case; it's very easy to print and fits in perfectly on my Ender 3, plus I learned a lot of excellent tips and techniques just from reviewing the Fusion 360 design file! I also appreciate how easy it is to start and stop print jobs with one button, especially when I can see that I messed up the bed level 😬
There are a few additional things that I want to use the Micro Panel for, such as running arbitrary G-code for doing manual bed leveling and having the ability to select the file to print. I spend a lot of time writing Python code, so I planned to implement these features and submit them as pull requests. However, as I started looking into it, I found it hard to fit these new features into the current code structure. Instead, I kept coming up with ideas on how to refactor the plugin to make it easier to understand and expand.
If this was my code, I'd dive right in to refactoring, but since I'm just coming to this project, I want first to show my respect and appreciation for @sethvoltz and the other contributors on this project -- you all have done the hard work to get to this point, and I don't want to be rude in suggesting some major changes. That said, my main goal is to have a Micro Panel that does all of the things that I know it's capable of, and so I plan to start the refactoring process; I'm opening this discussion so that we can have some good communication from the start.
To give a high-level overview, my goals are:
My thought is to implement the first two goals in a set of parallel draft PRs - this will make it easier to do code review on the changes, and to merge them separately if desired. I'd be thrilled if you end up merging them into the main code base, but it would be fine as well if you decide to keep the code on its current path and would rather I maintain my changes as a separate fork.
Do you have any thoughts or concerns? I appreciate your effort and feedback! Thanks!
Beta Was this translation helpful? Give feedback.
All reactions