rdmullett / voron_serial_plate

Dynamic serial plate creator for Voron printers
GNU General Public License v3.0
56 stars 8 forks source link

Parametric #6

Open dadap opened 1 year ago

dadap commented 1 year ago

This series removes the dependency on the static STL files, and generates the full geometry of the serial plate within OpenSCAD. New features include:

Default settings for the new parametric options are configured to match the original "regular" and "V0" STL files. It should be easy to change the defaults if desired by the project maintainers (e.g. if thicker text by default is deemed desirable).

rdmullett commented 1 year ago

@dadap this looks amazing! Thanks for submitting this, it's far beyond what I'm capable of with scad, and is definitely more in line with what I had envisioned originally, but scad is quite clunky. You mention that it's using the original v0 design, but I actually have another PR #5 for v0.2. I want to wait to see what the response is to my questions on that before merging this in case it would be better to do a different model for the v0 plates in this PR.

dadap commented 1 year ago

Ah, sure - thanks for the pointer to the other PR. @cdheiser - I can incorporate the V0.2 differences into the SCAD file. If you happen to have a description of all of the differences compared to the current V0 geometry, that would be helpful.

In the meantime, it was only after I started mounting the enclosure panels on my V2.4 that I realized that the holes in the back of the plate were there because the design is based on the panel clips. So I think I'll take a look at the original CAD for that part, and see if it can improve on the reverse-engineered geometry that this branch currently uses to generate the plates.

As for the "is it a V0.2" issue, that is kind of unfortunate that the V0 and V0.2 designs are mutually incompatible. Maybe for the default example SCAD file (i.e., the "client" of the plate SCAD "library") we could add another user-settable parameter, "is_v0_2" or something like that, and have that select the V0.2 version when generating a V0 plate. It could default to true, assuming that new builds will tend to be V0.2, but people can toggle it if they're generating a plate for an older existing build, or intentionally building an older V0 design.

dadap commented 1 year ago

Okay, after researching the relevant STL and CAD files a little more, it seems that there's a slightly different intent between the V2/Trident plates and the V0 plate. The V2/Trident version is, AFAICT, based on the midspan side panel clip, and is intended to replace one (or more) of those clips. The equivalent clips on the V0 are of a different design, but the V0 variant of the serial plate more closely resembles the V2/Trident serial plate (and panel clip).

The V0 variant of the serial plate uses clips instead of screw holes - I initially assumed that the clips were meant to go into the slots in the extrusions, since having to preload a nut in a 1515 extrusion would be kind of annoying on an already assembled printer. However, the comment on PR #5 makes it sound like the intention of the clips was to mount the plate on the skirt, hence the different spacing and depth on the V0.2 variant from PR #5.

As for the panel clips on the V0, they are less different from each other than the skirts are between V0.0/V0.1 and V0.2. For V0.0 and V0.1, there were different variants based on the panel thickness: 2mm, 2.5mm, or 3mm. All of them had the same overall depth, with the portion that holds the panel in place being a different thickness. The V0.2 clips appear to be sized for 3mm thick panels only, and have the same profile as the V0.0/V0.1 clips. The V0.2 clips are a little bit deeper, with the portion that holds the panel being a similar thickness to one of the thinner panel versions of the V0.0/V0.1 clips.

Anyway, I think there are a few different directions we can go here:

1) Keep the current V0 plate design, including the skirt clips, and parameterize the spacing and depth of the skirt clips so that they can accommodate either the V0.0/V0.1 or the V0.2 skirt geometry. 2) Keep the current V0 plate design, and design new skirt clips that would fit both of the skirt variants. I think this should be possible if, instead of trying to clip into hexagons at opposite ends of the plate, the main attachment moves to the center of the plate, where the divergence between the two different skirt patterns would be smaller. I don't have a V0.x to test fit on, but it shouldn't be too hard to test on prints of the skirt pieces. 3) Change the V0 plate design to match the geometry of the V0 panel clips, rather than the V2/Trident clips which the current design resembles. Default to the dimensions of the V0.2 clips: these will work out of the box with 3mm panels for V0.0/V0.1 (but be a little thicker), and would fit with some slop for thinner V0.0/V0.1 panels. The clip thickness would be parameterized to allow more precise matching of V0.0/V0.1 clips if desired. 4) Same as (3), but also use a single screw hole in the center, rather than two screw holes near the edges like the V2/Trident serial plates, to avoid the need to disassemble the printer to preload another nut into the 1515 extrusions. This would potentially put a screw hole in a place that intersects with part of the serial number, which could be unsightly. (Maybe we could try to be clever and use the screw hole as the separator between the "V0" prefix and the numeric portion of the serial number, rather than a '.')

Allowing for multiple of the above options would also be possible, as would going a different direction completely.