Footprinter uses PCB's native nm units.
authorDan White <dan@whiteaudio.com>
Mon, 16 Jan 2012 18:31:51 +0000 (12:31 -0600)
committerDan White <dan@whiteaudio.com>
Mon, 16 Jan 2012 18:31:51 +0000 (12:31 -0600)
test-pcb/fp/footprinter.py

index 90304257dd05aaa456f82d26f6cc54adaed2e344..51caec080cf4c6efcae902c30526e7a85b06e377 100644 (file)
@@ -8,21 +8,22 @@ Licence: Creative Commons Attribution 3.0 Unported License
 <http://creativecommons.org/licenses/by-sa/3.0/>
 '''
 
+def um(x):
+       '''Get standard units from a measurement in micrometers.'''
+       return int(x * 1000)
+
 def mm (x):
        '''Get standard units from a measurement in millimeters.'''
-       return x * 1e5 / 25.4
+       return int(x * 1000000)
        
 def mil (x):
        '''Get standard units from a measurement in thousandths of an inch.'''
-       return x * 100
+       return int(x * 25400)
        
 def inch (x):
        '''Get standard units from a measurement in inches.'''
-       return x * 1e5
+       return int(x * 25400000)
        
-def hmil (x):
-       '''For completeness: Get standard units from a measurement in hundreths of a mil.'''
-       return x
 
 class Footprint (object):
        def __init__ (self, padpins=None, linearcs=None, sflags='', description=''):
@@ -46,7 +47,7 @@ class Footprint (object):
                        self.write (f)
                        
        def write (self, f):
-               f.write ('Element ["%s" "%s" "" "" %d %d %d %d %d %d "%s"]\n'
+               f.write ('Element ["%s" "%s" "" "" %dnm %dnm %dnm %dnm %d %d "%s"]\n'
                        % (self.sflags, self.description, self.mx, self.my
                        , self.tx, self.ty, self.tdir, self.tscale, self.tsflags)
                        )
@@ -85,7 +86,7 @@ class Pad (object):
                self.sflags = sflags
                
        def write (self, f):
-               f.write ('Pad [%d %d %d %d %d %d %d "%s" "%s" "%s"]\n'
+               f.write ('Pad [%dnm %dnm %dnm %dnm %dnm %dnm %dnm "%s" "%s" "%s"]\n'
                        % (self.rx1, self.ry1, self.rx2, self.ry2
                                , self.thickness, self.clearance, self.mask
                                , self.name, self.number, self.sflags
@@ -106,7 +107,7 @@ class Pin (object):
                self.sflags = sflags
                
        def write (self, f):
-               f.write ('Pin [%d %d %d %d %d %d "%s" "%s" "%s"]\n'
+               f.write ('Pin [%dnm %dnm %dnm %dnm %dnm %dnm "%s" "%s" "%s"]\n'
                        % (self.rx, self.ry
                                , self.thickness, self.clearance, self.mask, self.drill
                                , self.name, self.number, self.sflags
@@ -122,7 +123,7 @@ class ElementLine (object):
                self.thickness = thickness
        
        def write (self, f):
-               f.write ('ElementLine [%d %d %d %d %d]\n'
+               f.write ('ElementLine [%dnm %dnm %dnm %dnm %dnm]\n'
                        % (self.rx1, self.ry1, self.rx2, self.ry2, self.thickness)
                        )                       
        
@@ -137,6 +138,6 @@ class ElementArc (object):
                self.thickness = thickness
        
        def write (self, f):
-               f.write ('ElementArc [%d %d %d %d %d %d %d]\n'
+               f.write ('ElementArc [%dnm %dnm %dnm %dnm %d %d %dnm]\n'
                        % (self.rx, self.ry, self.width, self.height, self.start_angle, self.delta_angle, self.thickness)
                        )