From f900748845de6a382b52ba4bfb157e47d87e684f Mon Sep 17 00:00:00 2001
From: Neil Gershenfeld <gersh@cba.mit.edu>
Date: Wed, 27 Nov 2024 20:44:13 -0500
Subject: [PATCH] wip

---
 python/pcb.py | 120 ++++++++++++++++++--------------------------------
 1 file changed, 44 insertions(+), 76 deletions(-)

diff --git a/python/pcb.py b/python/pcb.py
index 4ed409b..8b1e099 100755
--- a/python/pcb.py
+++ b/python/pcb.py
@@ -19,11 +19,11 @@
 # uncomment for desired output
 ############################################################
 
-#output = "top, labels, and exterior"
+output = "top, labels, and exterior"
 #output = "top, labels, and holes"
 #output = "top, labels, holes, and exterior"
 #output = "top, bottom, labels, and exterior"
-output = "top, bottom, labels, holes, and exterior"
+#output = "top, bottom, labels, holes, and exterior"
 #output = "top traces"
 #output = "top traces and exterior"
 #output = "bottom traces"
@@ -1165,36 +1165,65 @@ class C_FND(part):
       self.pad.append(point(0,-.11,0))
       self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'-',angle=90))
 
-pad_0402 = cube(-.0175,.0175,-.014,.014,0,0)
+class R_01005(part):
+   #
+   # 01005 resistor
+   #
+   def __init__(self,value=''):
+      pad = cube(-0.2/2/25.4,0.2/2/25.4,-0.21/2/25.4,0.21/2/25.4,0,0)
+      dx = 0.38/2/25.4
+      self.value = value
+      self.labels = []
+      self.pad = [point(0,0,0)]
+      self.shape = translate(pad,-dx,0,0)
+      self.pad.append(point(-dx,0,0))
+      self.shape = add(self.shape,translate(pad,dx,0,0))
+      self.pad.append(point(dx,0,0))
+
+class R_0201(part):
+   #
+   # 0201 resistor
+   #
+   def __init__(self,value=''):
+      pad = cube(-0.3/2/25.4,0.3/2/25.4,-0.3/2/25.4,0.3/2/25.4,0,0)
+      dx = 0.6/2/25.4
+      self.value = value
+      self.labels = []
+      self.pad = [point(0,0,0)]
+      self.shape = translate(pad,-dx,0,0)
+      self.pad.append(point(-dx,0,0))
+      self.shape = add(self.shape,translate(pad,dx,0,0))
+      self.pad.append(point(dx,0,0))
 
 class R_0402(part):
    #
    # 0402 resistor
    #
    def __init__(self,value=''):
+      pad = cube(-0.8/2/25.4,0.8/2/25.4,-0.6/2/25.4,0.6/2/25.4,0,0)
+      dx = 1.3/2/25.4
       self.value = value
       self.labels = []
       self.pad = [point(0,0,0)]
-      self.shape = translate(pad_0402,-.0265,0,0)
-      self.pad.append(point(-.0265,0,0))
-      self.shape = add(self.shape,translate(pad_0402,.0265,0,0))
-      self.pad.append(point(.0265,0,0))
-
-pad_0602 = cube(-0.9/2/25.4,0.9/2/25.4,-0.6/2/25.4,0.6/2/25.4,0,0)
+      self.shape = translate(pad,-dx,0,0)
+      self.pad.append(point(-dx,0,0))
+      self.shape = add(self.shape,translate(pad,dx,0,0))
+      self.pad.append(point(dx,0,0))
 
 class R_0603(part):
    #
    # 0603 resistor
    #
    def __init__(self,value=''):
-      dy = (0.9/2+0.6/2)/25.4
+      pad = cube(-1/2/25.4,1/2/25.4,-1/2/25.4,1/2/25.4,0,0)
+      dx = 1.7/2/25.4
       self.value = value
       self.labels = []
       self.pad = [point(0,0,0)]
-      self.shape = translate(pad_0402,0,-dy,0)
-      self.pad.append(point(0,-dy,0))
-      self.shape = add(self.shape,translate(pad_0402,0,dy,0))
-      self.pad.append(point(0,dy,0))
+      self.shape = translate(pad,-dx,0,0)
+      self.pad.append(point(-dx,0,0))
+      self.shape = add(self.shape,translate(pad,dx,0,0))
+      self.pad.append(point(dx,0,0))
 
 pad_1206 = cube(-.032,.032,-.034,.034,0,0)
 
@@ -2403,67 +2432,6 @@ class ESP_WROOM_02D(part):
       self.pad.append(point((1.5/2+7.1+2-17.5/2)/25.4,(4*1.5+7.1-20+4.29+2)/25.4,0))
       self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'GND'))
 
-class V4x2(part):
-   #
-   #  4x2 vertical header
-   #    Sullins NPTC042KFMS-RC	
-   #
-   def __init__(self,value=''):
-      pad_header = cube(-.075/2,.075/2,-.04/2,.04/2,0,0)
-      d = .305/2-.07/2
-      self.value = value
-      self.pad = [point(0,0,0)]
-      self.labels = []
-      #
-      # pin 1
-      #
-      self.shape = translate(pad_header,d,.15,0)
-      self.shape = add(self.shape,cylinder(d+.061/2,.15,0,0,.039/2))
-      self.pad.append(point(d,.15,0))
-      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'1'))
-      #
-      # pin 2
-      #
-      self.shape = add(self.shape,translate(pad_header,-d,.15,0))
-      self.pad.append(point(-d,.15,0))
-      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'2'))
-      #
-      # pin 3
-      #
-      self.shape = add(self.shape,translate(pad_header,d,.05,0))
-      self.pad.append(point(d,.05,0))
-      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'3'))
-      #
-      # pin 4
-      #
-      self.shape = add(self.shape,translate(pad_header,-d,.05,0))
-      self.pad.append(point(-d,.05,0))
-      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'4'))
-      #
-      # pin 5
-      #
-      self.shape = add(self.shape,translate(pad_header,d,-.05,0))
-      self.pad.append(point(d,-.05,0))
-      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'5'))
-      #
-      # pin 6
-      #
-      self.shape = add(self.shape,translate(pad_header,-d,-.05,0))
-      self.pad.append(point(-d,-.05,0))
-      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'6'))
-      #
-      # pin 7
-      #
-      self.shape = add(self.shape,translate(pad_header,d,-.15,0))
-      self.pad.append(point(d,-.15,0))
-      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'7'))
-      #
-      # pin 8
-      #
-      self.shape = add(self.shape,translate(pad_header,-d,-.15,0))
-      self.pad.append(point(-d,-.15,0))
-      self.labels.append(self.text(self.pad[-1].x,self.pad[-1].y,self.pad[-1].z,'8'))
-
 class ESP_01(part):
    #
    # ESP-01 4x2 vertical
@@ -10784,6 +10752,7 @@ w = .015 # wire width
 rv = 0.016 # via radius
 rp = 0.03 # pad radius
 mask = .004 # solder mask size
+border = 0.05 # image render border
 
 pcb = PCB(x,y,width,height,mask)
 
@@ -11015,7 +10984,6 @@ else:
 # set limits and parameters
 ############################################################
 
-border = 0.05
 outputs["xmin"] = x-border # min x to render
 outputs["xmax"] = x+pcb.width+border # max x to render
 outputs["ymin"] = y-border # min y to render
-- 
GitLab