raphael-isvelin / cq_enclosure_builder Goto Github PK
View Code? Open in Web Editor NEWGenerate printable enclosures for projects in a few lines of code (STL export)
License: Apache License 2.0
Generate printable enclosures for projects in a few lines of code (STL export)
License: Apache License 2.0
Because it's a pretty large area (e.g. ~200x130mm for my Octopus pedal), with no hole, it requires a long print time and large amount of plastic, for likely barely any added strength (when the lid is the BOTTOM panel).
As such, it would be nice to be able to set a different wall_thickness for the lid panel (optionally: for each panels individually).
For now, the nut and washer of screwable parts (mostly inheriting GenericThreadedPart
or GenericThreadedWithStopPart
) are not taken into account in the outside_footprint
(neither reflected in the default outside footprint workplane).
This is generally non-consequential (especially for the parts with a cap/knob), but it can create some issues when building layouts automatically aligned based on their outside footprints.
Note if you're reading: I don't have a big need for it for now and might not for a while: if you do, feel free to comment on the issue.
While Enclosure's constructor takes lid_on_faces: List[Face]
, it throws if it's anything other than [Face.BOTTOM]
.
Allowing to have multiple lids could be convenient in some cases. Would need to have a way to move the screw away from the corners, so they don't collide.
First step: #2.
Note if you're reading: I don't have a big need for it for now and might not for a while: if you do, feel free to comment on the issue.
While Enclosure's constructor takes lid_on_faces: List[Face]
, it throws if it's anything other than [Face.BOTTOM]
.
We need to support this use case, which will also be a first step to handle multiple lids: #3.
As currently, it makes the enclosure unprintable. Bad DX to not be able to view the preview and export at the same time.
Would be a neat way to simplify the install process.
Though it likely would first require to deal with the CSV that needs to be copied to cq_werahouse
's folder: #5.
It's a bit cumbersome to use, because it requires you to--before calling it--create a ScrewBlock
only to get its size, to be able to set the correct position for the screw, as the screw is centred on (0,0)
. (Or to hardcode the size.)
A neat solution could be to create a new method like add_screw_on_side/line
, accepting a side (e.g. UP, DOWN, LEFT, RIGHT), and a position on the line. This could, it could even determine automatically whether to use Z_TAPER_CORNER
or Z_TAPER_SIDE
.
Need to add some tests. especially for the layout builder, which is the most complex and brittle part.
Could dig into cq.Workplane
and cq.Assembly
, and see if we can serialise them. An uglier way would be to simply diff an exported STL/STEP file. Would still be better than nothing.
This makes the install process a bit more complicated, as it requires to copy a CSV to cq_warehouse
's install folder. Especially true when it comes to publishing the package on PyPI: #6.
Note: we can also check whether there's a way around the CSV needing to be present in cq_warehoue
's folder.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.