Index: trunk/pcblib/smd/DO214.scad =================================================================== --- trunk/pcblib/smd/DO214.scad (nonexistent) +++ trunk/pcblib/smd/DO214.scad (revision 32643) @@ -0,0 +1,104 @@ +// Parametric model for DO214 AA/AB/AC packages +// +// Copyright (C) 2020 Alexey Kosilin +// +// File distribution license: +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +// +// The above distribution license applies when the file is distributed as a +// stand alone model file or as part of a library, in both cases intended +// for reuse combined by the user with other openscad scripts. +// +// Use license: +// as a special exception, the content of the file may be +// embedded in an openscad script that represents a printed circuit board, +// for example when a board is exported by pcb-rnd. In such use case, +// the content of this file may be copied into the resulting board file +// with or without modifications, without affecting the board file's license +// in any way. +// + +module part_do214 (var) +{ + module impl (L, W, H, P, Tw, Th) + { + delta = 1e-3 ; + $fn = 30 ; + + module lead (P, Tw, Th) + color ([0.9, 0.9, 0.9]) + translate ([-delta, -Tw/2, -delta]) + { + translate ([0.3/2, 0, 0.3/2]) + rotate ([-90, 0, 0]) + cylinder (d = 0.3, h = Tw) ; + + translate ([0.3/2, 0, Th]) + rotate ([-90, 0, 0]) + cylinder (d = 0.3, h = Tw) ; + + translate ([0, 0, 0.3/2]) + cube ([0.3, Tw, Th - 0.3/2]) ; + + translate ([0.3/2, 0, 0]) + cube ([3*P - 0.3/2, Tw, 0.3]) ; + + translate ([0.3/2, 0, Th - 0.3/2]) + cube ([2*P - 0.3/2, Tw, 0.3]) ; + } + + module case() + hull() + { + translate ([0, 0, H/2]) + cube ([L*0.95, W*0.95, H], center = true) ; + + translate ([0, 0, Th]) + cube ([L, W, delta], center = true) ; + } + + color ([0.5, 0.5, 0.5]) + intersection() + { + translate ([-L/3, -5, -5]) + cube ([0.5, 10, 10]) ; + + scale (1.002) + case() ; + } + + color ([0.3, 0.3, 0.3]) + case() ; + + translate ([-L/2-P, 0, 0]) + lead (P, Tw, Th) ; + + translate ([L/2+P, 0, 0]) + mirror ([1, 0, 0]) + lead (P, Tw, Th) ; + } + + variants = [ "AA", "AB", "AC" ] ; + + L = [ 4.57, 7.11, 4.6 ] ; + W = [ 3.94, 6.22, 2.90 ] ; + H = [ 2.5, 2.62, 2.45 ] ; + Tw = [ 2.21, 3.2, 1.65 ] ; + Tl = [ 5.59, 8.13, 5.35 ] ; + + idx = search ([var], variants)[0] ; + + impl (L[idx], W[idx], H[idx], (Tl[idx]-L[idx]) / 2, Tw[idx], H[idx]/2) ; +} Index: trunk/pcblib/smd/SOD123.scad =================================================================== --- trunk/pcblib/smd/SOD123.scad (nonexistent) +++ trunk/pcblib/smd/SOD123.scad (revision 32643) @@ -0,0 +1,89 @@ +// Model for SOD123 package +// +// Copyright (C) 2020 Alexey Kosilin +// +// File distribution license: +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +// +// The above distribution license applies when the file is distributed as a +// stand alone model file or as part of a library, in both cases intended +// for reuse combined by the user with other openscad scripts. +// +// Use license: +// as a special exception, the content of the file may be +// embedded in an openscad script that represents a printed circuit board, +// for example when a board is exported by pcb-rnd. In such use case, +// the content of this file may be copied into the resulting board file +// with or without modifications, without affecting the board file's license +// in any way. +// + +module part_sod123() +{ + $fn = 30 ; + + A = 1.35 ; + D = 1.8 ; + E = 2.84 ; + He = 3.86 ; + + c = 0.15 ; + L = 0.25 ; + b = 0.71 ; + l2 = 0.15 ; + + module lead() + color ([0.9, 0.9, 0.9]) + { + translate ([0, -b/2, L+c]) + rotate ([-90, 0, 0]) + rotate_extrude (angle = 90) + translate ([L, 0, 0]) + square ([c, b]) ; + + translate ([L, -b/2, L+c]) + cube ([c, b, A/2 - (L+c)]) ; + + translate ([c+l2+L, b/2, A/2]) + rotate ([90, -90, 0]) + rotate_extrude (angle = 90) + translate ([l2, 0, 0]) + square ([c, b]) ; + } + + module case() + translate ([He/2 - E/2 - He/2, -D/2, 0]) + cube ([E, D, A]) ; + + translate ([-He/2, 0, 0]) + lead() ; + + translate ([He/2, 0, 0]) + mirror ([1, 0, 0]) + lead() ; + + color ([0.5, 0.5, 0.5]) + intersection() + { + translate ([-He/4, -5, -5]) + cube ([0.3, 10, 10]) ; + + scale (1.002) + case() ; + } + + color ([0.3, 0.3, 0.3]) + case() ; +} Index: trunk/pcblib/smd/SOD323.scad =================================================================== --- trunk/pcblib/smd/SOD323.scad (nonexistent) +++ trunk/pcblib/smd/SOD323.scad (revision 32643) @@ -0,0 +1,79 @@ +// Model for SOD323 package +// +// Copyright (C) 2020 Alexey Kosilin +// +// File distribution license: +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +// +// The above distribution license applies when the file is distributed as a +// stand alone model file or as part of a library, in both cases intended +// for reuse combined by the user with other openscad scripts. +// +// Use license: +// as a special exception, the content of the file may be +// embedded in an openscad script that represents a printed circuit board, +// for example when a board is exported by pcb-rnd. In such use case, +// the content of this file may be copied into the resulting board file +// with or without modifications, without affecting the board file's license +// in any way. +// + +module part_sod323() +{ + $fn = 30 ; + + module lead() + color ([0.9, 0.9, 0.9]) + { + translate ([0, -0.35/2, 0.4]) + rotate ([-90, 0, 0]) + rotate_extrude (angle = 90) + translate ([0.25, 0, 0]) + square ([0.15, 0.35]) ; + + translate ([0.25, -0.35/2, 0.4]) + cube ([0.15, 0.35, 1.35/2 - 0.4]) ; + + translate ([0.5, 0.35/2, 1.35/2]) + rotate ([90, -90, 0]) + rotate_extrude (angle = 90) + translate ([0.1, 0, 0]) + square ([0.15, 0.35]) ; + } + + module case() + translate ([-0.9, -0.7, 0]) + cube ([1.8, 1.4, 1.35]) ; + + translate ([-0.5-0.9, 0, 0]) + lead() ; + + mirror ([1, 0, 0]) + translate ([-0.5-0.9, 0, 0]) + lead() ; + + color ([0.5, 0.5, 0.5]) + intersection() + { + translate ([-0.7, -5, -5]) + cube ([0.3, 10, 10]) ; + + scale (1.002) + case() ; + } + + color ([0.3, 0.3, 0.3]) + case() ; +} Index: trunk/pcblib/smd/TANT.scad =================================================================== --- trunk/pcblib/smd/TANT.scad (nonexistent) +++ trunk/pcblib/smd/TANT.scad (revision 32643) @@ -0,0 +1,95 @@ +// Various tantalum (from A to E) packages model +// +// Copyright (C) 2020 Alexey Kosilin +// +// File distribution license: +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +// +// The above distribution license applies when the file is distributed as a +// stand alone model file or as part of a library, in both cases intended +// for reuse combined by the user with other openscad scripts. +// +// Use license: +// as a special exception, the content of the file may be +// embedded in an openscad script that represents a printed circuit board, +// for example when a board is exported by pcb-rnd. In such use case, +// the content of this file may be copied into the resulting board file +// with or without modifications, without affecting the board file's license +// in any way. +// + +module part_tantalum (sz) +{ + module impl (L, W, H, P, Tw, Th) + { + delta = 1e-3 ; + $fn = 30 ; + + module lead (P, Tw, Th) + color ([0.9, 0.9, 0.9]) + translate ([-delta, -Tw/2, -delta]) + { + translate ([0.3/2, 0, 0.3/2]) + rotate ([-90, 0, 0]) + cylinder (d = 0.3, h = Tw) ; + + translate ([0, 0, 0.3/2]) + cube ([0.3, Tw, Th - 0.3/2]) ; + + translate ([0.3/2, 0, 0]) + cube ([P - 0.3/2, Tw, 0.3]) ; + } + + module case() + hull() + { + translate ([0, 0, H/2]) + cube ([L - 0.3*2, W - 0.2, H], center = true) ; + + translate ([0, 0, Th]) + cube ([L, W, delta], center = true) ; + } + + color ([0.7, 0.55, 0]) + intersection() + { + translate ([-L/3, -5, -5]) + cube ([P/2, 10, 10]) ; + + scale (1.001) + case() ; + } + + color ([0.9, 0.8, 0.2]) + case() ; + + translate ([-L/2, 0, 0]) + lead (P, Tw, Th) ; + + translate ([L/2, 0, 0]) + mirror ([1, 0, 0]) + lead (P, Tw, Th) ; + } + + sizes = "ABCDE" ; + L = [ 3.2, 3.5, 6.0, 7.3, 7.3 ] ; + W = [ 1.6, 2.8, 3.2, 4.3, 4.3 ] ; + H = [ 1.6, 1.9, 2.5, 2.8, 4 ] ; + P = [ 0.8, 0.8, 1.3, 1.3, 1.3 ] ; + Tw = [ 1.2, 2.2, 2.2, 2.4, 2.4 ] ; + + idx = search (sz, sizes)[0] ; + impl (L[idx], W[idx], H[idx], P[idx], Tw[idx], H[idx]/2) ; +} Index: work/openscad/sod123.scad =================================================================== --- work/openscad/sod123.scad (revision 32642) +++ work/openscad/sod123.scad (nonexistent) @@ -1,89 +0,0 @@ -// Model for SOD123 package -// -// Copyright (C) 2020 Alexey Kosilin -// -// File distribution license: -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -// -// The above distribution license applies when the file is distributed as a -// stand alone model file or as part of a library, in both cases intended -// for reuse combined by the user with other openscad scripts. -// -// Use license: -// as a special exception, the content of the file may be -// embedded in an openscad script that represents a printed circuit board, -// for example when a board is exported by pcb-rnd. In such use case, -// the content of this file may be copied into the resulting board file -// with or without modifications, without affecting the board file's license -// in any way. -// - -module part_sod123() -{ - $fn = 30 ; - - A = 1.35 ; - D = 1.8 ; - E = 2.84 ; - He = 3.86 ; - - c = 0.15 ; - L = 0.25 ; - b = 0.71 ; - l2 = 0.15 ; - - module lead() - color ([0.9, 0.9, 0.9]) - { - translate ([0, -b/2, L+c]) - rotate ([-90, 0, 0]) - rotate_extrude (angle = 90) - translate ([L, 0, 0]) - square ([c, b]) ; - - translate ([L, -b/2, L+c]) - cube ([c, b, A/2 - (L+c)]) ; - - translate ([c+l2+L, b/2, A/2]) - rotate ([90, -90, 0]) - rotate_extrude (angle = 90) - translate ([l2, 0, 0]) - square ([c, b]) ; - } - - module case() - translate ([He/2 - E/2 - He/2, -D/2, 0]) - cube ([E, D, A]) ; - - translate ([-He/2, 0, 0]) - lead() ; - - translate ([He/2, 0, 0]) - mirror ([1, 0, 0]) - lead() ; - - color ([0.5, 0.5, 0.5]) - intersection() - { - translate ([-He/4, -5, -5]) - cube ([0.3, 10, 10]) ; - - scale (1.002) - case() ; - } - - color ([0.3, 0.3, 0.3]) - case() ; -} Index: work/openscad/sod323.scad =================================================================== --- work/openscad/sod323.scad (revision 32642) +++ work/openscad/sod323.scad (nonexistent) @@ -1,79 +0,0 @@ -// Model for SOD323 package -// -// Copyright (C) 2020 Alexey Kosilin -// -// File distribution license: -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -// -// The above distribution license applies when the file is distributed as a -// stand alone model file or as part of a library, in both cases intended -// for reuse combined by the user with other openscad scripts. -// -// Use license: -// as a special exception, the content of the file may be -// embedded in an openscad script that represents a printed circuit board, -// for example when a board is exported by pcb-rnd. In such use case, -// the content of this file may be copied into the resulting board file -// with or without modifications, without affecting the board file's license -// in any way. -// - -module part_sod323() -{ - $fn = 30 ; - - module lead() - color ([0.9, 0.9, 0.9]) - { - translate ([0, -0.35/2, 0.4]) - rotate ([-90, 0, 0]) - rotate_extrude (angle = 90) - translate ([0.25, 0, 0]) - square ([0.15, 0.35]) ; - - translate ([0.25, -0.35/2, 0.4]) - cube ([0.15, 0.35, 1.35/2 - 0.4]) ; - - translate ([0.5, 0.35/2, 1.35/2]) - rotate ([90, -90, 0]) - rotate_extrude (angle = 90) - translate ([0.1, 0, 0]) - square ([0.15, 0.35]) ; - } - - module case() - translate ([-0.9, -0.7, 0]) - cube ([1.8, 1.4, 1.35]) ; - - translate ([-0.5-0.9, 0, 0]) - lead() ; - - mirror ([1, 0, 0]) - translate ([-0.5-0.9, 0, 0]) - lead() ; - - color ([0.5, 0.5, 0.5]) - intersection() - { - translate ([-0.7, -5, -5]) - cube ([0.3, 10, 10]) ; - - scale (1.002) - case() ; - } - - color ([0.3, 0.3, 0.3]) - case() ; -} Index: work/openscad/tantalum.scad =================================================================== --- work/openscad/tantalum.scad (revision 32642) +++ work/openscad/tantalum.scad (nonexistent) @@ -1,95 +0,0 @@ -// Various tantalum (from A to E) packages model -// -// Copyright (C) 2020 Alexey Kosilin -// -// File distribution license: -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -// -// The above distribution license applies when the file is distributed as a -// stand alone model file or as part of a library, in both cases intended -// for reuse combined by the user with other openscad scripts. -// -// Use license: -// as a special exception, the content of the file may be -// embedded in an openscad script that represents a printed circuit board, -// for example when a board is exported by pcb-rnd. In such use case, -// the content of this file may be copied into the resulting board file -// with or without modifications, without affecting the board file's license -// in any way. -// - -module part_tantalum (sz) -{ - module impl (L, W, H, P, Tw, Th) - { - delta = 1e-3 ; - $fn = 30 ; - - module lead (P, Tw, Th) - color ([0.9, 0.9, 0.9]) - translate ([-delta, -Tw/2, -delta]) - { - translate ([0.3/2, 0, 0.3/2]) - rotate ([-90, 0, 0]) - cylinder (d = 0.3, h = Tw) ; - - translate ([0, 0, 0.3/2]) - cube ([0.3, Tw, Th - 0.3/2]) ; - - translate ([0.3/2, 0, 0]) - cube ([P - 0.3/2, Tw, 0.3]) ; - } - - module case() - hull() - { - translate ([0, 0, H/2]) - cube ([L - 0.3*2, W - 0.2, H], center = true) ; - - translate ([0, 0, Th]) - cube ([L, W, delta], center = true) ; - } - - color ([0.7, 0.55, 0]) - intersection() - { - translate ([-L/3, -5, -5]) - cube ([P/2, 10, 10]) ; - - scale (1.001) - case() ; - } - - color ([0.9, 0.8, 0.2]) - case() ; - - translate ([-L/2, 0, 0]) - lead (P, Tw, Th) ; - - translate ([L/2, 0, 0]) - mirror ([1, 0, 0]) - lead (P, Tw, Th) ; - } - - sizes = "ABCDE" ; - L = [ 3.2, 3.5, 6.0, 7.3, 7.3 ] ; - W = [ 1.6, 2.8, 3.2, 4.3, 4.3 ] ; - H = [ 1.6, 1.9, 2.5, 2.8, 4 ] ; - P = [ 0.8, 0.8, 1.3, 1.3, 1.3 ] ; - Tw = [ 1.2, 2.2, 2.2, 2.4, 2.4 ] ; - - idx = search (sz, sizes)[0] ; - impl (L[idx], W[idx], H[idx], P[idx], Tw[idx], H[idx]/2) ; -} Index: work/openscad/do214.scad =================================================================== --- work/openscad/do214.scad (revision 32642) +++ work/openscad/do214.scad (nonexistent) @@ -1,104 +0,0 @@ -// Parametric model for DO214 AA/AB/AC packages -// -// Copyright (C) 2020 Alexey Kosilin -// -// File distribution license: -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -// -// The above distribution license applies when the file is distributed as a -// stand alone model file or as part of a library, in both cases intended -// for reuse combined by the user with other openscad scripts. -// -// Use license: -// as a special exception, the content of the file may be -// embedded in an openscad script that represents a printed circuit board, -// for example when a board is exported by pcb-rnd. In such use case, -// the content of this file may be copied into the resulting board file -// with or without modifications, without affecting the board file's license -// in any way. -// - -module part_do214 (var) -{ - module impl (L, W, H, P, Tw, Th) - { - delta = 1e-3 ; - $fn = 30 ; - - module lead (P, Tw, Th) - color ([0.9, 0.9, 0.9]) - translate ([-delta, -Tw/2, -delta]) - { - translate ([0.3/2, 0, 0.3/2]) - rotate ([-90, 0, 0]) - cylinder (d = 0.3, h = Tw) ; - - translate ([0.3/2, 0, Th]) - rotate ([-90, 0, 0]) - cylinder (d = 0.3, h = Tw) ; - - translate ([0, 0, 0.3/2]) - cube ([0.3, Tw, Th - 0.3/2]) ; - - translate ([0.3/2, 0, 0]) - cube ([3*P - 0.3/2, Tw, 0.3]) ; - - translate ([0.3/2, 0, Th - 0.3/2]) - cube ([2*P - 0.3/2, Tw, 0.3]) ; - } - - module case() - hull() - { - translate ([0, 0, H/2]) - cube ([L*0.95, W*0.95, H], center = true) ; - - translate ([0, 0, Th]) - cube ([L, W, delta], center = true) ; - } - - color ([0.5, 0.5, 0.5]) - intersection() - { - translate ([-L/3, -5, -5]) - cube ([0.5, 10, 10]) ; - - scale (1.002) - case() ; - } - - color ([0.3, 0.3, 0.3]) - case() ; - - translate ([-L/2-P, 0, 0]) - lead (P, Tw, Th) ; - - translate ([L/2+P, 0, 0]) - mirror ([1, 0, 0]) - lead (P, Tw, Th) ; - } - - variants = [ "AA", "AB", "AC" ] ; - - L = [ 4.57, 7.11, 4.6 ] ; - W = [ 3.94, 6.22, 2.90 ] ; - H = [ 2.5, 2.62, 2.45 ] ; - Tw = [ 2.21, 3.2, 1.65 ] ; - Tl = [ 5.59, 8.13, 5.35 ] ; - - idx = search ([var], variants)[0] ; - - impl (L[idx], W[idx], H[idx], (Tl[idx]-L[idx]) / 2, Tw[idx], H[idx]/2) ; -}