df40.fpd 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. /* MACHINE-GENERATED ! */
  2. frame pad {
  3. set px = X/2
  4. set py = Y/2
  5. __0: vec @(px, py)
  6. __1: vec @(-px, -py)
  7. pad "$n" . __0
  8. }
  9. frame pads {
  10. set x = e*(xi-pins/4+0.5)
  11. set y = (Yi+Yo)/2*(yi-0.5)
  12. set n = 2*xi+yi+1
  13. loop xi = 0, pins/2-1
  14. loop yi = 0, 1
  15. __0: vec @(x, y)
  16. frame pad .
  17. }
  18. frame outline {
  19. table
  20. { dx }
  21. { -1 }
  22. { 1 }
  23. set x = dx*A/2
  24. set y = Yout/2
  25. __0: vec @(x, y)
  26. __1: vec @(x, -y)
  27. line __0 . w
  28. }
  29. frame corner_pad {
  30. set py = Y/2
  31. set x = cpx/2
  32. set y = Y/2
  33. __0: vec @(x, y)
  34. __1: vec @(-x, -y)
  35. pad "0" . __0
  36. }
  37. frame corner {
  38. set cpx = 0.65mm
  39. table
  40. { dx }
  41. { -1 }
  42. { 1 }
  43. table
  44. { dy }
  45. { -1 }
  46. { 1 }
  47. set x = dx*((pins/2-1)*e/2+0.3mm+cpx/2)
  48. set y = (Yi+Yo)/4*dy
  49. loop if = 1, corners
  50. __0: vec @(x, y)
  51. frame corner_pad .
  52. }
  53. frame keepout {
  54. table
  55. { dx }
  56. { -1 }
  57. { 1 }
  58. set x = ((pins/2-1)*e+X)/2
  59. set y = K/2*dx
  60. loop if = 1, keepout
  61. __0: vec @(-x, y)
  62. __1: vec @(x, y)
  63. line __0 . w
  64. }
  65. package "DF40-${pins}${type}"
  66. unit mm
  67. table
  68. { pins }
  69. { 10 }
  70. { 12 }
  71. { 20 }
  72. { 24 }
  73. { 30 }
  74. { 34 }
  75. { 40 }
  76. { 50 }
  77. { 60 }
  78. { 70 }
  79. { 80 }
  80. { 90 }
  81. { 100 }
  82. set e = 0.4mm
  83. set A = pins*e/2+side
  84. set K = 1.5mm
  85. set X = 0.2mm
  86. set Y = (Yo-Yi)/2
  87. set w = 5mil
  88. table
  89. { type, Yi, Yo, Yout, side, keepout, corners }
  90. { "DS", 2.38mm, 3.78mm, 2.94mm, 2.6mm, 1, 0 }
  91. { "DP", 2.05mm, 3.37mm, 1.85mm, 1.52mm, 0, 1 }
  92. frame pads @
  93. frame keepout @
  94. frame outline @
  95. frame corner @
  96. measy pad.__1 -> pad.__0 side/2+0.5mm
  97. measx pads.__0 >> pads.__0 -Y/2-0.5mm
  98. measx pad.__1 -> pad.__0 Y+0.5mm
  99. measy keepout.__0 >> keepout.__0 0mm
  100. measx outline.__0 >> outline.__0 0.5mm
  101. measy pad.__1 >> pad.__0 side/2+1mm
  102. measy pad.__0 -> pad.__1 side/2+X+0.5mm
  103. measx corner_pad.__1 -> corner_pad.__0 -0.5mm
  104. measx corner_pad.__0 -> pads.__0 -Y-0.5mm
  105. measy outline.__1 -> outline.__0 -0.5mm