From e4ba7cb1644edfd0432515bf5c62482add2ab506 Mon Sep 17 00:00:00 2001 From: Edward Hennessy Date: Sun, 18 Mar 2012 16:23:04 -0700 Subject: [PATCH] Added additonal symbols and test data. --- data/parts-bourns.py | 70 +++++ sql/sqlite/convert.xml | 34 +++ sql/sqlite/create-categories.sql | 10 +- sql/sqlite/create-discretes.sql | 104 +++++++ sql/sqlite/sample.db | Bin 203776 -> 206848 bytes sql/sqlite/symbols.sql | 445 +++++++++++++++++++----------- sym/gparts/gp-capacitor-non-1.sym | 4 +- sym/gparts/gp-capacitor-non-2.sym | 4 +- sym/gparts/gp-capacitor-pol-1.sym | 4 +- sym/gparts/gp-capacitor-pol-2.sym | 4 +- sym/gparts/gp-diode-1.sym | 4 +- sym/gparts/gp-diode-2.sym | 4 +- sym/gparts/gp-schottky-1.sym | 4 +- sym/gparts/gp-schottky-2.sym | 4 +- sym/gparts/gp-tuning-1.sym | 38 +++ sym/gparts/gp-tuning-2.sym | 38 +++ sym/gparts/gp-tunnel-1.sym | 41 +++ sym/gparts/gp-tunnel-2.sym | 41 +++ sym/gparts/gp-tvs-1.sym | 4 +- sym/gparts/gp-tvs-2.sym | 4 +- 20 files changed, 685 insertions(+), 176 deletions(-) create mode 100644 sym/gparts/gp-tuning-1.sym create mode 100644 sym/gparts/gp-tuning-2.sym create mode 100644 sym/gparts/gp-tunnel-1.sym create mode 100644 sym/gparts/gp-tunnel-2.sym diff --git a/data/parts-bourns.py b/data/parts-bourns.py index efb33dc..e8ab999 100755 --- a/data/parts-bourns.py +++ b/data/parts-bourns.py @@ -664,4 +664,74 @@ for package in packages: print " http://www.bourns.com/data/global/pdfs/CD0603_1005-Z.pdf" print " " +############################################################################## +## +## CD1206 Surface mount schottky rectifier diodes +## +############################################################################## + +devices = [ + ( 'B220', 20, 0.50, 2.0 ), + ( 'B240', 40, 0.50, 2.0 ), + ( 'B260', 60, 0.70, 2.0 ), + ( 'B2100', 100, 0.85, 2.0 ) + ] + +for device in devices: + print " " + print " Bourns" + print " CD1206-%s" % device[0] + print " 1206(3216)" + print " schottky" + print " %f" % device[3] + print " http://www.bourns.com/data/global/pdfs/CD1206_B220_B2100.pdf" + print " " + +############################################################################## +## +## CD0603/1005 Surface mount schottky chip diodes +## +############################################################################## + +devices = [ + ( 'B00340', 40, 0.37, 0.03 ), + ( 'B0130L', 30, 0.44, 0.10 ), + ( 'B0140L', 40, 0.55, 0.10 ), + ( 'B0140R', 40, 0.45, 0.10 ), + ( 'B0230', 30, 0.50, 0.20 ), + ( 'B0240', 40, 0.55, 0.20 ) + ] + +for device in devices: + print " " + print " Bourns" + print " CD0603-%s" % device[0] + print " 0603(1806)" + print " schottky" + print " %f" % device[3] + print " http://www.bourns.com/data/global/pdfs/SBCD0603_1005.pdf" + print " " + +############################################################################## +## +## CD0603/1005 Surface mount chip diodes +## +############################################################################## + +devices = [ + ( 'S0180', 90, 1.00, 0.10 ), + ( 'S01575', 100, 1.00, 0.15 ), + ( 'S0180R', 90, 1.00, 0.10 ) + ] + +for device in devices: + print " " + print " Bourns" + print " CD0603-%s" % device[0] + print " 0603(1806)" + print " diode" + print " %f" % device[3] + print " http://www.bourns.com/data/global/pdfs/CD0603_1005.pdf" + print " " + print "" diff --git a/sql/sqlite/convert.xml b/sql/sqlite/convert.xml index ecbc0ec..1d7fd0a 100644 --- a/sql/sqlite/convert.xml +++ b/sql/sqlite/convert.xml @@ -37,6 +37,7 @@ + @@ -304,6 +305,39 @@ + + + + + + + + + + INSERT INTO Diode (PartID, PackageID, AveForwardCurrent) + SELECT + (SELECT PartID FROM Part WHERE PartNumber = ' + + '), + (SELECT PackageID FROM Package WHERE PackageName = ' + + '), + + + + WHERE NOT EXISTS + (SELECT * FROM Diode + JOIN Part USING ( PartID ) + JOIN Company USING ( CompanyID ) + WHERE CompanyName = ' + + ' AND PartNumber = ' + + ' + ); + + + diff --git a/sql/sqlite/create-categories.sql b/sql/sqlite/create-categories.sql index b07810d..a18f2fc 100644 --- a/sql/sqlite/create-categories.sql +++ b/sql/sqlite/create-categories.sql @@ -46,8 +46,14 @@ INSERT INTO Category (CategoryName, ViewName, ParentID) VALUES( ); INSERT INTO Category (CategoryName, ViewName, ParentID) VALUES( - "Small-signal", - "DiodeV", + "Rectifier", + "RectifierDiodeV", + (SELECT CategoryID FROM Category WHERE CategoryName = "Diodes") + ); + +INSERT INTO Category (CategoryName, ViewName, ParentID) VALUES( + "Switching", + "SwitchingDiodeV", (SELECT CategoryID FROM Category WHERE CategoryName = "Diodes") ); diff --git a/sql/sqlite/create-discretes.sql b/sql/sqlite/create-discretes.sql index 6257c48..4ecaf7d 100644 --- a/sql/sqlite/create-discretes.sql +++ b/sql/sqlite/create-discretes.sql @@ -27,6 +27,8 @@ -- discrete semiconductor components. -- +-- --------------------------------------------------------------------------- +-- -- Create a table for diodes. -- -- This table can be used for most diodes, including small-signal, small-signal @@ -35,6 +37,7 @@ -- TODO Should this table include additional fields to indicate the diode type? -- (e.g. Small-signal, Rectifier, Schottky, etc...) -- + CREATE TABLE Diode ( PartID INTEGER PRIMARY KEY, @@ -46,6 +49,11 @@ CREATE TABLE Diode ( ); +-- --------------------------------------------------------------------------- +-- +-- Create a table for diodes. +-- + CREATE TABLE MOSFET ( PartID INTEGER PRIMARY KEY, @@ -58,12 +66,16 @@ CREATE TABLE MOSFET ( ); + +-- --------------------------------------------------------------------------- +-- -- Create a table for TVS diodes. -- -- TODO What is the best way to indicate bidirectional or unidirectional? The -- type may be apparent from the symbol. Then, an additional field would not -- be required. -- + CREATE TABLE TVSDiode ( PartID INTEGER PRIMARY KEY, @@ -73,8 +85,12 @@ CREATE TABLE TVSDiode ( ); + +-- --------------------------------------------------------------------------- +-- -- Create a table for zener diodes. -- + CREATE TABLE ZenerDiode ( PartID INTEGER PRIMARY KEY, @@ -83,8 +99,12 @@ CREATE TABLE ZenerDiode ( ); + +-- --------------------------------------------------------------------------- +-- -- Create a table for bipolar junction transistors. -- + CREATE TABLE BJT ( PartID INTEGER PRIMARY KEY, @@ -97,8 +117,11 @@ CREATE TABLE BJT ( ); +-- --------------------------------------------------------------------------- +-- -- Create a view for diodes. -- + CREATE VIEW DiodeV AS SELECT Part.PartID, @@ -115,6 +138,12 @@ CREATE VIEW DiodeV AS JOIN Company USING ( CompanyID ) JOIN Device USING ( DeviceID ); + +-- --------------------------------------------------------------------------- +-- +-- Create a view for MOSFETs +-- + CREATE VIEW MOSFETV AS SELECT Part.PartID, @@ -134,8 +163,76 @@ CREATE VIEW MOSFETV AS JOIN Company USING ( CompanyID ) JOIN Device USING ( DeviceID ); + +-- --------------------------------------------------------------------------- +-- +-- Create a view for rectifier diodes. +-- +-- Rectifier diodes are stored in the diode table, but are selected for +-- a average forward current greater than or equal to 500 mA. +-- +-- Diodes where the average forward current is null are selected also. +-- This way prevents parts from getting "lost" by not appearing in +-- either table. +-- + +CREATE VIEW RectifierDiodeV AS + SELECT + Part.PartID, + Company.CompanyName, + Part.PartNumber, + Package.PackageName, + Diode.MaxReverseVoltage AS 'VR', + Diode.TypForwardVoltage AS 'VF', + Diode.AveForwardCurrent AS 'IF', + Device.DeviceID + FROM Diode + JOIN Part USING ( PartID ) + JOIN Package USING ( PackageID ) + JOIN Company USING ( CompanyID ) + JOIN Device USING ( DeviceID ) + WHERE + Diode.AveForwardCurrent IS NULL OR + Diode.AveForwardCurrent >= 0.5; + + +-- --------------------------------------------------------------------------- +-- +-- Create a view for Switching diodes. +-- +-- Switching diodes are stored in the diode table, but are selected for +-- a average forward current less than 500 mA. +-- +-- Diodes where the average forward current is null are selected also. +-- This way prevents parts from getting "lost" by not appearing in +-- either table. +-- + +CREATE VIEW SwitchingDiodeV AS + SELECT + Part.PartID, + Company.CompanyName, + Part.PartNumber, + Package.PackageName, + Diode.MaxReverseVoltage AS 'VR', + Diode.TypForwardVoltage AS 'VF', + Diode.AveForwardCurrent AS 'IF', + Device.DeviceID + FROM Diode + JOIN Part USING ( PartID ) + JOIN Package USING ( PackageID ) + JOIN Company USING ( CompanyID ) + JOIN Device USING ( DeviceID ) + WHERE + Diode.AveForwardCurrent IS NULL OR + Diode.AveForwardCurrent < 0.5; + + +-- --------------------------------------------------------------------------- +-- -- Create a view for TVS diodes. -- + CREATE VIEW TVSDiodeV AS SELECT Part.PartID, @@ -147,8 +244,12 @@ CREATE VIEW TVSDiodeV AS JOIN Part USING ( PartID ) JOIN Company USING ( CompanyID ); + +-- --------------------------------------------------------------------------- +-- -- Create a view for zener diodes. -- + CREATE VIEW ZenerDiodeV AS SELECT Part.PartID, @@ -164,6 +265,9 @@ CREATE VIEW ZenerDiodeV AS JOIN Company USING ( CompanyID ) JOIN Device USING ( DeviceID ); + +-- --------------------------------------------------------------------------- +-- -- Create a view for BJTs. -- CREATE VIEW BJTV AS diff --git a/sql/sqlite/sample.db b/sql/sqlite/sample.db index ac665bc113fe6f5be2dacb9d3ced090e59c91b20..e887d14a089fcc9e0106ab09e9606380c04b53b8 100644 GIT binary patch delta 36979 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 delta 34990 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
5)~6#u~k-Fh&b5YZSu7oD*0P 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 diff --git a/sql/sqlite/symbols.sql b/sql/sqlite/symbols.sql index e77967b..d4a0e9c 100644 --- a/sql/sqlite/symbols.sql +++ b/sql/sqlite/symbols.sql @@ -29,8 +29,49 @@ -- This file does not use procedures for compatibilty with SQLite. -- -- --------------------------------------------------------------------------- +-- +-- capacitors +-- +-- TODO Separate capaciors into polarized and non-polarized groups +-- +INSERT INTO Device (DeviceName) + SELECT ( "capacitor" ) WHERE NOT EXISTS ( + SELECT * FROM Device WHERE DeviceName = "capacitor" + ); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "gp-capacitor-non-1.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "capacitor") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "gp-capacitor-non-1.sym"); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "gp-capacitor-non-2.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "capacitor") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "gp-capacitor-non-2.sym"); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "gp-capacitor-pol-1.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "capacitor") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "gp-capacitor-pol-1.sym"); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "gp-capacitor-pol-2.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "capacitor") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "gp-capacitor-pol-2.sym"); + +-- --------------------------------------------------------------------------- +-- -- diodes +-- INSERT INTO Device (DeviceName) SELECT ( "diode" ) WHERE NOT EXISTS ( @@ -58,8 +99,6 @@ INSERT INTO Symbol (SymbolName, DeviceID) WHERE NOT EXISTS (SELECT * FROM Symbol WHERE SymbolName = "diode-3.sym"); - - INSERT INTO Symbol (SymbolName, DeviceID) SELECT "gp-diode-1.sym", @@ -74,170 +113,106 @@ INSERT INTO Symbol (SymbolName, DeviceID) WHERE NOT EXISTS (SELECT * FROM Symbol WHERE SymbolName = "gp-diode-2.sym"); +-- --------------------------------------------------------------------------- +-- +-- diodes, schottky +-- + +INSERT INTO Device (DeviceName) + SELECT ( "schottky" ) WHERE NOT EXISTS ( + SELECT * FROM Device WHERE DeviceName = "schottky" + ); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "gp-schottky-1.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "schottky") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "gp-schottky-1.sym"); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "gp-schottky-2.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "schottky") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "gp-schottky-2.sym"); + +-- --------------------------------------------------------------------------- +-- +-- diodes, tuning +-- + +INSERT INTO Device (DeviceName) + SELECT ( "tuning" ) WHERE NOT EXISTS ( + SELECT * FROM Device WHERE DeviceName = "tuning" + ); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "gp-tuning-1.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "tuning") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "gp-tuning-1.sym"); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "gp-tuning-2.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "tuning") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "gp-tuning-2.sym"); + +-- --------------------------------------------------------------------------- +-- +-- diodes, tunnel +-- + +INSERT INTO Device (DeviceName) + SELECT ( "tunnel" ) WHERE NOT EXISTS ( + SELECT * FROM Device WHERE DeviceName = "tunnel" + ); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "gp-tunnel-1.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "tunnel") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "gp-tunnel-1.sym"); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "gp-tunnel-2.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "tunnel") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "gp-tunnel-2.sym"); + +-- --------------------------------------------------------------------------- +-- +-- diodes, schottky +-- + +INSERT INTO Device (DeviceName) + SELECT ( "tvs" ) WHERE NOT EXISTS ( + SELECT * FROM Device WHERE DeviceName = "tvs" + ); + INSERT INTO Symbol (SymbolName, DeviceID) SELECT "gp-tvs-1.sym", - (SELECT DeviceID FROM Device WHERE DeviceName = "diode") + (SELECT DeviceID FROM Device WHERE DeviceName = "tvs") WHERE NOT EXISTS (SELECT * FROM Symbol WHERE SymbolName = "gp-tvs-1.sym"); INSERT INTO Symbol (SymbolName, DeviceID) SELECT "gp-tvs-2.sym", - (SELECT DeviceID FROM Device WHERE DeviceName = "diode") + (SELECT DeviceID FROM Device WHERE DeviceName = "tvs") WHERE NOT EXISTS (SELECT * FROM Symbol WHERE SymbolName = "gp-tvs-2.sym"); --- n type mosfets - -INSERT INTO Device (DeviceName) - SELECT ( "nmos" ) WHERE NOT EXISTS ( - SELECT * FROM Device WHERE DeviceName = "nmos" - ); - -INSERT INTO Symbol (SymbolName, DeviceID) - SELECT - "nmos-1.sym", - (SELECT DeviceID FROM Device WHERE DeviceName = "nmos") - WHERE NOT EXISTS - (SELECT * FROM Symbol WHERE SymbolName = "nmos-1.sym"); - -INSERT INTO Symbol (SymbolName, DeviceID) - SELECT - "nmos-2.sym", - (SELECT DeviceID FROM Device WHERE DeviceName = "nmos") - WHERE NOT EXISTS - (SELECT * FROM Symbol WHERE SymbolName = "nmos-2.sym"); - -INSERT INTO Symbol (SymbolName, DeviceID) - SELECT - "nmos-3.sym", - (SELECT DeviceID FROM Device WHERE DeviceName = "nmos") - WHERE NOT EXISTS - (SELECT * FROM Symbol WHERE SymbolName = "nmos-3.sym"); - --- npn transistors - -INSERT INTO Device (DeviceName) - SELECT ( "npn" ) WHERE NOT EXISTS ( - SELECT * FROM Device WHERE DeviceName = "npn" - ); - -INSERT INTO Symbol (SymbolName, DeviceID) - SELECT - "npn-1.sym", - (SELECT DeviceID FROM Device WHERE DeviceName = "npn") - WHERE NOT EXISTS - (SELECT * FROM Symbol WHERE SymbolName = "npn-1.sym"); - -INSERT INTO Symbol (SymbolName, DeviceID) - SELECT - "npn-2.sym", - (SELECT DeviceID FROM Device WHERE DeviceName = "npn") - WHERE NOT EXISTS - (SELECT * FROM Symbol WHERE SymbolName = "npn-2.sym"); - -INSERT INTO Symbol (SymbolName, DeviceID) - SELECT - "npn-3.sym", - (SELECT DeviceID FROM Device WHERE DeviceName = "npn") - WHERE NOT EXISTS - (SELECT * FROM Symbol WHERE SymbolName = "npn-3.sym"); - --- p type mosfets - -INSERT INTO Device (DeviceName) - SELECT ( "pmos" ) WHERE NOT EXISTS ( - SELECT * FROM Device WHERE DeviceName = "pmos" - ); - -INSERT INTO Symbol (SymbolName, DeviceID) - SELECT - "pmos-1.sym", - (SELECT DeviceID FROM Device WHERE DeviceName = "pmos") - WHERE NOT EXISTS - (SELECT * FROM Symbol WHERE SymbolName = "pmos-1.sym"); - -INSERT INTO Symbol (SymbolName, DeviceID) - SELECT - "pmos-2.sym", - (SELECT DeviceID FROM Device WHERE DeviceName = "pmos") - WHERE NOT EXISTS - (SELECT * FROM Symbol WHERE SymbolName = "pmos-2.sym"); - -INSERT INTO Symbol (SymbolName, DeviceID) - SELECT - "pmos-3.sym", - (SELECT DeviceID FROM Device WHERE DeviceName = "pmos") - WHERE NOT EXISTS - (SELECT * FROM Symbol WHERE SymbolName = "pmos-3.sym"); - --- pnp transistors - -INSERT INTO Device (DeviceName) - SELECT ( "pnp" ) WHERE NOT EXISTS ( - SELECT * FROM Device WHERE DeviceName = "pnp" - ); - -INSERT INTO Symbol (SymbolName, DeviceID) - SELECT - "pnp-1.sym", - (SELECT DeviceID FROM Device WHERE DeviceName = "pnp") - WHERE NOT EXISTS - (SELECT * FROM Symbol WHERE SymbolName = "pnp-1.sym"); - -INSERT INTO Symbol (SymbolName, DeviceID) - SELECT - "pnp-2.sym", - (SELECT DeviceID FROM Device WHERE DeviceName = "pnp") - WHERE NOT EXISTS - (SELECT * FROM Symbol WHERE SymbolName = "pnp-2.sym"); - -INSERT INTO Symbol (SymbolName, DeviceID) - SELECT - "pnp-3.sym", - (SELECT DeviceID FROM Device WHERE DeviceName = "pnp") - WHERE NOT EXISTS - (SELECT * FROM Symbol WHERE SymbolName = "pnp-3.sym"); - - --- resistors - -INSERT INTO Device (DeviceName) - SELECT ( "resistor" ) WHERE NOT EXISTS ( - SELECT * FROM Device WHERE DeviceName = "resistor" - ); - -INSERT INTO Symbol (SymbolName, DeviceID) - SELECT - "resistor-1.sym", - (SELECT DeviceID FROM Device WHERE DeviceName = "resistor") - WHERE NOT EXISTS - (SELECT * FROM Symbol WHERE SymbolName = "resistor-1.sym"); - -INSERT INTO Symbol (SymbolName, DeviceID) - SELECT - "resistor-2.sym", - (SELECT DeviceID FROM Device WHERE DeviceName = "resistor") - WHERE NOT EXISTS - (SELECT * FROM Symbol WHERE SymbolName = "resistor-2.sym"); - -INSERT INTO Symbol (SymbolName, DeviceID) - SELECT - "gp-resistor-1.sym", - (SELECT DeviceID FROM Device WHERE DeviceName = "resistor") - WHERE NOT EXISTS - (SELECT * FROM Symbol WHERE SymbolName = "gp-resistor-1.sym"); - -INSERT INTO Symbol (SymbolName, DeviceID) - SELECT - "gp-resistor-2.sym", - (SELECT DeviceID FROM Device WHERE DeviceName = "resistor") - WHERE NOT EXISTS - (SELECT * FROM Symbol WHERE SymbolName = "gp-resistor-2.sym"); - - --- zener diodes +-- --------------------------------------------------------------------------- +-- +-- diodes, zener +-- INSERT INTO Device (DeviceName) SELECT ( "zener" ) WHERE NOT EXISTS ( @@ -286,3 +261,165 @@ INSERT INTO Symbol (SymbolName, DeviceID) WHERE NOT EXISTS (SELECT * FROM Symbol WHERE SymbolName = "gp-zener-2.sym"); +-- --------------------------------------------------------------------------- +-- +-- n type mosfets +-- + +INSERT INTO Device (DeviceName) + SELECT ( "nmos" ) WHERE NOT EXISTS ( + SELECT * FROM Device WHERE DeviceName = "nmos" + ); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "nmos-1.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "nmos") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "nmos-1.sym"); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "nmos-2.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "nmos") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "nmos-2.sym"); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "nmos-3.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "nmos") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "nmos-3.sym"); + +-- --------------------------------------------------------------------------- +-- +-- npn transistors +-- + +INSERT INTO Device (DeviceName) + SELECT ( "npn" ) WHERE NOT EXISTS ( + SELECT * FROM Device WHERE DeviceName = "npn" + ); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "npn-1.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "npn") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "npn-1.sym"); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "npn-2.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "npn") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "npn-2.sym"); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "npn-3.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "npn") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "npn-3.sym"); + +-- --------------------------------------------------------------------------- +-- +-- p type mosfets +-- + +INSERT INTO Device (DeviceName) + SELECT ( "pmos" ) WHERE NOT EXISTS ( + SELECT * FROM Device WHERE DeviceName = "pmos" + ); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "pmos-1.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "pmos") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "pmos-1.sym"); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "pmos-2.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "pmos") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "pmos-2.sym"); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "pmos-3.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "pmos") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "pmos-3.sym"); + +-- --------------------------------------------------------------------------- +-- +-- pnp transistors +-- + +INSERT INTO Device (DeviceName) + SELECT ( "pnp" ) WHERE NOT EXISTS ( + SELECT * FROM Device WHERE DeviceName = "pnp" + ); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "pnp-1.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "pnp") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "pnp-1.sym"); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "pnp-2.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "pnp") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "pnp-2.sym"); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "pnp-3.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "pnp") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "pnp-3.sym"); + +-- --------------------------------------------------------------------------- +-- +-- resistors +-- + +INSERT INTO Device (DeviceName) + SELECT ( "resistor" ) WHERE NOT EXISTS ( + SELECT * FROM Device WHERE DeviceName = "resistor" + ); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "resistor-1.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "resistor") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "resistor-1.sym"); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "resistor-2.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "resistor") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "resistor-2.sym"); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "gp-resistor-1.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "resistor") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "gp-resistor-1.sym"); + +INSERT INTO Symbol (SymbolName, DeviceID) + SELECT + "gp-resistor-2.sym", + (SELECT DeviceID FROM Device WHERE DeviceName = "resistor") + WHERE NOT EXISTS + (SELECT * FROM Symbol WHERE SymbolName = "gp-resistor-2.sym"); + diff --git a/sym/gparts/gp-capacitor-non-1.sym b/sym/gparts/gp-capacitor-non-1.sym index 247b4cb..45706a6 100644 --- a/sym/gparts/gp-capacitor-non-1.sym +++ b/sym/gparts/gp-capacitor-non-1.sym @@ -24,9 +24,9 @@ pinseq=2 T 400 700 8 10 1 1 0 1 1 refdes=C? T 400 500 8 10 1 1 0 1 1 -value=$(value) +value=$(Capacitance) T 400 300 8 10 1 1 0 1 1 -footprint=$(footprint) +footprint=$(PackageName) T -5 700 8 10 0 0 0 7 1 device=CAPACITOR L 50 550 350 550 3 30 0 0 -1 -1 diff --git a/sym/gparts/gp-capacitor-non-2.sym b/sym/gparts/gp-capacitor-non-2.sym index 8ef6eb3..481900e 100644 --- a/sym/gparts/gp-capacitor-non-2.sym +++ b/sym/gparts/gp-capacitor-non-2.sym @@ -24,9 +24,9 @@ pinseq=2 T 500 800 8 10 1 1 0 3 1 refdes=C? T 500 400 8 10 1 1 0 5 1 -value=$(value) +value=$(Capacitance) T 500 200 8 10 1 1 0 5 1 -footprint=$(footprint) +footprint=$(PackageName) T 500 1000 8 10 0 0 0 3 1 device=CAPACITOR L 450 450 450 750 3 30 0 0 -1 -1 diff --git a/sym/gparts/gp-capacitor-pol-1.sym b/sym/gparts/gp-capacitor-pol-1.sym index d23a8bb..5f8a65d 100644 --- a/sym/gparts/gp-capacitor-pol-1.sym +++ b/sym/gparts/gp-capacitor-pol-1.sym @@ -24,9 +24,9 @@ pinseq=2 T 400 700 8 10 1 1 0 1 1 refdes=C? T 400 500 8 10 1 1 0 1 1 -value=$(value) +value=$(Capacitance) T 400 300 8 10 1 1 0 1 1 -footprint=$(footprint) +footprint=$(PackageName) T -5 700 8 10 0 0 0 7 1 device=CAPACITOR L 50 550 350 550 3 30 0 0 -1 -1 diff --git a/sym/gparts/gp-capacitor-pol-2.sym b/sym/gparts/gp-capacitor-pol-2.sym index 587bb69..2a2d3e4 100644 --- a/sym/gparts/gp-capacitor-pol-2.sym +++ b/sym/gparts/gp-capacitor-pol-2.sym @@ -24,9 +24,9 @@ pinseq=2 T 500 800 8 10 1 1 0 3 1 refdes=C? T 500 400 8 10 1 1 0 5 1 -value=$(value) +value=$(Capacitance) T 500 200 8 10 1 1 0 5 1 -footprint=$(footprint) +footprint=$(PackageName) T 500 1000 8 10 0 0 0 3 1 device=CAPACITOR L 550 750 550 450 3 30 0 0 -1 -1 diff --git a/sym/gparts/gp-diode-1.sym b/sym/gparts/gp-diode-1.sym index 3f7be4f..ea3bfb5 100644 --- a/sym/gparts/gp-diode-1.sym +++ b/sym/gparts/gp-diode-1.sym @@ -32,6 +32,6 @@ device=DIODE T 500 700 8 10 1 1 0 1 1 refdes=D? T 500 300 8 10 1 1 0 1 1 -footprint=$(footprint) +footprint=$(PackageName) T 500 500 9 10 1 0 0 1 1 -$(part number) +$(PartNumber) diff --git a/sym/gparts/gp-diode-2.sym b/sym/gparts/gp-diode-2.sym index 174ad68..69d7c5a 100644 --- a/sym/gparts/gp-diode-2.sym +++ b/sym/gparts/gp-diode-2.sym @@ -32,6 +32,6 @@ device=DIODE T 500 950 8 10 1 1 0 3 1 refdes=D? T 500 250 8 10 1 1 0 5 1 -footprint=$(footprint) +footprint=$(PackageName) T 500 450 9 10 1 0 0 5 1 -$(part number) +$(PartNumber) diff --git a/sym/gparts/gp-schottky-1.sym b/sym/gparts/gp-schottky-1.sym index 29a7223..00e349c 100644 --- a/sym/gparts/gp-schottky-1.sym +++ b/sym/gparts/gp-schottky-1.sym @@ -31,9 +31,9 @@ device=DIODE T 500 700 8 10 1 1 0 1 1 refdes=D? T 500 300 8 10 1 1 0 1 1 -footprint=$(footprint) +footprint=$(PackageName) T 500 500 9 10 1 0 0 1 1 -$(part number) +$(PartNumber) H 3 20 0 0 -1 -1 0 -1 -1 -1 -1 -1 6 M 100,675 L 50,675 diff --git a/sym/gparts/gp-schottky-2.sym b/sym/gparts/gp-schottky-2.sym index 3e632c5..b4eb62f 100644 --- a/sym/gparts/gp-schottky-2.sym +++ b/sym/gparts/gp-schottky-2.sym @@ -31,9 +31,9 @@ device=DIODE T 500 950 8 10 1 1 0 3 1 refdes=D? T 500 250 8 10 1 1 0 5 1 -footprint=$(footprint) +footprint=$(PackageName) T 500 450 9 10 1 0 0 5 1 -$(part number) +$(PartNumber) H 3 20 0 0 -1 -1 0 -1 -1 -1 -1 -1 6 M 575,600 L 575,550 diff --git a/sym/gparts/gp-tuning-1.sym b/sym/gparts/gp-tuning-1.sym new file mode 100644 index 0000000..bd12b40 --- /dev/null +++ b/sym/gparts/gp-tuning-1.sym @@ -0,0 +1,38 @@ +v 20110115 2 +P 200 1000 200 650 1 0 0 +{ +T 650 750 5 10 0 0 90 2 1 +pintype=pas +T 250 750 9 10 0 1 90 2 1 +pinlabel=K +T 150 750 5 10 0 1 90 0 1 +pinnumber=1 +T 450 750 5 10 0 0 90 2 1 +pinseq=1 +} +P 200 0 200 350 1 0 0 +{ +T 650 250 5 10 0 0 90 8 1 +pintype=pas +T 250 250 9 10 0 1 90 8 1 +pinlabel=A +T 150 250 5 10 0 1 90 6 1 +pinnumber=2 +T 450 250 5 10 0 0 90 8 1 +pinseq=2 +} +L 50 600 350 600 3 20 0 0 -1 -1 +H 3 0 0 0 -1 -1 1 -1 -1 -1 -1 -1 4 +M 50,350 +L 350,350 +L 200,600 +z +T -105 695 8 10 0 0 0 7 1 +device=DIODE +T 500 700 8 10 1 1 0 1 1 +refdes=D? +T 500 300 8 10 1 1 0 1 1 +footprint=$(PackageName) +T 500 500 9 10 1 0 0 1 1 +$(PartNumber) +L 50 650 350 650 3 20 0 0 -1 -1 diff --git a/sym/gparts/gp-tuning-2.sym b/sym/gparts/gp-tuning-2.sym new file mode 100644 index 0000000..9557dba --- /dev/null +++ b/sym/gparts/gp-tuning-2.sym @@ -0,0 +1,38 @@ +v 20110115 2 +P 1000 700 650 700 1 0 0 +{ +T 750 250 5 10 0 0 0 2 1 +pintype=pas +T 750 650 9 10 0 1 0 2 1 +pinlabel=K +T 750 750 5 10 0 1 0 0 1 +pinnumber=1 +T 750 450 5 10 0 0 0 2 1 +pinseq=1 +} +P 0 700 350 700 1 0 0 +{ +T 250 250 5 10 0 0 0 8 1 +pintype=pas +T 250 650 9 10 0 1 0 8 1 +pinlabel=A +T 250 750 5 10 0 1 0 6 1 +pinnumber=2 +T 250 450 5 10 0 0 0 8 1 +pinseq=2 +} +L 600 850 600 550 3 20 0 0 -1 -1 +H 3 0 0 0 -1 -1 1 -1 -1 -1 -1 -1 4 +M 350,850 +L 350,550 +L 600,700 +z +T 500 1100 8 10 0 0 0 3 1 +device=DIODE +T 500 950 8 10 1 1 0 3 1 +refdes=D? +T 500 250 8 10 1 1 0 5 1 +footprint=$(PackageName) +T 500 450 9 10 1 0 0 5 1 +$(PartNumber) +L 650 850 650 550 3 20 0 0 -1 -1 diff --git a/sym/gparts/gp-tunnel-1.sym b/sym/gparts/gp-tunnel-1.sym new file mode 100644 index 0000000..85a56b5 --- /dev/null +++ b/sym/gparts/gp-tunnel-1.sym @@ -0,0 +1,41 @@ +v 20100214 2 +P 200 1000 200 625 1 0 0 +{ +T 650 750 5 10 0 0 90 2 1 +pintype=pas +T 250 750 9 10 0 1 90 2 1 +pinlabel=K +T 150 750 5 10 0 1 90 0 1 +pinnumber=1 +T 450 750 5 10 0 0 90 2 1 +pinseq=1 +} +P 200 0 200 375 1 0 0 +{ +T 650 250 5 10 0 0 90 8 1 +pintype=pas +T 250 250 9 10 0 1 90 8 1 +pinlabel=A +T 150 250 5 10 0 1 90 6 1 +pinnumber=2 +T 450 250 5 10 0 0 90 8 1 +pinseq=2 +} +H 3 0 0 0 -1 -1 1 -1 -1 -1 -1 -1 4 +M 50,375 +L 350,375 +L 200,625 +z +T -105 695 8 10 0 0 0 7 1 +device=DIODE +T 500 700 8 10 1 1 0 1 1 +refdes=D? +T 500 300 8 10 1 1 0 1 1 +footprint=$(PackageName) +T 500 500 9 10 1 0 0 1 1 +$(PartNumber) +H 3 20 0 0 -1 -1 0 -1 -1 -1 -1 -1 4 +M 50,575 +L 50,625 +L 350,625 +L 350,575 diff --git a/sym/gparts/gp-tunnel-2.sym b/sym/gparts/gp-tunnel-2.sym new file mode 100644 index 0000000..1abe511 --- /dev/null +++ b/sym/gparts/gp-tunnel-2.sym @@ -0,0 +1,41 @@ +v 20100214 2 +P 1000 700 625 700 1 0 0 +{ +T 750 250 5 10 0 0 0 2 1 +pintype=pas +T 750 650 9 10 0 1 0 2 1 +pinlabel=K +T 750 750 5 10 0 1 0 0 1 +pinnumber=1 +T 750 450 5 10 0 0 0 2 1 +pinseq=1 +} +P 0 700 375 700 1 0 0 +{ +T 250 250 5 10 0 0 0 8 1 +pintype=pas +T 250 650 9 10 0 1 0 8 1 +pinlabel=A +T 250 750 5 10 0 1 0 6 1 +pinnumber=2 +T 250 450 5 10 0 0 0 8 1 +pinseq=2 +} +H 3 0 0 0 -1 -1 1 -1 -1 -1 -1 -1 4 +M 375,850 +L 375,550 +L 625,700 +z +T 500 1100 8 10 0 0 0 3 1 +device=DIODE +T 500 950 8 10 1 1 0 3 1 +refdes=D? +T 500 250 8 10 1 1 0 5 1 +footprint=$(PackageName) +T 500 450 9 10 1 0 0 5 1 +$(PartNumber) +H 3 20 0 0 -1 -1 0 -1 -1 -1 -1 -1 4 +M 575,850 +L 625,850 +L 625,550 +L 575,550 diff --git a/sym/gparts/gp-tvs-1.sym b/sym/gparts/gp-tvs-1.sym index b42026f..b8dc826 100644 --- a/sym/gparts/gp-tvs-1.sym +++ b/sym/gparts/gp-tvs-1.sym @@ -26,9 +26,9 @@ device=DIODE T 500 700 8 10 1 1 0 1 1 refdes=D? T 500 300 8 10 1 1 0 1 1 -footprint=$(footprint) +footprint=$(PackageName) T 500 500 9 10 1 0 0 1 1 -$(part number) +$(PartNumber) H 3 20 0 0 -1 -1 0 -1 -1 -1 -1 -1 4 M 50,550 L 50,500 diff --git a/sym/gparts/gp-tvs-2.sym b/sym/gparts/gp-tvs-2.sym index 0b96f1c..b776ae4 100644 --- a/sym/gparts/gp-tvs-2.sym +++ b/sym/gparts/gp-tvs-2.sym @@ -26,9 +26,9 @@ device=DIODE T 500 950 8 10 1 1 0 3 1 refdes=D? T 500 250 8 10 1 1 0 5 1 -footprint=$(footprint) +footprint=$(PackageName) T 500 450 9 10 1 0 0 5 1 -$(part number) +$(PartNumber) H 3 20 0 0 -1 -1 0 -1 -1 -1 -1 -1 4 M 450,550 L 500,550