mirror of
https://github.com/nophead/NopSCADlib.git
synced 2025-08-06 15:36:30 +02:00
Added TO247() and TO247_size() to component.scad.
This commit is contained in:
BIN
libtest.png
BIN
libtest.png
Binary file not shown.
Before Width: | Height: | Size: 931 KiB After Width: | Height: | Size: 932 KiB |
@@ -785,6 +785,7 @@ Various electronic components used in hot ends and heated beds.
|
|||||||
| Function | Description |
|
| Function | Description |
|
||||||
|:--- |:--- |
|
|:--- |:--- |
|
||||||
| `TO220_thickness()` | Thickness of the tab of a TO220 |
|
| `TO220_thickness()` | Thickness of the tab of a TO220 |
|
||||||
|
| `TO247_size()` | Body dimensions of a T247 and the hole offset |
|
||||||
| `fack2spm_bezel_size()` | FACK2SPM Bezel dimensions |
|
| `fack2spm_bezel_size()` | FACK2SPM Bezel dimensions |
|
||||||
| `fack2spm_screw()` | Screw type for FACK2SPM |
|
| `fack2spm_screw()` | Screw type for FACK2SPM |
|
||||||
|
|
||||||
@@ -792,6 +793,7 @@ Various electronic components used in hot ends and heated beds.
|
|||||||
| Module | Description |
|
| Module | Description |
|
||||||
|:--- |:--- |
|
|:--- |:--- |
|
||||||
| ` TO220(description, leads = 3, lead_length = 16)` | Draw a TO220 package, use `description` to describe what it is |
|
| ` TO220(description, leads = 3, lead_length = 16)` | Draw a TO220 package, use `description` to describe what it is |
|
||||||
|
| ` TO247(description, leads = 3, lead_length = 20)` | Draw a TO247 package, use `description` to describe what it is |
|
||||||
| `al_clad_resistor(type, value, leads = true)` | Draw an aluminium clad resistor |
|
| `al_clad_resistor(type, value, leads = true)` | Draw an aluminium clad resistor |
|
||||||
| `al_clad_resistor_hole_positions(type)` | Position children at the screw holes of an aluminium clad resistor |
|
| `al_clad_resistor_hole_positions(type)` | Position children at the screw holes of an aluminium clad resistor |
|
||||||
| `al_clad_resistor_holes(type, h = 100)` | Drill screw holes for an aluminium clad resistor |
|
| `al_clad_resistor_holes(type, h = 100)` | Drill screw holes for an aluminium clad resistor |
|
||||||
@@ -812,6 +814,7 @@ Various electronic components used in hot ends and heated beds.
|
|||||||
| Qty | Module call | BOM entry |
|
| Qty | Module call | BOM entry |
|
||||||
| ---:|:--- |:---|
|
| ---:|:--- |:---|
|
||||||
| 1 | `TO220("Generic TO220 package")` | Generic TO220 package |
|
| 1 | `TO220("Generic TO220 package")` | Generic TO220 package |
|
||||||
|
| 1 | `TO247("Generic TO247 package", lead_length = 20)` | Generic TO247 package |
|
||||||
| 8 | `tubing(HSHRNK32)` | Heatshrink sleeving ID 3.2mm x 15mm |
|
| 8 | `tubing(HSHRNK32)` | Heatshrink sleeving ID 3.2mm x 15mm |
|
||||||
| 1 | `resistor(RWM04106R80J)` | Resistor RWM04106R80J 6R8 3W vitreous enamel |
|
| 1 | `resistor(RWM04106R80J)` | Resistor RWM04106R80J 6R8 3W vitreous enamel |
|
||||||
| 1 | `resistor(RIE1212UB5C5R6)` | Resistor UB5C 5R6F 5R6 3W vitreous enamel |
|
| 1 | `resistor(RIE1212UB5C5R6)` | Resistor UB5C 5R6F 5R6 3W vitreous enamel |
|
||||||
|
@@ -42,6 +42,9 @@ module components() {
|
|||||||
TO220("Generic TO220 package");
|
TO220("Generic TO220 package");
|
||||||
|
|
||||||
translate([40, 50])
|
translate([40, 50])
|
||||||
|
TO247("Generic TO247 package");
|
||||||
|
|
||||||
|
translate([40, 80])
|
||||||
panel_USBA();
|
panel_USBA();
|
||||||
|
|
||||||
translate([80, 50])
|
translate([80, 50])
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 113 KiB |
@@ -257,6 +257,79 @@ module TO220(description, leads = 3, lead_length = 16) { //! Draw a TO220 packa
|
|||||||
children();
|
children();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function TO247_size() = [15.7, 20.82, 4.82, 5.58]; //! Body dimensions of a T247 and the hole offset
|
||||||
|
|
||||||
|
module TO247(description, leads = 3, lead_length = 20) { //! Draw a TO247 package, use `description` to describe what it is
|
||||||
|
size = TO247_size();
|
||||||
|
hole_y = size[3];
|
||||||
|
metal = [12.81, 13.08, 1.5];
|
||||||
|
metal_y_offset = 1.35;
|
||||||
|
hole = 3.5;
|
||||||
|
metal_hole = 6.85;
|
||||||
|
lead_height = 2.5;
|
||||||
|
lead_t = 0.61;
|
||||||
|
lead_w2 = 2.5;
|
||||||
|
lead_w = 1.25;
|
||||||
|
lead_pitch = 5.56;
|
||||||
|
lead_l = 3.8;
|
||||||
|
|
||||||
|
vitamin(str("TO247(\"", description, "\"", arg(leads, 3, "leads"), arg(lead_length, 16, "lead_length"), "): ", description));
|
||||||
|
|
||||||
|
module body_shape()
|
||||||
|
difference() {
|
||||||
|
translate([-size.x / 2, 0])
|
||||||
|
square([size.x, size.y]);
|
||||||
|
|
||||||
|
translate([0, size.y - hole_y])
|
||||||
|
circle(d = hole);
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([0, -size.y + hole_y]) {
|
||||||
|
color("silver") {
|
||||||
|
linear_extrude(metal.z)
|
||||||
|
difference() {
|
||||||
|
translate([-metal.x / 2, size.y - metal.y - metal_y_offset])
|
||||||
|
square([metal.x, metal.y]);
|
||||||
|
|
||||||
|
translate([0, size.y - hole_y])
|
||||||
|
circle(d = metal_hole);
|
||||||
|
}
|
||||||
|
|
||||||
|
translate_z(lead_height)
|
||||||
|
linear_extrude(lead_t)
|
||||||
|
intersection() {
|
||||||
|
for(i = [-1 : 1])
|
||||||
|
if(i || leads == 3) {
|
||||||
|
translate([lead_pitch * i, -lead_length / 2, lead_height])
|
||||||
|
square([lead_w, lead_length], center = true);
|
||||||
|
|
||||||
|
translate([lead_pitch * i, -lead_l / 2, lead_height])
|
||||||
|
square([lead_w2, lead_l], center = true);
|
||||||
|
}
|
||||||
|
square([2 * lead_pitch + lead_w, 100], center = true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
color("dimgrey")
|
||||||
|
translate_z(eps) {
|
||||||
|
linear_extrude(metal.z - 2 * eps)
|
||||||
|
body_shape();
|
||||||
|
|
||||||
|
linear_extrude(size.z)
|
||||||
|
difference() {
|
||||||
|
body_shape();
|
||||||
|
|
||||||
|
for(side = [-1, 1])
|
||||||
|
translate([side * size.x / 2, size.y - hole_y])
|
||||||
|
circle(d = 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
translate_z(size.z)
|
||||||
|
children();
|
||||||
|
}
|
||||||
|
|
||||||
panel_USBA_pitch = 30;
|
panel_USBA_pitch = 30;
|
||||||
|
|
||||||
module panel_USBA_hole_positions() //! Place children at hole positions
|
module panel_USBA_hole_positions() //! Place children at hole positions
|
||||||
|
Reference in New Issue
Block a user