sot.fpd 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. /* MACHINE-GENERATED ! */
  2. frame pad {
  3. set x = dx*e
  4. set y = dy*cy/2
  5. __2: vec @(x, y)
  6. __0: vec .(px/2, py/2)
  7. __1: vec __2(-px/2, -py/2)
  8. pad "$n" . __0
  9. }
  10. frame marker {
  11. set x = D/2+r+w+clear
  12. set r = (px-w)/2
  13. set clear = 0.15mm
  14. set y = cy/2
  15. __0: vec @(-x, -y)
  16. __1: vec .(r, 0mm)
  17. circ __0 . w
  18. }
  19. frame outline {
  20. __0: vec @(D/2, E/2)
  21. __1: vec @(D/2, -E/2)
  22. line __0 . w
  23. __2: vec @(-D/2, E/2)
  24. __3: vec @(-D/2, -E/2)
  25. line . __2 w
  26. }
  27. frame pads6 {
  28. table
  29. { n, dx, dy }
  30. { 1, -1, -1 }
  31. { 2, 0, -1 }
  32. { 3, 1, -1 }
  33. { 4, 1, 1 }
  34. { 5, 0, 1 }
  35. { 6, -1, 1 }
  36. loop if = sqrt((N-6)*(N-6)), 0
  37. frame marker @
  38. frame outline @
  39. frame pad @
  40. }
  41. frame pads3 {
  42. table
  43. { n, dx, dy }
  44. { 1, -1, -1 }
  45. { 2, 1, -1 }
  46. { 3, 0, 1 }
  47. loop if = sqrt((N-3)*(N-3)), 0
  48. frame outline @
  49. frame pad @
  50. }
  51. frame pads5 {
  52. table
  53. { n, dx, dy }
  54. { 1, -1, -1 }
  55. { 2, 0, -1 }
  56. { 3, 1, -1 }
  57. { 4, 1, 1 }
  58. { 5, -1, 1 }
  59. loop if = sqrt((N-5)*(N-5)), 0
  60. frame marker @
  61. frame outline @
  62. frame pad @
  63. }
  64. package "SOT-$Name"
  65. unit mm
  66. table
  67. { Name, N, D, E, e, cy, px, py }
  68. { "235", 5, 3.05mm, 1.65mm, 0.95mm, 2.7mm, 0.6mm, 1.05mm }
  69. { "236", 6, 3.05mm, 1.65mm, 0.95mm, 2.7mm, 0.6mm, 1.05mm }
  70. { "323", 3, 2mm, 1.25mm, 0.65mm, 1.9mm, 0.7mm, 0.9mm }
  71. { "363", 6, 2mm, 1.25mm, 0.65mm, 1.9mm, 0.4mm, 0.5mm }
  72. { "523", 3, 1.6mm, 0.8mm, 0.5mm, 1.3mm, 0.4mm, 0.51mm }
  73. { "563", 6, 1.6mm, 1.2mm, 0.5mm, 1.35mm, 0.3mm, 0.45mm }
  74. set w = 5mil
  75. frame pads6 @
  76. frame pads3 @
  77. frame pads5 @
  78. measx outline.__2 >> outline.__0 (cy-E+py)/2+0.5mm
  79. measy outline.__3 >> outline.__2 0.5mm
  80. measx pad.__1 -> pad.__0 -0.5mm
  81. measy pad.__1 -> pad.__0 0.2mm
  82. measx pad.__2 -> pad.__2 0.5mm
  83. measy pad.__2 >> pad.__2 -D