mirror of
https://github.com/nophead/NopSCADlib.git
synced 2025-09-07 21:50:45 +02:00
Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
c982876ebc | ||
|
5ccda42e5b | ||
|
92d0444e5f | ||
|
b239c1462e | ||
|
6413b7b2a0 | ||
|
0b0ce66c85 | ||
|
cf99418a19 | ||
|
8d7c44b80d |
33
CHANGELOG.md
33
CHANGELOG.md
@@ -3,6 +3,17 @@
|
||||
This changelog is generated by `changelog.py` using manually added semantic version tags to classify commits as breaking changes, additions or fixes.
|
||||
|
||||
|
||||
#### [v15.19.3](https://github.com/nophead/NopSCADlib/releases/tag/v15.19.3 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v15.19.2...v15.19.3 "diff with v15.19.2")
|
||||
* 2021-06-17 [`92d0444`](https://github.com/nophead/NopSCADlib/commit/92d0444e5f96c8f4768afb3d014044d7e66c6e69 "show commit") [C.P.](# "Chris Palmer") Changelog now runs codespell to fix the spellings in the commit comments.
|
||||
|
||||
#### [v15.19.2](https://github.com/nophead/NopSCADlib/releases/tag/v15.19.2 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v15.19.1...v15.19.2 "diff with v15.19.1")
|
||||
* 2021-06-15 [`8d7c44b`](https://github.com/nophead/NopSCADlib/commit/8d7c44b80deffcc8c6b84c7a6485c959826cb381 "show commit") [M.B.](# "Martin Budden") Spelling corrections.
|
||||
|
||||
#### [v15.19.1](https://github.com/nophead/NopSCADlib/releases/tag/v15.19.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v15.19.0...v15.19.1 "diff with v15.19.0")
|
||||
* 2021-06-17 [`d38055c`](https://github.com/nophead/NopSCADlib/commit/d38055c15c8b00f91f9c5a4749264acc9b123aad "show commit") [C.P.](# "Chris Palmer") Updated readme.
|
||||
|
||||
* 2021-06-11 [`dcfe426`](https://github.com/nophead/NopSCADlib/commit/dcfe4262c519fb750702564309b790cda5b1c090 "show commit") [M.B.](# "Martin Budden") Fixed typos.
|
||||
|
||||
### [v15.19.0](https://github.com/nophead/NopSCADlib/releases/tag/v15.19.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v15.18.0...v15.19.0 "diff with v15.18.0")
|
||||
* 2021-06-17 [`c7a6d81`](https://github.com/nophead/NopSCADlib/commit/c7a6d8164f545e83c4d871080ac63b7d903829df "show commit") [C.P.](# "Chris Palmer") Added `molex_usb_Ax1()` and now shows SMT caps in the PCB test.
|
||||
|
||||
@@ -187,7 +198,7 @@ Breaking change in `belt_length();` now requires a type argument
|
||||
|
||||
## [v14.0.0](https://github.com/nophead/NopSCADlib/releases/tag/v14.0.0 "show release") Breaking Changes [...](https://github.com/nophead/NopSCADlib/compare/v13.5.0...v14.0.0 "diff with v13.5.0")
|
||||
* 2021-03-06 [`298d1f9`](https://github.com/nophead/NopSCADlib/commit/298d1f92841f30e13b437c6770fc113954b94108 "show commit") [C.P.](# "Chris Palmer") Interface is the same but filenames to be included or used changed.
|
||||
Changlog upated.
|
||||
Changelog updated.
|
||||
|
||||
* 2021-03-06 [`491c3b4`](https://github.com/nophead/NopSCADlib/commit/491c3b4ea8d2ef51e55fd389f0dc0b9a6b9bd9a4 "show commit") [C.P.](# "Chris Palmer") Updated readme, `lib.scad` and image.
|
||||
|
||||
@@ -223,7 +234,7 @@ Changlog upated.
|
||||
|
||||
* 2021-03-03 [`614e5f3`](https://github.com/nophead/NopSCADlib/commit/614e5f3a72db309a3dee996d7241317556883e8d "show commit") [C.P.](# "Chris Palmer") Issues in the changelog now link to to the issue.
|
||||
|
||||
* 2021-03-03 [`a7eae4f`](https://github.com/nophead/NopSCADlib/commit/a7eae4f549b51dbe4624a8b67012919cef6cb24a "show commit") [C.P.](# "Chris Palmer") Neater changlog format.
|
||||
* 2021-03-03 [`a7eae4f`](https://github.com/nophead/NopSCADlib/commit/a7eae4f549b51dbe4624a8b67012919cef6cb24a "show commit") [C.P.](# "Chris Palmer") Neater changelog format.
|
||||
|
||||
* 2021-03-03 [`31ab856`](https://github.com/nophead/NopSCADlib/commit/31ab8562a783464f93812b8c7c45d403587efd0a "show commit") [C.P.](# "Chris Palmer") Updated images
|
||||
|
||||
@@ -246,7 +257,7 @@ Changlog upated.
|
||||
* 2021-02-20 [`03a0c2f`](https://github.com/nophead/NopSCADlib/commit/03a0c2fe981ce12cda51a693f69b4fb19696cb8a "show commit") [C.P.](# "Chris Palmer") Fixed typo.
|
||||
|
||||
### [v13.3.0](https://github.com/nophead/NopSCADlib/releases/tag/v13.3.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v13.2.0...v13.3.0 "diff with v13.2.0")
|
||||
* 2021-02-20 [`7c2df8d`](https://github.com/nophead/NopSCADlib/commit/7c2df8d36d214a8bf8ebdcd39da293209bc175ab "show commit") [C.P.](# "Chris Palmer") The pose module can now specify the camera distance supressing viewall and
|
||||
* 2021-02-20 [`7c2df8d`](https://github.com/nophead/NopSCADlib/commit/7c2df8d36d214a8bf8ebdcd39da293209bc175ab "show commit") [C.P.](# "Chris Palmer") The pose module can now specify the camera distance suppressing viewall and
|
||||
autocentre.
|
||||
|
||||
### [v13.2.0](https://github.com/nophead/NopSCADlib/releases/tag/v13.2.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v13.1.0...v13.2.0 "diff with v13.1.0")
|
||||
@@ -541,9 +552,9 @@ Updated pics and readme.
|
||||
* 2020-12-28 [`ba586b3`](https://github.com/nophead/NopSCADlib/commit/ba586b368582db163af143ebb60afed270f77b1c "show commit") [C.P.](# "Chris Palmer") Example images update to match new contersink screws and teardrops.
|
||||
|
||||
### [v10.21.0](https://github.com/nophead/NopSCADlib/releases/tag/v10.21.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v10.20.1...v10.21.0 "diff with v10.20.1")
|
||||
* 2020-12-28 [`8d22940`](https://github.com/nophead/NopSCADlib/commit/8d22940506df525ac52ef6f8a00ea03661f3b682 "show commit") [C.P.](# "Chris Palmer") Project blurb can now be split with into sections with markdown horizonal rules
|
||||
* 2020-12-28 [`8d22940`](https://github.com/nophead/NopSCADlib/commit/8d22940506df525ac52ef6f8a00ea03661f3b682 "show commit") [C.P.](# "Chris Palmer") Project blurb can now be split with into sections with markdown horizontal rules
|
||||
made with asterisks.
|
||||
If an image is include in the first section the default image is supressed.
|
||||
If an image is include in the first section the default image is suppressed.
|
||||
|
||||
#### [v10.20.1](https://github.com/nophead/NopSCADlib/releases/tag/v10.20.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v10.20.0...v10.20.1 "diff with v10.20.0")
|
||||
* 2020-12-26 [`87c8bbb`](https://github.com/nophead/NopSCADlib/commit/87c8bbb9a549aabb84004426332dc964583472c5 "show commit") [M.B.](# "Martin Budden") Fixed error in `carriage_size` function.
|
||||
@@ -558,12 +569,12 @@ If an image is include in the first section the default image is supressed.
|
||||
|
||||
### [v10.20.0](https://github.com/nophead/NopSCADlib/releases/tag/v10.20.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v10.19.0...v10.20.0 "diff with v10.19.0")
|
||||
* 2020-12-24 [`6f8ff60`](https://github.com/nophead/NopSCADlib/commit/6f8ff606fa5b2ef7d81fb687b77bd6236f6d277f "show commit") [C.P.](# "Chris Palmer") Removed `woven_sheet()` from the readme.
|
||||
Removed redundent code.
|
||||
Removed redundant code.
|
||||
|
||||
* 2020-12-24 [`acd5de0`](https://github.com/nophead/NopSCADlib/commit/acd5de0fbd513b67387478b4c89a5ef4f11b440b "show commit") [C.P.](# "Chris Palmer") Fixed extra BOM entries for woven sheet.
|
||||
Added render colour to BOM for 3D sheets.
|
||||
|
||||
* 2020-12-23 [`cc1e3ba`](https://github.com/nophead/NopSCADlib/commit/cc1e3baaf6ba7451b3545efc949015af822dc95c "show commit") [C.P.](# "Chris Palmer") Reimplemeted woven sheets with an eye to speed and interface consistancy.
|
||||
* 2020-12-23 [`cc1e3ba`](https://github.com/nophead/NopSCADlib/commit/cc1e3baaf6ba7451b3545efc949015af822dc95c "show commit") [C.P.](# "Chris Palmer") Reimplemeted woven sheets with an eye to speed and interface consistency.
|
||||
|
||||
* 2020-12-13 [`85cb54e`](https://github.com/nophead/NopSCADlib/commit/85cb54ef318597a4922077785247ddcb08d5e00d "show commit") [M.B.](# "Martin Budden") Added sheet with checkerboard texture to simulate carbon fiber.
|
||||
|
||||
@@ -1028,7 +1039,7 @@ Done to reduced the number of global constants.
|
||||
`Panel_meters` can now have inner apertures and buttons.
|
||||
|
||||
### [v7.2.0](https://github.com/nophead/NopSCADlib/releases/tag/v7.2.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v7.1.1...v7.2.0 "diff with v7.1.1")
|
||||
* 2020-05-02 [`baa737c`](https://github.com/nophead/NopSCADlib/commit/baa737c4d83be0ab38685122ebe535872fe63e20 "show commit") [C.P.](# "Chris Palmer") Updated example to use Foot contructor.
|
||||
* 2020-05-02 [`baa737c`](https://github.com/nophead/NopSCADlib/commit/baa737c4d83be0ab38685122ebe535872fe63e20 "show commit") [C.P.](# "Chris Palmer") Updated example to use Foot constructor.
|
||||
|
||||
* 2020-05-02 [`70b13d2`](https://github.com/nophead/NopSCADlib/commit/70b13d2f2723caa18a69afb7a179d88366c82c51 "show commit") [C.P.](# "Chris Palmer") Added functions to create property lists that are created by the client.
|
||||
Foot, box, bbox, pbox, `flat_hinge` and `strap_handle`.
|
||||
@@ -1232,7 +1243,7 @@ The implementation files are still lower case for backwards compatibility.
|
||||
|
||||
* 2020-03-03 [`bd60b50`](https://github.com/nophead/NopSCADlib/commit/bd60b50b099d76f6588ddfe900be276ed7d0cf98 "show commit") [C.P.](# "Chris Palmer") Removed lower case tests
|
||||
|
||||
* 2020-03-03 [`4d51cb7`](https://github.com/nophead/NopSCADlib/commit/4d51cb73f3d2b3a92ac4c12a2002bc4918228969 "show commit") [C.P.](# "Chris Palmer") Table of contents now has three vitamin coloumns
|
||||
* 2020-03-03 [`4d51cb7`](https://github.com/nophead/NopSCADlib/commit/4d51cb73f3d2b3a92ac4c12a2002bc4918228969 "show commit") [C.P.](# "Chris Palmer") Table of contents now has three vitamin columns
|
||||
|
||||
* 2020-03-02 [`3b77c97`](https://github.com/nophead/NopSCADlib/commit/3b77c975325851caf5e602ae6ceaa8e5d9126425 "show commit") [C.P.](# "Chris Palmer") Example now include `core.scad` instead of `lib.scad`.
|
||||
|
||||
@@ -1509,7 +1520,7 @@ This means 5mm, 6mm etc comes before 10mm in BOM.
|
||||
|
||||
* 2020-01-11 [`d1324a6`](https://github.com/nophead/NopSCADlib/commit/d1324a670eb7ec898e6663dc9394fc1bd19ef664 "show commit") [M.B.](# "Martin Budden") Added JST-XH connector for pcbs.
|
||||
|
||||
* 2020-02-22 [`599fbba`](https://github.com/nophead/NopSCADlib/commit/599fbba6c2b036a4a22fa04f2e06f67ef5bb9578 "show commit") [C.P.](# "Chris Palmer") Reduced dependecies in `pcb_mount` test.
|
||||
* 2020-02-22 [`599fbba`](https://github.com/nophead/NopSCADlib/commit/599fbba6c2b036a4a22fa04f2e06f67ef5bb9578 "show commit") [C.P.](# "Chris Palmer") Reduced dependencies in `pcb_mount` test.
|
||||
|
||||
### [v2.19.0](https://github.com/nophead/NopSCADlib/releases/tag/v2.19.0 "show release") Additions [...](https://github.com/nophead/NopSCADlib/compare/v2.16.0...v2.19.0 "diff with v2.16.0")
|
||||
* 2020-02-22 [`6097e07`](https://github.com/nophead/NopSCADlib/commit/6097e0709498166c61712094fcc11f083e25959f "show commit") [C.P.](# "Chris Palmer") Updated images and readme.
|
||||
@@ -1825,7 +1836,7 @@ IEC screw length fixed at 10 if inserts used.
|
||||
* 2019-06-14 [`a51e96e`](https://github.com/nophead/NopSCADlib/commit/a51e96ec433c6d347e0d313573585cda9978e7b4 "show commit") [C.P.](# "Chris Palmer") Nuts now show their thickness on the BOM so half nuts have a different description.
|
||||
|
||||
## [v1.0.0](https://github.com/nophead/NopSCADlib/releases/tag/v1.0.0 "show release") Breaking Changes [...](https://github.com/nophead/NopSCADlib/compare/v0.0.1...v1.0.0 "diff with v0.0.1")
|
||||
* 2019-06-14 [`b719601`](https://github.com/nophead/NopSCADlib/commit/b719601a645d899f5477c13a34f857d178bcc3a1 "show commit") [C.P.](# "Chris Palmer") Fixed cable strip parameters and BOM desciption
|
||||
* 2019-06-14 [`b719601`](https://github.com/nophead/NopSCADlib/commit/b719601a645d899f5477c13a34f857d178bcc3a1 "show commit") [C.P.](# "Chris Palmer") Fixed cable strip parameters and BOM description
|
||||
|
||||
#### [v0.0.1](https://github.com/nophead/NopSCADlib/releases/tag/v0.0.1 "show release") Fixes [...](https://github.com/nophead/NopSCADlib/compare/v0.0.0...v0.0.1 "diff with v0.0.0")
|
||||
* 2019-06-14 [`5ede2d0`](https://github.com/nophead/NopSCADlib/commit/5ede2d0895a8a813ef2bc47bf94462d668bc440b "show commit") [C.P.](# "Chris Palmer") Smooth pulleys now show their OD on the BOM.
|
||||
|
@@ -54,7 +54,7 @@ function bbox(screw, sheets, base_sheet, top_sheet, span, size, name = "bbox", s
|
||||
[ screw, sheets, base_sheet, top_sheet, span, size.x, size.y, size.z, name, skip_blocks, star_washers ];
|
||||
|
||||
function bbox_volume(type) = bbox_width(type) * bbox_depth(type) * bbox_height(type) / 1000000; //! Internal volume in litres
|
||||
function bbox_area(type) = let(w = bbox_width(type), d = bbox_depth(type), h = bbox_height(type)) //! Internal surdface area in m^2
|
||||
function bbox_area(type) = let(w = bbox_width(type), d = bbox_depth(type), h = bbox_height(type)) //! Internal surface area in m^2
|
||||
2 * (w * d + w * h + d * h) / 1000000;
|
||||
|
||||
module bbox_shelf_blank(type) { //! 2D template for a shelf
|
||||
|
@@ -45,7 +45,7 @@ function door_hinge_stat_screw() = stat_screw; //! Screw use to fas
|
||||
function door_hinge_stat_width() = stat_width; //! Width of the stationary part
|
||||
function door_hinge_stat_length() = stat_length; //! Length of the stationary part
|
||||
|
||||
module door_hinge_hole_positions(dir = 0) { //! Position chidren at the door hole positions
|
||||
module door_hinge_hole_positions(dir = 0) { //! Position children at the door hole positions
|
||||
hole_pitch = width - 10;
|
||||
|
||||
for(side = [-1, 1])
|
||||
|
@@ -57,7 +57,7 @@ module door_latch_stl() { //! Generates the STL for the printed part
|
||||
}
|
||||
}
|
||||
|
||||
module door_latch_assembly(sheet_thickness = 3) { //! The assembly for a specified sheet thickess
|
||||
module door_latch_assembly(sheet_thickness = 3) { //! The assembly for a specified sheet thickness
|
||||
washer = screw_washer(screw);
|
||||
nut = screw_nut(screw);
|
||||
|
||||
|
@@ -20,7 +20,7 @@
|
||||
//
|
||||
//! Parametric cable drag chain to limit the bend radius of a cable run.
|
||||
//!
|
||||
//! Each link has a maximum bend angle of 45°, so the mininium radius is proportional to the link length.
|
||||
//! Each link has a maximum bend angle of 45°, so the minimum radius is proportional to the link length.
|
||||
//!
|
||||
//! The travel property is how far it can move in each direction, i.e. half the maximum travel if the chain is mounted in the middle of the travel.
|
||||
//!
|
||||
|
@@ -17,7 +17,7 @@
|
||||
// If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
//
|
||||
//! Pintable fan finger guard to match the specified fan. To be `include`d, not `use`d.
|
||||
//! Printable fan finger guard to match the specified fan. To be `include`d, not `use`d.
|
||||
//!
|
||||
//! The ring spacing as well as the number of spokes can be specified, if zero a gasket is generated instead of a guard.
|
||||
//
|
||||
|
@@ -40,7 +40,7 @@ function hinge_knuckles(type) = type[6]; //! How many knuckles
|
||||
function hinge_screw(type) = type[7]; //! Screw type to mount it
|
||||
function hinge_screws(type) = type[8]; //! How many screws
|
||||
function hinge_clearance(type) = type[9]; //! Clearance between knuckles
|
||||
function hinge_margin(type) = type[10]; //! How far to keep the screws from the knuckes
|
||||
function hinge_margin(type) = type[10]; //! How far to keep the screws from the knuckles
|
||||
|
||||
function flat_hinge(name, size, pin_d, knuckle_d, knuckles, screw, screws, clearance, margin) = //! Construct the property list for a flat hinge.
|
||||
[name, size.x, size.y, size.z, pin_d, knuckle_d, knuckles, screw, screws, clearance, margin];
|
||||
@@ -73,7 +73,7 @@ module hinge_male(type, female = false) { //! The half with the stationary
|
||||
assert(kr > pr, "knuckle diameter must be bigger than the pin diameter");
|
||||
|
||||
n = hinge_knuckles(type);
|
||||
assert(n >= 3, "must be at least three knuckes");
|
||||
assert(n >= 3, "must be at least three knuckles");
|
||||
mn = ceil(n / 2); // Male knuckles
|
||||
fn = floor(n / 2); // Female knuckles
|
||||
gap = hinge_clearance(type);
|
||||
|
@@ -41,6 +41,7 @@ overlap = 6;
|
||||
cable_tie_inset = wall + 4;
|
||||
|
||||
function psu_shroud_extent(type) = 15 + wall; //! How far it extends beyond the PSU to clear the connections
|
||||
function psu_shroud_wall(type) = wall; //! The wall thickness
|
||||
function psu_shroud_depth(type) = //! Outside depth of the shroud
|
||||
psu_left_bay(type) + overlap + psu_shroud_extent(type);
|
||||
|
||||
@@ -154,7 +155,7 @@ assembly(str("PSU_shroud_", name), ngb = true) {
|
||||
insert(insert);
|
||||
}
|
||||
|
||||
module psu_shroud_fastened_assembly(type, cable_d, thickness, name, cables = 1) //! Assembly with screws in place
|
||||
module psu_shroud_fastened_assembly(type, cable_d, thickness, name, cables = 1, screw = screw) //! Assembly with screws in place
|
||||
{
|
||||
screw_length = screw_length(screw,thickness + counter_bore, 2, true);
|
||||
|
||||
|
@@ -5353,6 +5353,7 @@ The stl and assembly must be given a name and parameterless wrappers for the stl
|
||||
| `psu_shroud_extent(type)` | How far it extends beyond the PSU to clear the connections |
|
||||
| `psu_shroud_height(type)` | Outside height |
|
||||
| `psu_shroud_screw(type)` | Screw used to fasten |
|
||||
| `psu_shroud_wall(type)` | The wall thickness |
|
||||
| `psu_shroud_width(type)` | Outside width of the shroud |
|
||||
|
||||
### Modules
|
||||
@@ -5361,7 +5362,7 @@ The stl and assembly must be given a name and parameterless wrappers for the stl
|
||||
| `psu_shroud(type, cable_d, name, cables = 1)` | Generate the STL file for a specified ssr and cable |
|
||||
| `psu_shroud_assembly(type, cable_d, name, cables = 1)` | The printed parts with inserts fitted |
|
||||
| `psu_shroud_cable_positions(type, cable_d, cables = 1)` | Place children at the cable tie positions |
|
||||
| `psu_shroud_fastened_assembly(type, cable_d, thickness, name, cables = 1)` | Assembly with screws in place |
|
||||
| `psu_shroud_fastened_assembly(type, cable_d, thickness, name, cables = 1, screw = screw)` | Assembly with screws in place |
|
||||
| `psu_shroud_hole_positions(type)` | Place children at the screw hole positions |
|
||||
| `psu_shroud_holes(type, cable_d, cables = 1)` | Drill the screw and ziptie holes |
|
||||
|
||||
|
@@ -24,6 +24,7 @@ from __future__ import print_function
|
||||
import sys
|
||||
import subprocess
|
||||
import re
|
||||
from tests import do_cmd
|
||||
|
||||
filename = 'CHANGELOG.md'
|
||||
|
||||
@@ -162,3 +163,4 @@ if __name__ == '__main__':
|
||||
|
||||
if not c.comment.startswith('Merge branch') and not c.comment.startswith('Merge pull') and not re.match(r'U..ated changelog.*', c.comment):
|
||||
print('* %s [`%s`](%s "show commit") %s %s\n' % (c.date, c.hash[:7], url + '/commit/' + c.hash, initials(c.author), fixup_comment(c.comment, url)), file = file)
|
||||
do_cmd(('codespell -w -L od ' + filename).split())
|
||||
|
@@ -17,7 +17,7 @@
|
||||
# If not, see <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
# Set command line options from enviroment variables and check if they have changed
|
||||
# Set command line options from environment variables and check if they have changed
|
||||
|
||||
import json, os, deps
|
||||
from colorama import Fore, init
|
||||
|
@@ -82,7 +82,7 @@ def bom_to_assemblies(bom_dir, bounds_map):
|
||||
return [assembly["name"] for assembly in flat_bom]
|
||||
|
||||
def eop(doc_file, last = False, first = False):
|
||||
print('<span></span>', file = doc_file) # An invisable marker for page breaks because markdown takes much longer if the document contains a div
|
||||
print('<span></span>', file = doc_file) # An invisible marker for page breaks because markdown takes much longer if the document contains a div
|
||||
if not first:
|
||||
print('[Top](#TOP)', file = doc_file)
|
||||
if not last:
|
||||
|
@@ -26,7 +26,7 @@
|
||||
//
|
||||
module teardrop(h, r, center = true, truncate = true, chamfer = 0, chamfer_both_ends = true, plus = false) { //! For making horizontal holes that don't need support material, set `truncate = false` to make traditional RepRap teardrops that don't even need bridging
|
||||
module teardrop_2d(r, truncate) {
|
||||
er = layer_height / 2 - eps; // Extrustion edge radius
|
||||
er = layer_height / 2 - eps; // Extrusion edge radius
|
||||
R = plus ? r + er : r; // Corrected radius
|
||||
offset = plus ? -er : 0; // Offset inwards
|
||||
hull()
|
||||
|
@@ -135,4 +135,4 @@ function involute_worm_profile(m, pa = 20, clearance = undef) = //! Calculate wo
|
||||
let(tooth = involute_rack_tooth_profile(m),
|
||||
pitch = PI * m,
|
||||
y_min = min([for(p = tooth) p.y])
|
||||
) [for(p = tooth) [p.x - pitch / 2, p.y - y_min, 0]]; // Offset to be positive in y, centred in x and add 0 z ordintate
|
||||
) [for(p = tooth) [p.x - pitch / 2, p.y - y_min, 0]]; // Offset to be positive in y, centred in x and add 0 z coordinate
|
||||
|
@@ -18,7 +18,7 @@
|
||||
//
|
||||
|
||||
//
|
||||
//! Utility to generate a polhedron by sweeping a 2D profile along a 3D path and utilities for generating paths.
|
||||
//! Utility to generate a polyhedron by sweeping a 2D profile along a 3D path and utilities for generating paths.
|
||||
//!
|
||||
//! The initial orientation is the Y axis of the profile points towards the initial center of curvature, Frenet-Serret style.
|
||||
//! Subsequent rotations use the minimum rotation method.
|
||||
|
@@ -69,7 +69,7 @@ module woven_tube(or, ir, h, center= true, colour = grey(30), colour2, warp = 2,
|
||||
}
|
||||
}
|
||||
|
||||
module rectangular_tube(size, center = true, thickness = 1, fillet = 0.5) { //! Create a retangular tube with filleted corners
|
||||
module rectangular_tube(size, center = true, thickness = 1, fillet = 0.5) { //! Create a rectangular tube with filleted corners
|
||||
extrude_if(size.z, center = center)
|
||||
difference() {
|
||||
rounded_square([size.x, size.y], fillet);
|
||||
|
@@ -19,21 +19,21 @@
|
||||
|
||||
//
|
||||
//! Models timing belt running in a path over toothed or smooth pulleys and calculates an accurate length.
|
||||
//! Only models 2D paths, belt may twist to support crossed belt core XY and other designes where the belt twists!
|
||||
//! Only models 2D paths, belt may twist to support crossed belt core XY and other designs where the belt twists!
|
||||
//!
|
||||
//! By default the path is a closed loop. An open loop can be specified by specifying `open=true`, and in that case the start and end points are not connected, leaving the loop open.
|
||||
//!
|
||||
//! To get a 180 degree twist of the loop, you can use the `twist` argument. `Twist` can be a single number, and in that case the belt will twist after
|
||||
//! the position with that number. Alternatively `twist` can be a list of boolean values with a boolean for each position; the belt will then twist after
|
||||
//! the position that have a `true` value in the `twist` list. If the path is specified with pulley/idler types, then you can use `auto_twist=true`; in
|
||||
//! that case the belt will automatically twist so the back of the belt always runs against idlers and the tooth side runs against pullies. If you use
|
||||
//! that case the belt will automatically twist so the back of the belt always runs against idlers and the tooth side runs against pulleys. If you use
|
||||
//! `open=true` then you might also use `start_twist=true` to let the belt start the part with the back side out.
|
||||
//!
|
||||
//! The path must be specified as a list of positions. Each position should be either a vector with `[x, y, pulley]` or `[x, y, r]`. A pully is a type from
|
||||
//! The path must be specified as a list of positions. Each position should be either a vector with `[x, y, pulley]` or `[x, y, r]`. A pulley is a type from
|
||||
//! `pulleys.scad`, and correct radius and angle will automatically be calculated. Alternatively a radius can be specified directly.
|
||||
//!
|
||||
//! To make the back of the belt run against a smooth pulley on the outside of the loop specify a negative pitch radius.
|
||||
//! Alternativley you can just specify smooth pulleys in the path, and it will then happen automatically.
|
||||
//! Alternatively you can just specify smooth pulleys in the path, and it will then happen automatically.
|
||||
//!
|
||||
//! Individual teeth are not drawn, instead they are represented by a lighter colour.
|
||||
//
|
||||
@@ -60,7 +60,7 @@ module belt(type, points, belt_colour = grey(20), tooth_colour = grey(50), open
|
||||
info = _belt_points_info(type, points, open, twist, auto_twist, start_twist);
|
||||
dotwist = info[0]; // array of booleans, true if a twist happen after the position
|
||||
twisted = info[1]; // array of booleans, true if the belt is twisted at the position
|
||||
pointsx = info[2]; // array of [x,y,r], r is negative if left-angle (points may have pulleys as third element, but pointsx have radi)
|
||||
pointsx = info[2]; // array of [x,y,r], r is negative if left-angle (points may have pulleys as third element, but pointsx have radii)
|
||||
tangents = info[3];
|
||||
arcs = info[4];
|
||||
length = ceil(_belt_length(info, open) / pitch) * pitch;
|
||||
|
@@ -20,7 +20,7 @@
|
||||
//
|
||||
//! A strip of polypropylene used with ribbon cable to make a cable flexible in one direction only.
|
||||
//!
|
||||
//! Modelled with a Bezier spline, which is not quite the same as a minimum energy curve but very close, epecially
|
||||
//! Modelled with a Bezier spline, which is not quite the same as a minimum energy curve but very close, especially
|
||||
//! near the extreme positions, where the model needs to be accurate.
|
||||
//!
|
||||
//! When the sides are constrained then a circular model is more accurate.
|
||||
|
@@ -25,7 +25,7 @@ use <pcb.scad>
|
||||
|
||||
function camera_pcb(type) = type[2]; //! The PCB part of the camera
|
||||
function camera_lens_offset(type) = type[3]; //! Offset of the lens center from the PCB centre
|
||||
function camera_lens(type) = type[4]; //! Stack of lens parts, can be round, rectanular or rounded rectangular, with optional tapered aperture
|
||||
function camera_lens(type) = type[4]; //! Stack of lens parts, can be round, rectangular or rounded rectangular, with optional tapered aperture
|
||||
function camera_connector_pos(type) = type[5]; //! The flex connector block for the camera itself's position
|
||||
function camera_connector_size(type)= type[6]; //! The flex connector block for the camera itself's size
|
||||
|
||||
|
@@ -18,7 +18,7 @@
|
||||
//
|
||||
|
||||
//
|
||||
//! LCD dispays.
|
||||
//! LCD displays.
|
||||
//
|
||||
include <../utils/core/core.scad>
|
||||
|
||||
|
@@ -53,7 +53,7 @@ LCDS7282BPCB = ["", "", 85, 36, 1.65, 0, 2.56, 0, "green", false, [[-2.5, -2.5],
|
||||
[]];
|
||||
|
||||
LCDS7282B = ["LCDS7282B", "LCD display S-7282B", 73.6, 28.7, 9.6, LCDS7282BPCB,
|
||||
[-2.5, 0, 0], // pcb offst
|
||||
[-2.5, 0, 0], // pcb offset
|
||||
[[-64.5 / 2, -14.5 / 2], [64.5 / 2, 14.5 / 2, 0.6]], // aperture
|
||||
[], // touch screen
|
||||
0, // thread length
|
||||
|
@@ -21,7 +21,7 @@
|
||||
//! LED strip lights that can be cut to size.
|
||||
//!
|
||||
//! The definitions are for the full length but they can be cut to size by specifying how many segments,
|
||||
//! which can by calcuated using `light_strip_segments(type, max_length)`.
|
||||
//! which can by calculated using `light_strip_segments(type, max_length)`.
|
||||
//!
|
||||
//! The `light_strip_clip()` module makes a clip to go around the light that can be incorporated into a printed bracket to hold it.
|
||||
//
|
||||
|
@@ -18,9 +18,9 @@
|
||||
//
|
||||
|
||||
//
|
||||
//! Nicodrone OpenGrab V3 electro-permananet magnet, see <https://nicadrone.com/products/epm-v3>.
|
||||
//! Nicodrone OpenGrab V3 electro-permanent magnet, see <https://nicadrone.com/products/epm-v3>.
|
||||
//!
|
||||
//! A permanent magnet that can be magnatized and de-magnatized electronically.
|
||||
//! A permanent magnet that can be magnetized and de-magnetized electronically.
|
||||
//
|
||||
include <../utils/core/core.scad>
|
||||
use <../utils/thread.scad>
|
||||
|
@@ -23,7 +23,7 @@
|
||||
//! Notes on the DSN_VC288:
|
||||
//!
|
||||
//! * The tabs aren't modelled because they can be fully retracted if the PCB is removed.
|
||||
//! * The current connector isn't moddelled as it is awkwardly tall. I remove it and solder wires instead.
|
||||
//! * The current connector isn't modelled as it is awkwardly tall. I remove it and solder wires instead.
|
||||
//
|
||||
include <../utils/core/core.scad>
|
||||
|
||||
|
@@ -45,7 +45,7 @@ function pcb_thickness(type) = type[4]; //! Thickness
|
||||
function pcb_radius(type) = type[5]; //! Corner radius
|
||||
function pcb_hole_d(type) = type[6]; //! Mounting hole diameter
|
||||
function pcb_land_d(type) = type[7]; //! Pad around mounting hole
|
||||
function pcb_colour(type) = type[8]; //! Colour of the subtrate
|
||||
function pcb_colour(type) = type[8]; //! Colour of the substrate
|
||||
function pcb_parts_on_bom(type) = type[9]; //! True if the parts should be separate BOM items
|
||||
function pcb_holes(type) = type[10]; //! List of hole positions
|
||||
function pcb_components(type) = type[11]; //! List of components
|
||||
@@ -72,7 +72,7 @@ function pcb_coord(type, p) = let(l = pcb_length(type), w = pcb_width(type)) //!
|
||||
[(p.x >= 0 ? p.x : l + p.x) - l / 2,
|
||||
(p.y >= 0 ? p.y : w + p.y) - w / 2];
|
||||
|
||||
module pcb_hole_positions(type, all = true) { // Positition children at the hole positions, including holes not used for screws
|
||||
module pcb_hole_positions(type, all = true) { // Position children at the hole positions, including holes not used for screws
|
||||
holes = pcb_holes(type);
|
||||
|
||||
for($i = [0 : 1 : len(holes) - 1]) {
|
||||
|
@@ -18,7 +18,7 @@
|
||||
//
|
||||
|
||||
//
|
||||
//! Powersupplies. Can be a simple cube or can be defined by a list of six faces, each with thickness, holes, cutouts, etc.
|
||||
//! Power supplies. Can be a simple cube or can be defined by a list of six faces, each with thickness, holes, cutouts, etc.
|
||||
//!
|
||||
//! Face order is bottom, top, left, right, front, back.
|
||||
//
|
||||
@@ -246,7 +246,7 @@ module psu(type) { //! Draw a power supply
|
||||
}
|
||||
}
|
||||
}
|
||||
// Special case for lighting type PSUs with teminals at the end
|
||||
// Special case for lighting type PSUs with terminals at the end
|
||||
terminals = psu_terminals(type);
|
||||
if(terminals) {
|
||||
ft = psu_face_thickness(faces[f_front]);
|
||||
|
@@ -114,7 +114,7 @@ S_300_12 = [
|
||||
[// f_top, top
|
||||
[],// holes
|
||||
0.5,// thickness
|
||||
[],// coutouts
|
||||
[],// cutouts
|
||||
false,// grill
|
||||
[215/2 - 47.5, 115/2 - 37.5, fan50x15],
|
||||
[],//iec
|
||||
|
@@ -36,7 +36,7 @@ function pulley_hub_length(type) = type[7]; //! Hub length
|
||||
function pulley_bore(type) = type[8]; //! Bore diameter for shaft
|
||||
function pulley_flange_dia(type) = type[9]; //! Flange diameter
|
||||
function pulley_flange_thickness(type) = type[10]; //! Flange thickness
|
||||
function pulley_screw_length(type) = type[11]; //! Grup screw length
|
||||
function pulley_screw_length(type) = type[11]; //! Grub screw length
|
||||
function pulley_screw_z(type) = type[12]; //! Grub screw position
|
||||
function pulley_screw(type) = type[13]; //! Grub screw type
|
||||
function pulley_screws(type) = type[14]; //! Number of grub screws
|
||||
|
@@ -36,7 +36,7 @@ function ringterm_screw(type) = type[7]; //! Screw type
|
||||
function ringterm_crimp_length(type) = type[8]; //! If non-zero the length of the crimp tube
|
||||
function ringterm_extent(type) = ringterm_length(type) / sqrt(2); //! Space to leave
|
||||
|
||||
module ring_terminal(type) { //! Draw specifeid ring terminal
|
||||
module ring_terminal(type) { //! Draw specified ring terminal
|
||||
screw = ringterm_screw(type);
|
||||
d = 2 * screw_radius(screw);
|
||||
crimp = ringterm_crimp_length(type);
|
||||
|
@@ -20,7 +20,7 @@
|
||||
//
|
||||
//! Steel rods and studding with chamfered ends.
|
||||
//!
|
||||
//! These items are sysmtrical, so by default the origin is in the centre but it can be changed to the bottom.
|
||||
//! These items are symmetrical, so by default the origin is in the centre but it can be changed to the bottom.
|
||||
//
|
||||
include <../utils/core/core.scad>
|
||||
use <../utils/thread.scad>
|
||||
|
@@ -20,7 +20,7 @@
|
||||
//
|
||||
//! Sheet materials. Rectangular with optional rounded corners. Negative radii make a chamfer.
|
||||
//!
|
||||
//! The "Soft" parameter can be used to determinesif the sheet material needs machine screws or wood screws, e.g.:
|
||||
//! The "Soft" parameter can be used to determine if the sheet material needs machine screws or wood screws, e.g.:
|
||||
//!
|
||||
//! * If soft, wood screws will be used, with a pilot hole.
|
||||
//! * If not soft, either tapped holes or a clearance hole and nuts will be used to retain screws.
|
||||
@@ -40,8 +40,8 @@ function sheet_thickness(type) = type[2]; //! Thickness
|
||||
function sheet_colour(type) = type[3]; //! Colour
|
||||
function sheet_is_soft(type) = type[4]; //! Is soft enough for wood screws
|
||||
function sheet_is_woven(type) = !is_undef(type[5]); //! Is a woven sheet, eg carbon fiber
|
||||
function sheet_warp(type) = type[5]; //! Wovern sheet warp
|
||||
function sheet_weft(type) = type[6]; //! Wovern sheet weft
|
||||
function sheet_warp(type) = type[5]; //! Woven sheet warp
|
||||
function sheet_weft(type) = type[6]; //! Woven sheet weft
|
||||
function sheet_colour2(type) = type[7]; //! Second colour for a woven sheet
|
||||
|
||||
module corner(r) {
|
||||
|
@@ -29,7 +29,7 @@ soft_washer_colour = grey(20);
|
||||
hard_washer_colour = grey(80);
|
||||
star_washer_colour = brass;
|
||||
|
||||
function washer_size(type) = type[1]; //! Noiminal size
|
||||
function washer_size(type) = type[1]; //! Nominal size
|
||||
function washer_diameter(type) = type[2]; //! External diameter
|
||||
function washer_thickness(type) = type[3]; //! Thickness
|
||||
function washer_soft(type) = type[4]; //! True if rubber
|
||||
|
@@ -35,7 +35,7 @@ module ziptie(type, r = 5, t = 0) //! Draw specified ziptie wrapped around radiu
|
||||
latch = ziptie_latch(type);
|
||||
lx = latch.x / 2;
|
||||
zt = ziptie_thickness(type);
|
||||
cr = zt; // sharp corner raduus
|
||||
cr = zt; // sharp corner radius
|
||||
z = r + t - cr;
|
||||
x = r - cr;
|
||||
inside_corners = t ? [ [0, 0, r], [-x, z, cr], [x, z, cr] ] : [];
|
||||
|
Reference in New Issue
Block a user