Commit a71823b4 authored by Brian Sidebotham's avatar Brian Sidebotham

* Missing changes

parents 64bae1cf dda896d5
......@@ -26,6 +26,19 @@ set( CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMakeModules )
#option( USE_KIWAY_DLLS "Build the major modules as KIFACE DLLs or DSOs, will soon be the norm." ON )
set( USE_KIWAY_DLLS true ) # this is now mandatory, the code is the same anyways, the old code is gone.
# The desire is to migrate designs *away from* case independence, and to create designs which use
# literally (case specific) interpreted component names. But for backwards compatibility,
# you may turn OFF this option if you really must. (Remember that with KiCad using text
# data files, typically you would be better off simply doctoring those files into
# a case literal state with a text editor and move forward into the brave new
# world of case specificity. Also, BOM generators may not work properly when you
# have this option turned OFF, the xml export's referential integrity is broken
# on library part name. Hence the default is ON now, as of 29-Jan-2014.
option( KICAD_KEEPCASE
"ON= case specific string matching on component names, OFF= match names as if they were spelt using uppercase."
ON
)
option( USE_WX_GRAPHICS_CONTEXT
"Use wxGraphicsContext for rendering ( default OFF). Warning, this is experimental" )
......@@ -231,6 +244,10 @@ if( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
endif( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
if( KICAD_KEEPCASE )
add_definitions( -DKICAD_KEEPCASE )
endif()
if( USE_WX_OVERLAY OR APPLE )
add_definitions( -DUSE_WX_OVERLAY )
endif()
......
......@@ -177,10 +177,10 @@ ENDDEF
# 74LS245
#
DEF 74LS245 U 0 10 Y Y 1 F N
F0 "U" 100 575 60 H V L BNN
F1 "74LS245" 50 -575 60 H V L TNN
F2 "" 0 0 60 H V C CNN
F3 "" 0 0 60 H V C CNN
F0 "U" 100 575 50 H V L BNN
F1 "74LS245" 50 -575 50 H V L TNN
F2 "" 50 -650 30 H V L CNN
F3 "" 100 575 30 H V C CNN
ALIAS 74HC245
DRAW
X GND 10 0 -550 0 U 60 60 0 0 W N
......@@ -358,7 +358,7 @@ DEF C C 0 10 N Y 1 F N
F0 "C" 0 100 40 H V L CNN
F1 "C" 6 -85 40 H V L CNN
F2 "" 38 -150 30 H V C CNN
F3 "" 0 0 60 H V C CNN
F3 "" 0 100 30 H V C CNN
$FPLIST
SM*
C?
......@@ -406,7 +406,7 @@ DEF CP C 0 10 N N 1 F N
F0 "C" 50 100 40 H V L CNN
F1 "CP" 50 -100 40 H V L CNN
F2 "" 100 -150 30 H V C CNN
F3 "" 0 0 300 H V C CNN
F3 "" 50 100 30 H V C CNN
ALIAS CAPAPOL
$FPLIST
CP*
......
Cmp-Mod V01 Created by CvPcb (2013-08-20 BZR 4294)-product date = 21/08/2013 18:12:43
Cmp-Mod V01 Created by Cvpcb (2014-09-16 BZR 5138)-product date = 20/09/2014 09:12:59
BeginCmp
TimeStamp = /322D3011;
......@@ -11,56 +11,56 @@ BeginCmp
TimeStamp = /32307DE2;
Reference = C1;
ValeurCmp = 47uF;
IdModule = CP6;
IdModule = discret:CP6;
EndCmp
BeginCmp
TimeStamp = /32307ECF;
Reference = C2;
ValeurCmp = 47pF;
IdModule = C1;
IdModule = discret:C1;
EndCmp
BeginCmp
TimeStamp = /32307ED4;
Reference = C3;
ValeurCmp = 47pF;
IdModule = C1;
IdModule = discret:C1;
EndCmp
BeginCmp
TimeStamp = /32307DCF;
Reference = C4;
ValeurCmp = 47uF;
IdModule = CP6;
IdModule = discret:CP6;
EndCmp
BeginCmp
TimeStamp = /32307DCA;
Reference = C5;
ValeurCmp = 47uF;
IdModule = CP6;
IdModule = discret:CP6;
EndCmp
BeginCmp
TimeStamp = /32307DC0;
Reference = C6;
ValeurCmp = 47uF;
IdModule = CP6;
IdModule = discret:CP6;
EndCmp
BeginCmp
TimeStamp = /322D32AC;
Reference = D1;
ValeurCmp = LED;
IdModule = LEDV;
IdModule = discret:LEDV;
EndCmp
BeginCmp
TimeStamp = /322D32BE;
Reference = D2;
ValeurCmp = LED;
IdModule = LEDV;
IdModule = discret:LEDV;
EndCmp
BeginCmp
......@@ -74,84 +74,84 @@ BeginCmp
TimeStamp = /3256759C;
Reference = P1;
ValeurCmp = DB25FEMELLE;
IdModule = DB25FC;
IdModule = connect:DB25FC;
EndCmp
BeginCmp
TimeStamp = /32307EA1;
Reference = R1;
ValeurCmp = 100K;
IdModule = R3;
IdModule = discret:R3;
EndCmp
BeginCmp
TimeStamp = /32307EAA;
Reference = R2;
ValeurCmp = 1K;
IdModule = R3;
IdModule = discret:R3;
EndCmp
BeginCmp
TimeStamp = /324002E6;
Reference = R3;
ValeurCmp = 10K;
IdModule = R3;
IdModule = discret:R3;
EndCmp
BeginCmp
TimeStamp = /322D3295;
Reference = R4;
ValeurCmp = 330;
IdModule = R3;
IdModule = discret:R3;
EndCmp
BeginCmp
TimeStamp = /322D32A0;
Reference = R5;
ValeurCmp = 330;
IdModule = R3;
IdModule = discret:R3;
EndCmp
BeginCmp
TimeStamp = /325679C1;
Reference = RR1;
ValeurCmp = 9x1K;
IdModule = r_pack9;
IdModule = discret:r_pack9;
EndCmp
BeginCmp
TimeStamp = /322D31F4;
Reference = U1;
ValeurCmp = 74LS245;
IdModule = DIP-20__300;
IdModule = dip_sockets:DIP-20__300;
EndCmp
BeginCmp
TimeStamp = /322D35B4;
Reference = U2;
ValeurCmp = 74LS688;
IdModule = DIP-20__300;
IdModule = dip_sockets:DIP-20__300;
EndCmp
BeginCmp
TimeStamp = /4A087146;
Reference = U3;
ValeurCmp = 74LS541;
IdModule = DIP-20__300;
IdModule = dip_sockets:DIP-20__300;
EndCmp
BeginCmp
TimeStamp = /3240023F;
Reference = U5;
ValeurCmp = 628128;
IdModule = DIP-32__600;
IdModule = dip_sockets:DIP-32__600;
EndCmp
BeginCmp
TimeStamp = /322D321C;
Reference = U8;
ValeurCmp = EP600;
IdModule = DIP-24__300;
IdModule = dip_sockets:DIP-24__300;
EndCmp
BeginCmp
......@@ -165,7 +165,7 @@ BeginCmp
TimeStamp = /32307EC0;
Reference = X1;
ValeurCmp = 8MHz;
IdModule = HC-18UH;
IdModule = discret:HC-18UH;
EndCmp
EndListe
This source diff could not be displayed because it is too large. You can view the blob instead.
(export (version D)
(design
(source F:/kicad/share/demos/interf_u/interf_u.sch)
(date "21/08/2013 18:14:13")
(tool "eeschema (2013-08-20 BZR 4294)-product"))
(source F:/kicad-launchpad/testing/demos/interf_u/interf_u.sch)
(date "20/09/2014 09:13:50")
(tool "Eeschema (2014-09-16 BZR 5138)-product"))
(components
(comp (ref U3)
(value 74LS541)
(footprint DIP-20__300)
(footprint dip_sockets:DIP-20__300)
(libsource (lib 74xx) (part 74LS541))
(sheetpath (names /) (tstamps /))
(tstamp 4A087146))
......@@ -18,85 +18,85 @@
(tstamp 32568D1E))
(comp (ref RR1)
(value 9x1K)
(footprint r_pack9)
(footprint discret:r_pack9)
(libsource (lib device) (part RR9))
(sheetpath (names /) (tstamps /))
(tstamp 325679C1))
(comp (ref P1)
(value DB25FEMELLE)
(footprint DB25FC)
(footprint connect:DB25FC)
(libsource (lib conn) (part DB25))
(sheetpath (names /) (tstamps /))
(tstamp 3256759C))
(comp (ref R3)
(value 10K)
(footprint R3)
(footprint discret:R3)
(libsource (lib device) (part R))
(sheetpath (names /) (tstamps /))
(tstamp 324002E6))
(comp (ref U5)
(value 628128)
(footprint DIP-32__600)
(footprint dip_sockets:DIP-32__600)
(libsource (lib memory) (part 628128))
(sheetpath (names /) (tstamps /))
(tstamp 3240023F))
(comp (ref C3)
(value 47pF)
(footprint C1)
(footprint discret:C1)
(libsource (lib device) (part C))
(sheetpath (names /) (tstamps /))
(tstamp 32307ED4))
(comp (ref C2)
(value 47pF)
(footprint C1)
(footprint discret:C1)
(libsource (lib device) (part C))
(sheetpath (names /) (tstamps /))
(tstamp 32307ECF))
(comp (ref X1)
(value 8MHz)
(footprint HC-18UH)
(footprint discret:HC-18UH)
(libsource (lib device) (part CRYSTAL))
(sheetpath (names /) (tstamps /))
(tstamp 32307EC0))
(comp (ref R2)
(value 1K)
(footprint R3)
(footprint discret:R3)
(libsource (lib device) (part R))
(sheetpath (names /) (tstamps /))
(tstamp 32307EAA))
(comp (ref R1)
(value 100K)
(footprint R3)
(footprint discret:R3)
(libsource (lib device) (part R))
(sheetpath (names /) (tstamps /))
(tstamp 32307EA1))
(comp (ref C1)
(value 47uF)
(footprint CP6)
(footprint discret:CP6)
(libsource (lib device) (part CP))
(sheetpath (names /) (tstamps /))
(tstamp 32307DE2))
(comp (ref C4)
(value 47uF)
(footprint CP6)
(footprint discret:CP6)
(libsource (lib device) (part CP))
(sheetpath (names /) (tstamps /))
(tstamp 32307DCF))
(comp (ref C5)
(value 47uF)
(footprint CP6)
(footprint discret:CP6)
(libsource (lib device) (part CP))
(sheetpath (names /) (tstamps /))
(tstamp 32307DCA))
(comp (ref C6)
(value 47uF)
(footprint CP6)
(footprint discret:CP6)
(libsource (lib device) (part CP))
(sheetpath (names /) (tstamps /))
(tstamp 32307DC0))
(comp (ref U2)
(value 74LS688)
(footprint DIP-20__300)
(footprint dip_sockets:DIP-20__300)
(libsource (lib 74xx) (part 74LS688))
(sheetpath (names /) (tstamps /))
(tstamp 322D35B4))
......@@ -111,37 +111,37 @@
(tstamp 322D32FA))
(comp (ref D2)
(value LED)
(footprint LEDV)
(footprint discret:LEDV)
(libsource (lib device) (part LED))
(sheetpath (names /) (tstamps /))
(tstamp 322D32BE))
(comp (ref D1)
(value LED)
(footprint LEDV)
(footprint discret:LEDV)
(libsource (lib device) (part LED))
(sheetpath (names /) (tstamps /))
(tstamp 322D32AC))
(comp (ref R5)
(value 330)
(footprint R3)
(footprint discret:R3)
(libsource (lib device) (part R))
(sheetpath (names /) (tstamps /))
(tstamp 322D32A0))
(comp (ref R4)
(value 330)
(footprint R3)
(footprint discret:R3)
(libsource (lib device) (part R))
(sheetpath (names /) (tstamps /))
(tstamp 322D3295))
(comp (ref U8)
(value EP600)
(footprint DIP-24__300)
(footprint dip_sockets:DIP-24__300)
(libsource (lib special) (part EP600))
(sheetpath (names /) (tstamps /))
(tstamp 322D321C))
(comp (ref U1)
(value 74LS245)
(footprint DIP-20__300)
(footprint dip_sockets:DIP-20__300)
(libsource (lib 74xx) (part 74LS245))
(sheetpath (names /) (tstamps /))
(tstamp 322D31F4))
......@@ -165,6 +165,8 @@
(pin (num 1) (name ~) (type passive))
(pin (num 2) (name ~) (type passive))))
(libpart (lib device) (part CP)
(aliases
(alias CAPAPOL))
(description "Condensateur polarise")
(footprints
(fp CP*)
......@@ -349,6 +351,8 @@
(pin (num 24) (name P24) (type passive))
(pin (num 25) (name P25) (type passive))))
(libpart (lib 74xx) (part 74LS245)
(aliases
(alias 74HC245))
(description "Octal BUS Transceivers, 3 State out")
(fields
(field (name Reference) U)
......@@ -464,6 +468,8 @@
(pin (num 31) (name A15) (type input))
(pin (num 32) (name VCC) (type power_in))))
(libpart (lib xilinx) (part 4003APG120)
(aliases
(alias 4003PG120))
(fields
(field (name Reference) U)
(field (name Value) 4003APG120)
......@@ -617,45 +623,45 @@
(pin (num 24) (name VCC) (type input)))))
(libraries
(library (logical device)
(uri F:\kicad\share\library\device.lib))
(uri f:\kicad\share\library\device.lib))
(library (logical conn)
(uri F:\kicad\share\library\conn.lib))
(uri f:\kicad\share\library\conn.lib))
(library (logical 74xx)
(uri F:\kicad\share\library\74xx.lib))
(uri f:\kicad\share\library\74xx.lib))
(library (logical memory)
(uri F:\kicad\share\library\memory.lib))
(uri f:\kicad\share\library\memory.lib))
(library (logical xilinx)
(uri F:\kicad\share\library\xilinx.lib))
(uri f:\kicad\share\library\xilinx.lib))
(library (logical special)
(uri F:\kicad\share\library\special.lib)))
(uri f:\kicad\share\library\special.lib)))
(nets
(net (code 1) (name "")
(net (code 1) (name "Net-(BUS1-Pad28)")
(node (ref BUS1) (pin 28)))
(net (code 2) (name "")
(net (code 2) (name "Net-(BUS1-Pad27)")
(node (ref BUS1) (pin 27)))
(net (code 3) (name "")
(net (code 3) (name "Net-(BUS1-Pad26)")
(node (ref BUS1) (pin 26)))
(net (code 4) (name "")
(net (code 4) (name "Net-(BUS1-Pad25)")
(node (ref BUS1) (pin 25)))
(net (code 5) (name "")
(net (code 5) (name "Net-(BUS1-Pad24)")
(node (ref BUS1) (pin 24)))
(net (code 6) (name "")
(net (code 6) (name "Net-(BUS1-Pad23)")
(node (ref BUS1) (pin 23)))
(net (code 7) (name "")
(net (code 7) (name "Net-(BUS1-Pad22)")
(node (ref BUS1) (pin 22)))
(net (code 8) (name "")
(net (code 8) (name "Net-(BUS1-Pad21)")
(node (ref BUS1) (pin 21)))
(net (code 9) (name "")
(net (code 9) (name "Net-(BUS1-Pad20)")
(node (ref BUS1) (pin 20)))
(net (code 10) (name "")
(net (code 10) (name "Net-(BUS1-Pad19)")
(node (ref BUS1) (pin 19)))
(net (code 11) (name "")
(net (code 11) (name "Net-(BUS1-Pad18)")
(node (ref BUS1) (pin 18)))
(net (code 12) (name "")
(net (code 12) (name "Net-(BUS1-Pad17)")
(node (ref BUS1) (pin 17)))
(net (code 13) (name "")
(net (code 13) (name "Net-(BUS1-Pad16)")
(node (ref BUS1) (pin 16)))
(net (code 14) (name "")
(net (code 14) (name "Net-(BUS1-Pad15)")
(node (ref BUS1) (pin 15)))
(net (code 15) (name /PC-RST)
(node (ref BUS1) (pin 2))
......@@ -667,7 +673,7 @@
(net (code 17) (name /PC-IOW)
(node (ref U3) (pin 6))
(node (ref BUS1) (pin 13)))
(net (code 18) (name "")
(net (code 18) (name "Net-(BUS1-Pad12)")
(node (ref BUS1) (pin 12)))
(net (code 19) (name /PC-A1)
(node (ref BUS1) (pin 61))
......@@ -748,61 +754,61 @@
(node (ref U9) (pin N10))
(node (ref BUS1) (pin 42))
(node (ref U2) (pin 1)))
(net (code 24) (name "")
(net (code 24) (name "Net-(BUS1-Pad43)")
(node (ref BUS1) (pin 43)))
(net (code 25) (name "")
(net (code 25) (name "Net-(BUS1-Pad11)")
(node (ref BUS1) (pin 11)))
(net (code 26) (name "")
(net (code 26) (name "Net-(BUS1-Pad10)")
(node (ref BUS1) (pin 10)))
(net (code 27) (name "")
(net (code 27) (name "Net-(BUS1-Pad9)")
(node (ref BUS1) (pin 9)))
(net (code 28) (name "")
(net (code 28) (name "Net-(BUS1-Pad8)")
(node (ref BUS1) (pin 8)))
(net (code 29) (name "")
(net (code 29) (name "Net-(BUS1-Pad7)")
(node (ref BUS1) (pin 7)))
(net (code 30) (name "")
(net (code 30) (name "Net-(BUS1-Pad6)")
(node (ref BUS1) (pin 6)))
(net (code 31) (name "")
(net (code 31) (name "Net-(BUS1-Pad5)")
(node (ref BUS1) (pin 5)))
(net (code 32) (name "")
(net (code 32) (name "Net-(BUS1-Pad4)")
(node (ref BUS1) (pin 4)))
(net (code 33) (name "")
(net (code 33) (name "Net-(BUS1-Pad50)")
(node (ref BUS1) (pin 50)))
(net (code 34) (name "")
(net (code 34) (name "Net-(BUS1-Pad49)")
(node (ref BUS1) (pin 49)))
(net (code 35) (name "")
(net (code 35) (name "Net-(BUS1-Pad48)")
(node (ref BUS1) (pin 48)))
(net (code 36) (name "")
(net (code 36) (name "Net-(BUS1-Pad47)")
(node (ref BUS1) (pin 47)))
(net (code 37) (name "")
(net (code 37) (name "Net-(BUS1-Pad46)")
(node (ref BUS1) (pin 46)))
(net (code 38) (name "")
(net (code 38) (name "Net-(BUS1-Pad45)")
(node (ref BUS1) (pin 45)))
(net (code 39) (name "")
(net (code 39) (name "Net-(BUS1-Pad44)")
(node (ref BUS1) (pin 44)))
(net (code 40) (name "")
(net (code 40) (name "Net-(BUS1-Pad41)")
(node (ref BUS1) (pin 41)))
(net (code 41) (name "")
(net (code 41) (name "Net-(BUS1-Pad32)")
(node (ref BUS1) (pin 32)))
(net (code 42) (name "")
(net (code 42) (name "Net-(BUS1-Pad30)")
(node (ref BUS1) (pin 30)))
(net (code 43) (name "")
(net (code 43) (name "Net-(U9-PadB5)")
(node (ref U9) (pin B5)))
(net (code 44) (name "")
(net (code 44) (name "Net-(U9-PadA3)")
(node (ref U9) (pin A3)))
(net (code 45) (name "")
(net (code 45) (name "Net-(U9-PadB4)")
(node (ref U9) (pin B4)))
(net (code 46) (name "")
(net (code 46) (name "Net-(U9-PadC5)")
(node (ref U9) (pin C5)))
(net (code 47) (name "")
(net (code 47) (name "Net-(U9-PadA2)")
(node (ref U9) (pin A2)))
(net (code 48) (name "")
(net (code 48) (name "Net-(U9-PadA1)")
(node (ref U9) (pin A1)))
(net (code 49) (name "")
(net (code 49) (name "Net-(U9-PadB1)")
(node (ref U9) (pin B1)))
(net (code 50) (name "")
(net (code 50) (name "Net-(U9-PadE3)")
(node (ref U9) (pin E3)))
(net (code 51) (name "")
(net (code 51) (name "Net-(U9-PadE2)")
(node (ref U9) (pin E2)))
(net (code 52) (name /MA8)
(node (ref U9) (pin G1))
......@@ -822,16 +828,16 @@
(net (code 57) (name /MD3)
(node (ref U5) (pin 17))
(node (ref U9) (pin A6)))
(net (code 58) (name "")
(net (code 58) (name "Net-(U8-Pad10)")
(node (ref U8) (pin 10)))
(net (code 59) (name "")
(net (code 59) (name "Net-(U8-Pad9)")
(node (ref U8) (pin 9)))
(net (code 60) (name "")
(net (code 60) (name "Net-(U8-Pad8)")
(node (ref U8) (pin 8)))
(net (code 61) (name /RSTL)
(node (ref U3) (pin 12))
(node (ref U8) (pin 11)))
(net (code 62) (name "")
(net (code 62) (name "Net-(U3-Pad11)")
(node (ref U3) (pin 11)))
(net (code 63) (name /MA16)
(node (ref U9) (pin C8))
......@@ -860,7 +866,7 @@
(net (code 71) (name /MD6)
(node (ref U9) (pin A9))
(node (ref U5) (pin 20)))
(net (code 72) (name "")
(net (code 72) (name "Net-(R3-Pad1)")
(node (ref R3) (pin 1))
(node (ref U5) (pin 30)))
(net (code 73) (name /MD7)
......@@ -954,10 +960,10 @@
(net (code 102) (name /D1)
(node (ref U1) (pin 17))
(node (ref U9) (pin N8)))
(net (code 103) (name "")
(net (code 103) (name "Net-(D2-Pad1)")
(node (ref D2) (pin 1))
(node (ref R5) (pin 1)))
(net (code 104) (name "")
(net (code 104) (name "Net-(U9-PadB13)")
(node (ref U9) (pin B13)))
(net (code 105) (name /LED2)
(node (ref R5) (pin 2))
......@@ -966,19 +972,19 @@
(node (ref U8) (pin 21))
(node (ref U9) (pin N2))
(node (ref U1) (pin 18)))
(net (code 107) (name "")
(net (code 107) (name "Net-(D1-Pad1)")
(node (ref D1) (pin 1))
(node (ref R4) (pin 1)))
(net (code 108) (name "")
(net (code 108) (name "Net-(U3-Pad18)")
(node (ref U3) (pin 18))
(node (ref U8) (pin 3)))
(net (code 109) (name "")
(net (code 109) (name "Net-(U3-Pad17)")
(node (ref U3) (pin 17))
(node (ref U8) (pin 4)))
(net (code 110) (name "")
(net (code 110) (name "Net-(U3-Pad16)")
(node (ref U3) (pin 16))
(node (ref U8) (pin 5)))
(net (code 111) (name "")
(net (code 111) (name "Net-(U3-Pad15)")
(node (ref U3) (pin 15))
(node (ref U8) (pin 6)))
(net (code 112) (name /PC-WR)
......@@ -1027,62 +1033,62 @@
(net (code 123) (name /LED1)
(node (ref U9) (pin M3))
(node (ref R4) (pin 2)))
(net (code 124) (name "")
(net (code 124) (name "Net-(U9-PadM2)")
(node (ref U9) (pin M2)))
(net (code 125) (name /MA2)
(node (ref U9) (pin D3))
(node (ref U5) (pin 10)))
(net (code 126) (name "")
(net (code 126) (name "Net-(U9-PadJ3)")
(node (ref U9) (pin J3)))
(net (code 127) (name "")
(net (code 127) (name "Net-(U9-PadN3)")
(node (ref U9) (pin N3)))
(net (code 128) (name /CLKLCA)
(node (ref U8) (pin 16))
(node (ref U9) (pin L4))
(node (ref U9) (pin M4)))
(net (code 129) (name "")
(net (code 129) (name "Net-(U9-PadL5)")
(node (ref U9) (pin L5)))
(net (code 130) (name "")
(net (code 130) (name "Net-(U9-PadN5)")
(node (ref U9) (pin N5)))
(net (code 131) (name /MATCHL)
(node (ref U2) (pin 19))
(node (ref U8) (pin 2)))
(net (code 132) (name "")
(net (code 132) (name "Net-(U9-PadM1)")
(node (ref U9) (pin M1)))
(net (code 133) (name "")
(net (code 133) (name "Net-(U9-PadN1)")
(node (ref U9) (pin N1)))
(net (code 134) (name /MA1)
(node (ref U5) (pin 11))
(node (ref U9) (pin B2)))
(net (code 135) (name "")
(net (code 135) (name "Net-(U9-PadE11)")
(node (ref U9) (pin E11)))
(net (code 136) (name "")
(net (code 136) (name "Net-(U9-PadJ11)")
(node (ref U9) (pin J11)))
(net (code 137) (name /DONE)
(node (ref U8) (pin 20))
(node (ref U9) (pin L11)))
(net (code 138) (name "")
(net (code 138) (name "Net-(U9-PadK12)")
(node (ref U9) (pin K12)))
(net (code 139) (name /PROG-)
(node (ref U8) (pin 19))
(node (ref U9) (pin M12)))
(net (code 140) (name "")
(net (code 140) (name "Net-(U9-PadN12)")
(node (ref U9) (pin N12)))
(net (code 141) (name "")
(net (code 141) (name "Net-(U9-PadL6)")
(node (ref U9) (pin L6)))
(net (code 142) (name "")
(net (code 142) (name "Net-(U9-PadL9)")
(node (ref U9) (pin L9)))
(net (code 143) (name "")
(net (code 143) (name "Net-(U9-PadB10)")
(node (ref U9) (pin B10)))
(net (code 144) (name /WR_REG)
(node (ref U8) (pin 13))
(node (ref U8) (pin 15)))
(net (code 145) (name "")
(net (code 145) (name "Net-(C2-Pad1)")
(node (ref X1) (pin 1))
(node (ref C2) (pin 1))
(node (ref R1) (pin 2))
(node (ref U9) (pin L1)))
(net (code 146) (name "")
(net (code 146) (name "Net-(C3-Pad1)")
(node (ref X1) (pin 2))
(node (ref R1) (pin 1))
(node (ref C3) (pin 1))
......@@ -1111,7 +1117,7 @@
(net (code 154) (name /8MH-OUT)
(node (ref R2) (pin 1))
(node (ref U9) (pin K1)))
(net (code 155) (name "")
(net (code 155) (name "Net-(RR1-Pad10)")
(node (ref RR1) (pin 10)))
(net (code 156) (name /STROBE)
(node (ref P1) (pin 1))
......
update=07/08/2013 15:44:03
update=20/09/2014 09:14:18
version=1
last_client=pcbnew
last_client=kicad
[common]
NetDir=
[general]
......@@ -40,7 +40,7 @@ LibName12=image
version=1
PageLayoutDescrFile=pagelayout_logo.kicad_wks
LastNetListRead=interf_u.net
UseCmpFile=1
UseCmpFile=0
PadDrill=0.89916
PadDrillOvalY=0.89916
PadSizeH=1.397
......@@ -56,14 +56,3 @@ SolderMaskMinWidth=0
DrawSegmentWidth=0.381
BoardOutlineThickness=0.127
ModuleOutlineThickness=0.381
[pcbnew/libraries]
LibDir=
LibName1=connect
LibName2=discret
LibName3=led
LibName4=sockets
LibName5=dip_sockets
LibName6=pin_array
LibName7=divers
LibName8=libcms
LibName9=display
......@@ -1181,7 +1181,7 @@ BF FD 96 77 9E 38 7E F1 EC E1 55 E2 AF 2F E0 1B 5F F9 FC FE BD 4F B9 56 EB C9 C9
29 65 D5 9A 89 35 EB 37 F6 E3 02 4F 95 57 89 BF 1E 63 D9 CA D5 CB 7E 65 BC F3 FF E1 D5 7A 1F CE
A2 94 8E 79 E6 79 49 E6 FD 75 9E B9 C4 BC BF CE 33 97 98 F7 D7 79 E6 12 F3 FE 3A CF 5C E2 E7 E2
03 93 93 93 FD BA 8E 79 E6 39 19 8E FB EB DC 15 0B E6 F9 D5 61 7E 3F 30 CF 5C 62 DE 5F E7 99 4B
FC 1F 94 BD 62 D3 EE A5 8B 6B 00 00 00 00 49 45 4E 44 AE 42 60 82 10
FC 1F 94 BD 62 D3 EE A5 8B 6B 00 00 00 00 49 45 4E 44 AE 42 60 82 41
EndData
$EndBitmap
Wire Bus Line
......@@ -1683,7 +1683,7 @@ Connection ~ 1200 7600
Wire Wire Line
3900 6900 3350 6900
Wire Wire Line
3350 6800 3350 6900
3350 6900 3350 6800
Wire Wire Line
3350 6800 2450 6800
Wire Wire Line
......@@ -1703,9 +1703,9 @@ Wire Wire Line
Wire Wire Line
2500 7000 2500 6900
Wire Wire Line
3050 6900 2500 6900
2500 6900 3050 6900
Wire Wire Line
3050 7950 3050 6900
3050 6900 3050 7950
Wire Wire Line
3900 7600 3400 7600
Wire Wire Line
......@@ -1773,9 +1773,9 @@ Wire Bus Line
Wire Bus Line
3750 3450 3750 5350
Wire Bus Line
3300 5350 3750 5350
3750 5350 3300 5350
Wire Bus Line
3300 6650 3300 5350
3300 5350 3300 6650
Wire Bus Line
3900 3700 3900 2450
Wire Wire Line
......@@ -1794,7 +1794,7 @@ U 1 1 4A087146
P 5250 1950
F 0 "U3" H 5250 2525 60 0000 C BNN
F 1 "74LS541" H 5250 1375 60 0000 C TNN
F 2 "DIP-20__300" H 5250 1250 60 0000 C CNN
F 2 "dip_sockets:DIP-20__300" H 5250 1250 60 0000 C CNN
F 3 "" H 5250 1950 60 0001 C CNN
1 5250 1950
1 0 0 -1
......@@ -2074,7 +2074,7 @@ U 1 1 325679C1
P 2750 8300
F 0 "RR1" V 2800 8300 70 0000 C CNN
F 1 "9x1K" V 2770 8630 70 0000 C CNN
F 2 "r_pack9" V 2900 8350 60 0000 C CNN
F 2 "discret:r_pack9" V 2900 8350 60 0000 C CNN
F 3 "" H 2750 8300 60 0001 C CNN
1 2750 8300
0 1 1 0
......@@ -2130,7 +2130,7 @@ U 1 1 3256759C
P 15200 7200
F 0 "P1" H 15250 8550 70 0000 C CNN
F 1 "DB25FEMELLE" H 15150 5850 70 0000 C CNN
F 2 "DB25FC" H 15150 5750 60 0000 C CNN
F 2 "connect:DB25FC" H 15150 5750 60 0000 C CNN
F 3 "" H 15200 7200 60 0001 C CNN
1 15200 7200
1 0 0 -1
......@@ -2333,7 +2333,7 @@ U 1 1 324002E6
P 6350 9900
F 0 "R3" V 6430 9900 50 0000 C CNN
F 1 "10K" V 6350 9900 50 0000 C CNN
F 2 "R3" V 6250 9900 60 0000 C CNN
F 2 "discret:R3" V 6250 9900 60 0000 C CNN
F 3 "" H 6350 9900 60 0001 C CNN
1 6350 9900
0 1 1 0
......@@ -2384,7 +2384,7 @@ U 1 1 3240023F
P 7700 9050
F 0 "U5" H 7750 10200 70 0000 C CNN
F 1 "628128" H 7700 7900 70 0000 C CNN
F 2 "DIP-32__600" H 7700 7800 60 0000 C CNN
F 2 "dip_sockets:DIP-32__600" H 7700 7800 60 0000 C CNN
F 3 "" H 7700 9050 60 0001 C CNN
1 7700 9050
1 0 0 -1
......@@ -2627,7 +2627,7 @@ U 1 1 32307ED4
P 14350 4600
F 0 "C3" V 14450 4750 50 0000 C CNN
F 1 "47pF" V 14450 4450 50 0000 C CNN
F 2 "C1" H 14550 4600 60 0000 C CNN
F 2 "discret:C1" H 14550 4600 60 0000 C CNN
F 3 "" H 14350 4600 60 0001 C CNN
1 14350 4600
1 0 0 -1
......@@ -2638,7 +2638,7 @@ U 1 1 32307ECF
P 13550 4600
F 0 "C2" V 13650 4750 50 0000 C CNN
F 1 "47pF" V 13650 4450 50 0000 C CNN
F 2 "C1" H 13350 4600 60 0000 C CNN
F 2 "discret:C1" H 13350 4600 60 0000 C CNN
F 3 "" H 13550 4600 60 0001 C CNN
1 13550 4600
1 0 0 -1
......@@ -2649,7 +2649,7 @@ U 1 1 32307EC0
P 13950 4150
F 0 "X1" H 13950 4350 70 0000 C CNN
F 1 "8MHz" H 13950 3950 70 0000 C CNN
F 2 "HC-18UH" H 13950 3850 60 0000 C CNN
F 2 "discret:HC-18UH" H 13950 3850 60 0000 C CNN
F 3 "" H 13950 4150 60 0001 C CNN
1 13950 4150
1 0 0 -1
......@@ -2660,7 +2660,7 @@ U 1 1 32307EAA
P 14900 3700
F 0 "R2" V 14980 3700 50 0000 C CNN
F 1 "1K" V 14900 3700 50 0000 C CNN
F 2 "R3" V 14800 3700 60 0000 C CNN
F 2 "discret:R3" V 14800 3700 60 0000 C CNN
F 3 "" H 14900 3700 60 0001 C CNN
1 14900 3700
0 1 1 0
......@@ -2671,7 +2671,7 @@ U 1 1 32307EA1
P 13950 3700
F 0 "R1" V 14030 3700 50 0000 C CNN
F 1 "100K" V 13950 3700 50 0000 C CNN
F 2 "R3" V 13850 3700 60 0000 C CNN
F 2 "discret:R3" V 13850 3700 60 0000 C CNN
F 3 "" H 13950 3700 60 0001 C CNN
1 13950 3700
0 1 1 0
......@@ -2682,7 +2682,7 @@ U 1 1 32307DE2
P 4450 9100
F 0 "C1" H 4500 9200 50 0000 L CNN
F 1 "47uF" H 4500 9000 50 0000 L CNN
F 2 "CP6" H 4650 9100 60 0000 C CNN
F 2 "discret:CP6" H 4650 9100 60 0000 C CNN
F 3 "" H 4450 9100 60 0001 C CNN
1 4450 9100
1 0 0 -1
......@@ -2693,7 +2693,7 @@ U 1 1 32307DCF
P 3800 9100
F 0 "C4" H 3850 9200 50 0000 L CNN
F 1 "47uF" H 3850 9000 50 0000 L CNN
F 2 "CP6" H 4000 9100 60 0000 C CNN
F 2 "discret:CP6" H 4000 9100 60 0000 C CNN
F 3 "" H 3800 9100 60 0001 C CNN
1 3800 9100
1 0 0 -1
......@@ -2704,7 +2704,7 @@ U 1 1 32307DCA
P 3250 9100
F 0 "C5" H 3300 9200 50 0000 L CNN
F 1 "47uF" H 3300 9000 50 0000 L CNN
F 2 "CP6" H 3450 9100 60 0000 C CNN
F 2 "discret:CP6" H 3450 9100 60 0000 C CNN
F 3 "" H 3250 9100 60 0001 C CNN
1 3250 9100
1 0 0 -1
......@@ -2715,7 +2715,7 @@ U 1 1 32307DC0
P 2600 9100
F 0 "C6" H 2650 9200 50 0000 L CNN
F 1 "47uF" H 2650 9000 50 0000 L CNN
F 2 "CP6" H 2800 9100 60 0000 C CNN
F 2 "discret:CP6" H 2800 9100 60 0000 C CNN
F 3 "" H 2600 9100 60 0001 C CNN
1 2600 9100
1 0 0 -1
......@@ -2742,7 +2742,7 @@ U 1 1 322D35B4
P 4600 6900
F 0 "U2" H 4600 7850 60 0000 C CNN
F 1 "74LS688" H 4600 5950 60 0000 C CIB
F 2 "DIP-20__300" H 4600 5850 60 0000 C CNB
F 2 "dip_sockets:DIP-20__300" H 4600 5850 60 0000 C CNB
F 3 "" H 4600 6900 60 0001 C CNN
1 4600 6900
1 0 0 -1
......@@ -2766,7 +2766,7 @@ U 1 1 322D32BE
P 14250 2000
F 0 "D2" H 14250 2100 50 0000 C CNN
F 1 "LED" H 14250 1900 50 0000 C CNN
F 2 "LEDV" V 14250 2250 60 0000 C CNN
F 2 "discret:LEDV" V 14250 2250 60 0000 C CNN
F 3 "" H 14250 2000 60 0001 C CNN
1 14250 2000
0 1 1 0
......@@ -2777,7 +2777,7 @@ U 1 1 322D32AC
P 14650 1550
F 0 "D1" H 14650 1650 50 0000 C CNN
F 1 "LED" H 14650 1450 50 0000 C CNN
F 2 "LEDV" V 14650 1800 60 0000 C CNN
F 2 "discret:LEDV" V 14650 1800 60 0000 C CNN
F 3 "" H 14650 1550 60 0001 C CNN
1 14650 1550
0 1 1 0
......@@ -2788,7 +2788,7 @@ U 1 1 322D32A0
P 13700 1500
F 0 "R5" V 13780 1500 50 0000 C CNN
F 1 "330" V 13700 1500 50 0000 C CNN
F 2 "R3" V 13730 1680 30 0000 C CNN
F 2 "discret:R3" V 13730 1680 30 0000 C CNN
F 3 "" H 13700 1500 60 0001 C CNN
1 13700 1500
0 1 1 0
......@@ -2799,7 +2799,7 @@ U 1 1 322D3295
P 13700 1050
F 0 "R4" V 13780 1050 50 0000 C CNN
F 1 "330" V 13700 1050 50 0000 C CNN
F 2 "R3" V 13850 1050 60 0000 C CNN
F 2 "discret:R3" V 13850 1050 60 0000 C CNN
F 3 "" H 13700 1050 60 0001 C CNN
1 13700 1050
0 1 1 0
......@@ -2810,7 +2810,7 @@ U 1 1 322D321C
P 7650 1800
F 0 "U8" H 7650 1900 70 0000 C CNN
F 1 "EP600" H 7650 850 70 0000 C CNN
F 2 "DIP-24__300" H 7700 750 60 0000 C CNN
F 2 "dip_sockets:DIP-24__300" H 7700 750 60 0000 C CNN
F 3 "" H 7650 1800 60 0001 C CNN
1 7650 1800
1 0 0 -1
......@@ -2821,7 +2821,7 @@ U 1 1 322D31F4
P 5200 3600
F 0 "U1" H 5300 4175 60 0000 L BNN
F 1 "74LS245" H 5250 3025 60 0000 L TNN
F 2 "DIP-20__300" H 5400 2900 60 0000 C CNN
F 2 "dip_sockets:DIP-20__300" H 5400 2900 60 0000 C CNN
F 3 "" H 5200 3600 60 0001 C CNN
1 5200 3600
1 0 0 -1
......
(fp_lib_table
(lib (name footprints)(type KiCad)(uri ${KIPRJMOD}/libs/footprints.pretty)(options "")(descr "project specific"))
(lib (name footprints)(type KiCad)(uri ${KIPRJMOD}/libs/pic_programmer_fp.pretty)(options "")(descr "project specific"))
(lib (name sockets)(type KiCad)(uri ${KISYSMOD}/Sockets.pretty)(options "")(descr ""))
)
(module textool_40 (layer F.Cu) (tedit 5401B510)
(descr "Module Dil 40 pins, pads elliptiques, e=600 mils")
(tags DIL)
(fp_text reference P3 (at -19.05 -3.81) (layer F.SilkS)
(effects (font (size 1.778 1.143) (thickness 0.3048)))
)
(fp_text value textool_40 (at 0 2.54) (layer F.SilkS)
(effects (font (size 1.778 1.778) (thickness 0.3048)))
)
(fp_line (start -26.67 -1.27) (end -25.4 -1.27) (layer F.SilkS) (width 0.381))
(fp_line (start -25.4 -1.27) (end -25.4 1.27) (layer F.SilkS) (width 0.381))
(fp_line (start -25.4 1.27) (end -26.67 1.27) (layer F.SilkS) (width 0.381))
(fp_line (start -26.67 -6.35) (end 26.67 -6.35) (layer F.SilkS) (width 0.381))
(fp_line (start 26.67 -6.35) (end 26.67 6.35) (layer F.SilkS) (width 0.381))
(fp_line (start 26.67 6.35) (end -26.67 6.35) (layer F.SilkS) (width 0.381))
(fp_line (start -26.67 6.35) (end -26.67 -6.35) (layer F.SilkS) (width 0.381))
(pad 1 thru_hole rect (at -24.13 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 2 thru_hole oval (at -21.59 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 3 thru_hole oval (at -19.05 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 4 thru_hole oval (at -16.51 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 5 thru_hole oval (at -13.97 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 6 thru_hole oval (at -11.43 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 7 thru_hole oval (at -8.89 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 8 thru_hole oval (at -6.35 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 9 thru_hole oval (at -3.81 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 10 thru_hole oval (at -1.27 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 11 thru_hole oval (at 1.27 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 12 thru_hole oval (at 3.81 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 13 thru_hole oval (at 6.35 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 14 thru_hole oval (at 8.89 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 15 thru_hole oval (at 11.43 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 16 thru_hole oval (at 13.97 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 17 thru_hole oval (at 16.51 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 18 thru_hole oval (at 19.05 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 19 thru_hole oval (at 21.59 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 20 thru_hole oval (at 24.13 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 21 thru_hole oval (at 24.13 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 22 thru_hole oval (at 21.59 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 23 thru_hole oval (at 19.05 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 24 thru_hole oval (at 16.51 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 25 thru_hole oval (at 13.97 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 26 thru_hole oval (at 11.43 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 27 thru_hole oval (at 8.89 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 28 thru_hole oval (at 6.35 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 29 thru_hole oval (at 3.81 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 30 thru_hole oval (at 1.27 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 31 thru_hole oval (at -1.27 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 32 thru_hole oval (at -3.81 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 33 thru_hole oval (at -6.35 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 34 thru_hole oval (at -8.89 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 35 thru_hole oval (at -11.43 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 36 thru_hole oval (at -13.97 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 37 thru_hole oval (at -16.51 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 38 thru_hole oval (at -19.05 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 39 thru_hole oval (at -21.59 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 40 thru_hole oval (at -24.13 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(model dil/textool_40.wrl
(at (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)
Cmp-Mod V01 Created by Cvpcb (2014-08-26 BZR 5101)-product date = 01/09/2014 11:21:38
Cmp-Mod V01 Created by Cvpcb (2014-09-16 BZR 5138)-product date = 20/09/2014 09:54:11
BeginCmp
TimeStamp = /442A5056;
......@@ -179,7 +179,7 @@ BeginCmp
TimeStamp = /4804A5E2/442A88ED;
Reference = P3;
ValeurCmp = SUPP40;
IdModule = footprints:textool_40;
IdModule = sockets:40tex-Ell600;
EndCmp
BeginCmp
......
This source diff could not be displayed because it is too large. You can view the blob instead.
(export (version D)
(design
(source F:/kicad-launchpad/testing/demos/pic_programmer/pic_programmer.sch)
(date "01/09/2014 11:22:27")
(tool "Eeschema (2014-08-26 BZR 5101)-product"))
(date "20/09/2014 09:31:58")
(tool "Eeschema (2014-09-16 BZR 5138)-product"))
(components
(comp (ref C9)
(value 22OnF)
......@@ -358,7 +358,7 @@
(tstamp 442AA145))
(comp (ref P3)
(value SUPP40)
(footprint footprints:textool_40)
(footprint sockets:40tex-Ell600)
(libsource (lib conn) (part SUPP40))
(sheetpath (names /pic_sockets/) (tstamps /4804A5E2/))
(tstamp 442A88ED))
......@@ -434,6 +434,113 @@
(pins
(pin (num 1) (name A) (type passive))
(pin (num 2) (name K) (type passive))))
(libpart (lib pic_programmer-cache) (part 24C16)
(aliases
(alias 24C512))
(fields
(field (name Reference) U)
(field (name Value) 24C16))
(pins
(pin (num 1) (name A0) (type input))
(pin (num 2) (name A1) (type input))
(pin (num 3) (name A2) (type input))
(pin (num 4) (name GND) (type power_in))
(pin (num 5) (name SDA) (type BiDi))
(pin (num 6) (name SCL) (type input))
(pin (num 7) (name WP) (type input))
(pin (num 8) (name VCC) (type power_in))))
(libpart (lib pic_programmer-cache) (part 7805)
(aliases
(alias LM7805)
(alias LM7812)
(alias 78L05))
(fields
(field (name Reference) U)
(field (name Value) 7805))
(pins
(pin (num GND) (name GND) (type input))
(pin (num VI) (name VI) (type input))
(pin (num VO) (name VO) (type power_out))))
(libpart (lib pic_programmer-cache) (part LT1372)
(aliases
(alias LT1373))
(fields
(field (name Reference) U)
(field (name Value) LT1372))
(pins
(pin (num 1) (name Vc) (type input))
(pin (num 2) (name FB+) (type input))
(pin (num 3) (name FB-) (type passive))
(pin (num 4) (name S/S) (type passive))
(pin (num 5) (name Vin) (type power_in))
(pin (num 6) (name GND_S) (type input))
(pin (num 7) (name GND) (type input))
(pin (num 8) (name Vsw) (type input))))
(libpart (lib pic_programmer-cache) (part PIC12C508A)
(aliases
(alias PIC12C509A))
(fields
(field (name Reference) U)
(field (name Value) PIC12C508A))
(pins
(pin (num 1) (name VDD) (type power_in))
(pin (num 2) (name GP5/OSC1) (type input))
(pin (num 3) (name GP4/OSC2) (type input))
(pin (num 4) (name GP3/MCLR) (type input))
(pin (num 5) (name GP2) (type input))
(pin (num 6) (name GP1) (type input))
(pin (num 7) (name GP0) (type input))
(pin (num 8) (name VSS) (type power_in))))
(libpart (lib pic_programmer-cache) (part PIC16F54)
(fields
(field (name Reference) U?)
(field (name Value) PIC16F54))
(pins
(pin (num 1) (name RA2) (type BiDi))
(pin (num 2) (name RA3) (type BiDi))
(pin (num 3) (name T0ckl) (type output))
(pin (num 4) (name MCLR) (type input))
(pin (num 5) (name VSS) (type power_in))
(pin (num 6) (name RB0) (type BiDi))
(pin (num 7) (name RB1) (type BiDi))
(pin (num 8) (name RB2) (type BiDi))
(pin (num 9) (name RB3) (type BiDi))
(pin (num 10) (name RB4) (type BiDi))
(pin (num 11) (name RB5) (type BiDi))
(pin (num 12) (name ICSPC/RB6) (type BiDi))
(pin (num 13) (name ICSPD/RB7) (type BiDi))
(pin (num 14) (name VDD) (type power_in))
(pin (num 15) (name OSC2/CLKO) (type output))
(pin (num 16) (name OSC1/CLKI) (type input))
(pin (num 17) (name RA0) (type BiDi))
(pin (num 18) (name RA1) (type BiDi))))
(libpart (lib conn) (part CONN_1)
(description "1 pin")
(fields
(field (name Reference) P)
(field (name Value) CONN_1))
(pins
(pin (num 1) (name 1) (type passive))))
(libpart (lib 74xx) (part 74LS125)
(description "Quad buffer 3 State out")
(fields
(field (name Reference) U)
(field (name Value) 74LS125))
(pins
(pin (num 1) (name E) (type input))
(pin (num 2) (name D) (type input))
(pin (num 3) (name O) (type 3state))
(pin (num 4) (name E) (type input))
(pin (num 5) (name D) (type input))
(pin (num 6) (name O) (type 3state))
(pin (num 7) (name GND) (type power_in))
(pin (num 8) (name O) (type 3state))
(pin (num 9) (name D) (type input))
(pin (num 10) (name E) (type input))
(pin (num 11) (name O) (type 3state))
(pin (num 12) (name D) (type input))
(pin (num 13) (name E) (type input))
(pin (num 14) (name VCC) (type power_in))))
(libpart (lib device) (part INDUCTOR)
(fields
(field (name Reference) L)
......@@ -504,57 +611,6 @@
(pins
(pin (num 1) (name ~) (type passive))
(pin (num 2) (name ~) (type passive))))
(libpart (lib 74xx) (part 74LS125)
(description "Quad buffer 3 State out")
(fields
(field (name Reference) U)
(field (name Value) 74LS125))
(pins
(pin (num 1) (name E) (type input))
(pin (num 2) (name D) (type input))
(pin (num 3) (name O) (type 3state))
(pin (num 4) (name E) (type input))
(pin (num 5) (name D) (type input))
(pin (num 6) (name O) (type 3state))
(pin (num 7) (name GND) (type power_in))
(pin (num 8) (name O) (type 3state))
(pin (num 9) (name D) (type input))
(pin (num 10) (name E) (type input))
(pin (num 11) (name O) (type 3state))
(pin (num 12) (name D) (type input))
(pin (num 13) (name E) (type input))
(pin (num 14) (name VCC) (type power_in))))
(libpart (lib conn) (part CONN_1)
(description "1 pin")
(fields
(field (name Reference) P)
(field (name Value) CONN_1))
(pins
(pin (num 1) (name 1) (type passive))))
(libpart (lib conn) (part CONN_2)
(description "Symbole general de connecteur")
(fields
(field (name Reference) P)
(field (name Value) CONN_2))
(pins
(pin (num 1) (name P1) (type passive))
(pin (num 2) (name PM) (type passive))))
(libpart (lib conn) (part DB9)
(footprints
(fp DB9*))
(fields
(field (name Reference) J)
(field (name Value) DB9))
(pins
(pin (num 1) (name 1) (type passive))
(pin (num 2) (name 2) (type passive))
(pin (num 3) (name 3) (type passive))
(pin (num 4) (name 4) (type passive))
(pin (num 5) (name 5) (type passive))
(pin (num 6) (name P6) (type passive))
(pin (num 7) (name P7) (type passive))
(pin (num 8) (name P8) (type passive))
(pin (num 9) (name P9) (type passive))))
(libpart (lib conn) (part SUPP28)
(fields
(field (name Reference) J)
......@@ -633,95 +689,39 @@
(pin (num 38) (name 38) (type passive))
(pin (num 39) (name 39) (type passive))
(pin (num 40) (name 40) (type passive))))
(libpart (lib pic_programmer-cache) (part 24C16)
(aliases
(alias 24C512))
(fields
(field (name Reference) U)
(field (name Value) 24C16))
(pins
(pin (num 1) (name A0) (type input))
(pin (num 2) (name A1) (type input))
(pin (num 3) (name A2) (type input))
(pin (num 4) (name GND) (type power_in))
(pin (num 5) (name SDA) (type BiDi))
(pin (num 6) (name SCL) (type input))
(pin (num 7) (name WP) (type input))
(pin (num 8) (name VCC) (type power_in))))
(libpart (lib pic_programmer-cache) (part 7805)
(aliases
(alias LM7805)
(alias LM7812)
(alias 78L05))
(fields
(field (name Reference) U)
(field (name Value) 7805))
(pins
(pin (num GND) (name GND) (type input))
(pin (num VI) (name VI) (type input))
(pin (num VO) (name VO) (type power_out))))
(libpart (lib pic_programmer-cache) (part LT1372)
(aliases
(alias LT1373))
(fields
(field (name Reference) U)
(field (name Value) LT1372))
(pins
(pin (num 1) (name Vc) (type input))
(pin (num 2) (name FB+) (type input))
(pin (num 3) (name FB-) (type passive))
(pin (num 4) (name S/S) (type passive))
(pin (num 5) (name Vin) (type power_in))
(pin (num 6) (name GND_S) (type input))
(pin (num 7) (name GND) (type input))
(pin (num 8) (name Vsw) (type input))))
(libpart (lib pic_programmer-cache) (part PIC12C508A)
(aliases
(alias PIC12C509A))
(libpart (lib conn) (part CONN_2)
(description "Symbole general de connecteur")
(fields
(field (name Reference) U)
(field (name Value) PIC12C508A))
(field (name Reference) P)
(field (name Value) CONN_2))
(pins
(pin (num 1) (name VDD) (type power_in))
(pin (num 2) (name GP5/OSC1) (type input))
(pin (num 3) (name GP4/OSC2) (type input))
(pin (num 4) (name GP3/MCLR) (type input))
(pin (num 5) (name GP2) (type input))
(pin (num 6) (name GP1) (type input))
(pin (num 7) (name GP0) (type input))
(pin (num 8) (name VSS) (type power_in))))
(libpart (lib pic_programmer-cache) (part PIC16F54)
(pin (num 1) (name P1) (type passive))
(pin (num 2) (name PM) (type passive))))
(libpart (lib conn) (part DB9)
(footprints
(fp DB9*))
(fields
(field (name Reference) U?)
(field (name Value) PIC16F54))
(field (name Reference) J)
(field (name Value) DB9))
(pins
(pin (num 1) (name RA2) (type BiDi))
(pin (num 2) (name RA3) (type BiDi))
(pin (num 3) (name T0ckl) (type output))
(pin (num 4) (name MCLR) (type input))
(pin (num 5) (name VSS) (type power_in))
(pin (num 6) (name RB0) (type BiDi))
(pin (num 7) (name RB1) (type BiDi))
(pin (num 8) (name RB2) (type BiDi))
(pin (num 9) (name RB3) (type BiDi))
(pin (num 10) (name RB4) (type BiDi))
(pin (num 11) (name RB5) (type BiDi))
(pin (num 12) (name ICSPC/RB6) (type BiDi))
(pin (num 13) (name ICSPD/RB7) (type BiDi))
(pin (num 14) (name VDD) (type power_in))
(pin (num 15) (name OSC2/CLKO) (type output))
(pin (num 16) (name OSC1/CLKI) (type input))
(pin (num 17) (name RA0) (type BiDi))
(pin (num 18) (name RA1) (type BiDi)))))
(pin (num 1) (name 1) (type passive))
(pin (num 2) (name 2) (type passive))
(pin (num 3) (name 3) (type passive))
(pin (num 4) (name 4) (type passive))
(pin (num 5) (name 5) (type passive))
(pin (num 6) (name P6) (type passive))
(pin (num 7) (name P7) (type passive))
(pin (num 8) (name P8) (type passive))
(pin (num 9) (name P9) (type passive)))))
(libraries
(library (logical device)
(uri f:\kicad\share\library\device.lib))
(library (logical 74xx)
(uri f:\kicad\share\library\74xx.lib))
(library (logical conn)
(uri f:\kicad\share\library\conn.lib))
(library (logical pic_programmer-cache)
(uri F:\kicad-launchpad\testing\demos\pic_programmer\pic_programmer-cache.lib)))
(uri F:\kicad-launchpad\testing\demos\pic_programmer\pic_programmer-cache.lib))
(library (logical 74xx)
(uri f:\kicad\share\library\74xx.lib)))
(nets
(net (code 1) (name GND)
(node (ref D3) (pin 1))
......
update=31/08/2014 15:16:56
update=20/09/2014 09:29:07
last_client=kicad
[common]
NetDir=
......@@ -7,34 +7,6 @@ version=1
NetIExt=net
[cvpcb/libraries]
EquName1=devcms
[pcbnew]
version=1
PageLayoutDescrFile=
LastNetListRead=
UseCmpFile=1
PadDrill=0.8128
PadDrillOvalY=0.8128
PadSizeH=1.5748
PadSizeV=2.794
PcbTextSizeV=1.5
PcbTextSizeH=1.5
PcbTextThickness=0.3048
ModuleTextSizeV=1
ModuleTextSizeH=1
ModuleTextSizeThickness=0.2
SolderMaskClearance=0.09999999999999999
SolderMaskMinWidth=0
DrawSegmentWidth=0.4
BoardOutlineThickness=0.2
ModuleOutlineThickness=0.2
[pcbnew/libraries]
LibDir=
LibName1=dip_sockets
LibName2=sockets
LibName3=connect
LibName4=discret
LibName5=pin_array
LibName6=divers
[general]
version=1
[eeschema]
......@@ -46,3 +18,23 @@ LibName2=device
LibName3=74xx
LibName4=conn
LibName5=xilinx
[pcbnew]
version=1
PageLayoutDescrFile=
LastNetListRead=pic_programmer.net
UseCmpFile=0
PadDrill=0.8128
PadDrillOvalY=0.8128
PadSizeH=1.5748
PadSizeV=2.794
PcbTextSizeV=2.032
PcbTextSizeH=1.524
PcbTextThickness=0.3048
ModuleTextSizeV=1.524
ModuleTextSizeH=1.524
ModuleTextSizeThickness=0.3048
SolderMaskClearance=0.09999999999999999
SolderMaskMinWidth=0
DrawSegmentWidth=0.381
BoardOutlineThickness=0.381
ModuleOutlineThickness=0.381
......@@ -272,7 +272,7 @@ U 1 1 4639BA28
P 7150 2900
F 0 "D11" H 7150 3000 40 0000 C CNN
F 1 "BAT43" H 7150 2800 40 0000 C CNN
F 2 "discret:D3" H 7150 3050 60 0000 C CNN
F 2 "discret:D3" H 7150 3050 30 0000 C CNN
F 3 "" H 7150 2900 60 0001 C CNN
1 7150 2900
-1 0 0 1
......@@ -373,7 +373,7 @@ U 1 1 443D0101
P 9600 5900
F 0 "RV1" H 9600 5800 50 0000 C CNN
F 1 "1K" H 9600 5900 50 0000 C CNN
F 2 "discret:RV2X4" H 9600 5900 60 0000 C CNN
F 2 "discret:RV2X4" H 9600 5750 30 0000 C CNN
F 3 "" H 9600 5900 60 0001 C CNN
1 9600 5900
0 -1 -1 0
......@@ -455,7 +455,7 @@ U 1 1 442A5F83
P 8350 6100
F 0 "R10" V 8430 6100 50 0000 C CNN
F 1 "5,1K" V 8350 6100 50 0000 C CNN
F 2 "discret:R4" H 8350 6100 60 0000 C CNN
F 2 "discret:R4" V 8250 6100 30 0000 C CNN
F 3 "" H 8350 6100 60 0001 C CNN
1 8350 6100
0 -1 -1 0
......@@ -501,7 +501,7 @@ U 1 1 442A58DC
P 10000 5650
F 0 "R16" V 10080 5650 50 0000 C CNN
F 1 "62K" V 10000 5650 50 0000 C CNN
F 2 "discret:R4" H 10000 5650 60 0000 C CNN
F 2 "discret:R4" V 9929 5647 30 0000 C CNN
F 3 "" H 10000 5650 60 0001 C CNN
1 10000 5650
0 -1 -1 0
......@@ -512,7 +512,7 @@ U 1 1 442A58D7
P 10000 6150
F 0 "R15" V 10080 6150 50 0000 C CNN
F 1 "6.2K" V 10000 6150 50 0000 C CNN
F 2 "discret:R4" H 10000 6150 60 0000 C CNN
F 2 "discret:R4" V 9922 6141 30 0000 C CNN
F 3 "" H 10000 6150 60 0001 C CNN
1 10000 6150
0 -1 -1 0
......@@ -682,7 +682,7 @@ U 1 1 442A5084
P 4150 6950
F 0 "D9" H 4150 7050 50 0000 C CNN
F 1 "GREEN-LED" H 4150 6850 50 0000 C CNN
F 2 "discret:LEDV" H 4150 7200 60 0000 C CNN
F 2 "discret:LEDV" H 4150 7200 30 0000 C CNN
F 3 "" H 4150 6950 60 0001 C CNN
F 4 "GREEN LED" H 4200 7100 40 0000 C CNN "Champ4"
1 4150 6950
......@@ -694,7 +694,7 @@ U 1 1 442A5083
P 3850 6650
F 0 "R14" V 3930 6650 50 0000 C CNN
F 1 "470" V 3850 6650 50 0000 C CNN
F 2 "discret:R4" H 3850 6650 60 0000 C CNN
F 2 "discret:R4" V 3765 6645 30 0000 C CNN
F 3 "" H 3850 6650 60 0001 C CNN
1 3850 6650
0 -1 -1 0
......@@ -716,7 +716,7 @@ U 1 1 442A5056
P 3200 6900
F 0 "C1" H 3250 7000 50 0000 L CNN
F 1 "100µF" H 3250 6800 50 0000 L CNN
F 2 "discret:CP10" H 3500 6750 60 0000 C CNN
F 2 "discret:CP10" H 3500 6750 30 0000 C CNN
F 3 "" H 3200 6900 60 0001 C CNN
1 3200 6900
1 0 0 -1
......@@ -782,7 +782,7 @@ U 1 1 442A500B
P 1650 6650
F 0 "D1" H 1650 6750 40 0000 C CNN
F 1 "1N4004" H 1650 6550 40 0000 C CNN
F 2 "discret:D5" H 1700 6850 60 0000 C CNN
F 2 "discret:D5" H 1646 6800 30 0000 C CNN
F 3 "" H 1650 6650 60 0001 C CNN
1 1650 6650
1 0 0 -1
......@@ -962,7 +962,7 @@ U 1 1 442A4D92
P 4700 1700
F 0 "R8" V 4780 1700 50 0000 C CNN
F 1 "1K" V 4700 1700 50 0000 C CNN
F 2 "discret:R4" V 4850 1700 60 0000 C CNN
F 2 "discret:R4" V 4850 1700 30 0000 C CNN
F 3 "" H 4700 1700 60 0001 C CNN
1 4700 1700
0 -1 -1 0
......@@ -973,7 +973,7 @@ U 1 1 442A4D8D
P 5100 5100
F 0 "R13" V 5180 5100 50 0000 C CNN
F 1 "470" V 5100 5100 50 0000 C CNN
F 2 "discret:R4" V 5250 5100 60 0000 C CNN
F 2 "discret:R4" V 5250 5100 30 0000 C CNN
F 3 "" H 5100 5100 60 0001 C CNN
1 5100 5100
0 -1 -1 0
......@@ -1050,7 +1050,7 @@ U 1 1 442A4D65
P 3850 5400
F 0 "D7" H 3850 5500 40 0000 C CNN
F 1 "BAT43" H 3850 5300 40 0000 C CNN
F 2 "discret:D3" H 3850 5250 60 0000 C CNN
F 2 "discret:D3" H 3850 5250 30 0000 C CNN
F 3 "" H 3850 5400 60 0001 C CNN
1 3850 5400
0 -1 -1 0
......@@ -1072,7 +1072,7 @@ U 1 1 442A4D63
P 3200 5400
F 0 "R6" V 3280 5400 50 0000 C CNN
F 1 "10K" V 3200 5400 50 0000 C CNN
F 2 "discret:R4" V 3100 5400 60 0000 C CNN
F 2 "discret:R4" V 3100 5400 30 0000 C CNN
F 3 "" H 3200 5400 60 0001 C CNN
1 3200 5400
1 0 0 -1
......@@ -1083,7 +1083,7 @@ U 1 1 442A4D62
P 3500 5100
F 0 "R5" V 3580 5100 50 0000 C CNN
F 1 "10K" V 3500 5100 50 0000 C CNN
F 2 "discret:R4" H 3500 5100 60 0000 C CNN
F 2 "discret:R4" V 3420 5088 30 0000 C CNN
F 3 "" H 3500 5100 60 0001 C CNN
1 3500 5100
0 -1 -1 0
......@@ -1226,7 +1226,7 @@ U 1 1 442A4D25
P 3450 2000
F 0 "D3" H 3450 2100 40 0000 C CNN
F 1 "BAT43" H 3450 1900 40 0000 C CNN
F 2 "discret:D3" H 3450 1850 60 0000 C CNN
F 2 "discret:D3" H 3450 1850 30 0000 C CNN
F 3 "" H 3450 2000 60 0001 C CNN
1 3450 2000
0 -1 -1 0
......@@ -1237,7 +1237,7 @@ U 1 1 442A4D1B
P 3450 1450
F 0 "D2" H 3450 1550 40 0000 C CNN
F 1 "BAT43" H 3450 1350 40 0000 C CNN
F 2 "discret:D3" H 3500 1300 60 0000 C CNN
F 2 "discret:D3" H 3500 1300 30 0000 C CNN
F 3 "" H 3450 1450 60 0001 C CNN
1 3450 1450
0 -1 -1 0
......@@ -1289,68 +1289,78 @@ $EndComp
$Comp
L CONN_1 P101
U 1 1 54020BEA
P 6400 6850
F 0 "P101" H 6480 6850 40 0000 L CNN
F 1 "CONN_1" H 6400 6905 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 6850 60 0001 C CNN
F 3 "" H 6400 6850 60 0000 C CNN
1 6400 6850
P 6400 6800
F 0 "P101" H 6480 6800 40 0000 L CNN
F 1 "CONN_1" H 6400 6855 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 6800 60 0001 C CNN
F 3 "" H 6400 6800 60 0000 C CNN
1 6400 6800
1 0 0 -1
$EndComp
$Comp
L CONN_1 P102
U 1 1 54020DA9
P 6400 7000
F 0 "P102" H 6480 7000 40 0000 L CNN
F 1 "CONN_1" H 6400 7055 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 7000 60 0001 C CNN
F 3 "" H 6400 7000 60 0000 C CNN
1 6400 7000
P 6400 6950
F 0 "P102" H 6480 6950 40 0000 L CNN
F 1 "CONN_1" H 6400 7005 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 6950 60 0001 C CNN
F 3 "" H 6400 6950 60 0000 C CNN
1 6400 6950
1 0 0 -1
$EndComp
$Comp
L CONN_1 P103
U 1 1 54020DC2
P 6400 7150
F 0 "P103" H 6480 7150 40 0000 L CNN
F 1 "CONN_1" H 6400 7205 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 7150 60 0001 C CNN
F 3 "" H 6400 7150 60 0000 C CNN
1 6400 7150
P 6400 7100
F 0 "P103" H 6480 7100 40 0000 L CNN
F 1 "CONN_1" H 6400 7155 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 7100 60 0001 C CNN
F 3 "" H 6400 7100 60 0000 C CNN
1 6400 7100
1 0 0 -1
$EndComp
$Comp
L CONN_1 P104
U 1 1 54020DE3
P 6400 7300
F 0 "P104" H 6480 7300 40 0000 L CNN
F 1 "CONN_1" H 6400 7355 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 7300 60 0001 C CNN
F 3 "" H 6400 7300 60 0000 C CNN
1 6400 7300
P 6400 7250
F 0 "P104" H 6480 7250 40 0000 L CNN
F 1 "CONN_1" H 6400 7305 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 7250 60 0001 C CNN
F 3 "" H 6400 7250 60 0000 C CNN
1 6400 7250
1 0 0 -1
$EndComp
$Comp
L CONN_1 P105
U 1 1 54020E5D
P 6400 7450
F 0 "P105" H 6480 7450 40 0000 L CNN
F 1 "CONN_1" H 6400 7505 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 7450 60 0001 C CNN
F 3 "" H 6400 7450 60 0000 C CNN
1 6400 7450
P 6400 7400
F 0 "P105" H 6480 7400 40 0000 L CNN
F 1 "CONN_1" H 6400 7455 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 7400 60 0001 C CNN
F 3 "" H 6400 7400 60 0000 C CNN
1 6400 7400
1 0 0 -1
$EndComp
$Comp
L CONN_1 P106
U 1 1 54020E76
P 6400 7600
F 0 "P106" H 6480 7600 40 0000 L CNN
F 1 "CONN_1" H 6400 7655 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 7600 60 0001 C CNN
F 3 "" H 6400 7600 60 0000 C CNN
1 6400 7600
P 6400 7550
F 0 "P106" H 6480 7550 40 0000 L CNN
F 1 "CONN_1" H 6400 7605 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 7550 60 0001 C CNN
F 3 "" H 6400 7550 60 0000 C CNN
1 6400 7550
1 0 0 -1
$EndComp
Connection ~ 8650 3200
Wire Notes Line
5850 6700 6800 6700
Wire Notes Line
6800 6700 6800 7750
Wire Notes Line
6800 7750 5850 7750
Wire Notes Line
5850 7750 5850 6700
Text Notes 6050 7700 0 40 Italic 0
Mounting holes
$EndSCHEMATC
......@@ -252,7 +252,7 @@ U 1 1 442A88ED
P 9050 5100
F 0 "P3" H 9100 6200 70 0000 C CNN
F 1 "SUPP40" H 8900 4000 70 0000 C CNN
F 2 "footprints:textool_40" H 9100 3900 60 0000 C CNN
F 2 "sockets:40tex-Ell600" H 9100 3900 60 0000 C CNN
F 3 "" H 9050 5100 60 0001 C CNN
1 9050 5100
1 0 0 -1
......
......@@ -46,11 +46,11 @@ class LIB_FIELD;
/// Compiler controlled string compare function, either case independent or not:
inline int Cmp_KEEPCASE( const wxString& aString1, const wxString& aString2 )
{
#if 1
// case specificity:
#ifdef KICAD_KEEPCASE
// case specificity, the normal behavior:
return aString1.Cmp( aString2 );
#else
// case independence (no more in use)
// case independence (only for guys who want that: not recommended)
return aString1.CmpNoCase( aString2 );
#endif
}
......
......@@ -902,7 +902,8 @@ LIB_ALIAS* PART_LIBS::FindLibraryEntry( const wxString& aName, const wxString& a
/* searches all libraries in the list for an entry, using a case insensitive comparison.
* Used to find an entry, when the normal (case sensitive) search fails.
*/
LIB_ALIAS* PART_LIBS::FindLibraryNearEntry( const wxString& aEntryName,
void PART_LIBS::FindLibraryNearEntries( std::vector<LIB_ALIAS*>& aCandidates,
const wxString& aEntryName,
const wxString& aLibraryName )
{
BOOST_FOREACH( PART_LIB& lib, *this )
......@@ -921,7 +922,7 @@ LIB_ALIAS* PART_LIBS::FindLibraryNearEntry( const wxString& aEntryName,
for( ;; )
{
if( entry_name.CmpNoCase( aEntryName ) == 0 )
return entry;
aCandidates.push_back( entry );
entry = lib.GetNextEntry( entry_name );
entry_name = entry->GetName();
......@@ -930,8 +931,6 @@ LIB_ALIAS* PART_LIBS::FindLibraryNearEntry( const wxString& aEntryName,
break;
}
}
return NULL;
}
......
......@@ -217,23 +217,19 @@ public:
const wxString& aLibraryName = wxEmptyString );
/**
* Function FindLibraryNearEntry
* Function FindLibraryNearEntries
* Searches all libraries in the list for an entry, using a case insensitive comparison.
* Used to find an entry, when the normal (case sensitive) search fails.
* Needed because during a long time, eeschema was using a case insensitive search.
* Therefore, for old schematics (<= 2013), or libs,
* which mixed upper case and lower case entry names, for compatibility reasons, if
* a normal search fails, this case insensitive search can be made.
* Could be also usefull also in some dialogs, when searching parts in libs.
* Remember this is a linear search, therefore slower than the normal binary search
* Helper function used in dialog to find all candidates.
* During a long time, eeschema was using a case insensitive search.
* Therefore, for old schematics (<= 2013), or libs, for some components,
* the chip name (name of alias in lib) can be broken.
* This function can be used to display a list of candidates, in component properties dialog.
*
* The object can be either a part or an alias.
*
* @param aEntryName - Name of entry to search for (case insensitive).
* @param aEntryName - Name of entries to search for (case insensitive).
* @param aLibraryName - Name of the library to search.
* @return The entry object if found, otherwise NULL.
* @param aCandidates - a std::vector to store candidates
*/
LIB_ALIAS* FindLibraryNearEntry( const wxString& aEntryName,
void FindLibraryNearEntries( std::vector<LIB_ALIAS*>& aCandidates, const wxString& aEntryName,
const wxString& aLibraryName = wxEmptyString );
/**
......
......@@ -39,6 +39,7 @@
#include <base_units.h>
#include <general.h>
#include <sch_base_frame.h>
#include <class_library.h>
#include <sch_component.h>
#include <dialog_helpers.h>
......@@ -116,6 +117,8 @@ private:
void deleteFieldButtonHandler( wxCommandEvent& event );
void moveUpButtonHandler( wxCommandEvent& event );
void showButtonHandler( wxCommandEvent& event );
void OnTestChipName( wxCommandEvent& event );
void OnSelectChipName( wxCommandEvent& event );
SCH_FIELD* findField( const wxString& aFieldName );
......@@ -205,6 +208,64 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnListItemDeselected( wxListEvent& even
}
}
void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnTestChipName( wxCommandEvent& event )
{
wxString partname = chipnameTextCtrl->GetValue();
LIB_PART* entry = Prj().SchLibs()->FindLibPart( partname );
wxString msg;
if( entry )
{
msg.Printf( _( "Component '%s' found in library '%s'" ),
GetChars( partname ), GetChars( entry->GetLibraryName() ) );
wxMessageBox( msg );
return;
}
msg.Printf( _( "Component '%s' not found in any library" ), GetChars( partname ) );
// Try to find components which have a name "near" the current chip name,
// i.e. the same name when the comparison is case insensitive.
// Could be helpful for old designs when lower cases and upper case were
// equivalent.
std::vector<LIB_ALIAS*> candidates;
Prj().SchLibs()->FindLibraryNearEntries( candidates, partname );
if( candidates.size() == 0 )
{
wxMessageBox( msg );
return;
}
// Some candidates are found. Show them:
msg << wxT("\n") << _( "However, some candidates are found:" );
// add candidate names:
for( unsigned ii = 0; ii < candidates.size(); ii++ )
{
msg << wxT("\n") <<
wxString::Format( _( "'%s' found in library '%s'" ),
GetChars( candidates[ii]->GetName() ),
GetChars( candidates[ii]->GetLibraryName() ) );
}
wxMessageBox( msg );
}
void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnSelectChipName( wxCommandEvent& event )
{
wxArrayString dummy;
int dummyunit = 1;
wxString chipname = m_Parent->SelectComponentFromLibrary( wxEmptyString, dummy, dummyunit,
true, NULL, NULL );
if( chipname.IsEmpty() )
return;
chipnameTextCtrl->SetValue( chipname );
}
void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnListItemSelected( wxListEvent& event )
{
......@@ -222,9 +283,9 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnCloseDialog( wxCloseEvent& event )
// On wxWidgets 2.8, and on Linux, calling EndQuasiModal here is mandatory
// Otherwise, the main event loop is never restored, and Eeschema does not
// respond to any event, because the DIALOG_SHIM destructor is never called.
// on wxWidgets 3.0, or on Windows, the DIALOG_SHIM destructor is called,
// On wxWidgets 3.0, or on Windows, the DIALOG_SHIM destructor is called,
// and calls EndQuasiModal.
// therefore calling EndQuasiModal here is not mandatory but it creates no issues
// therefore calling EndQuasiModal here is not always mandatory but it creates no issues
EndQuasiModal( wxID_CANCEL );
}
......@@ -251,29 +312,10 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copyPanelToOptions()
if( libs->FindLibraryEntry( newname ) == NULL )
{
if( LIB_ALIAS* entry = libs->FindLibraryNearEntry( newname ) )
{
wxString near_name = entry->GetName();
wxString msg = wxString::Format( _(
"Component '%s' not found!\n"
"But the component '%s' exists\n"
"Do you want to use it?"),
GetChars( newname ), GetChars( near_name ) );
if( IsOK( this, msg ) )
{
chipnameTextCtrl->SetValue( near_name );
m_Cmp->SetPartName( near_name, libs );
}
}
else
{
wxString msg = wxString::Format( _(
"Component '%s' not found!" ),
GetChars( newname ) );
"Component '%s' not found!" ), GetChars( newname ) );
DisplayError( this, msg );
}
}
else // Change component from lib!
{
m_Cmp->SetPartName( newname, libs );
......
......@@ -37,19 +37,19 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
unitsInterchageableText = new wxStaticText( this, wxID_ANY, _("Units are interchangeable:"), wxDefaultPosition, wxDefaultSize, 0 );
unitsInterchageableText->Wrap( -1 );
bSizerUnitsInterchangeable->Add( unitsInterchageableText, 0, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 );
bSizerUnitsInterchangeable->Add( unitsInterchageableText, 0, wxTOP|wxBOTTOM|wxLEFT, 5 );
unitsInterchageableLabel = new wxStaticText( this, wxID_ANY, _("Yes"), wxDefaultPosition, wxDefaultSize, 0 );
unitsInterchageableLabel->Wrap( -1 );
bSizerUnitsInterchangeable->Add( unitsInterchageableLabel, 0, wxALL, 5 );
optionsSizer->Add( bSizerUnitsInterchangeable, 1, wxEXPAND, 5 );
optionsSizer->Add( bSizerUnitsInterchangeable, 0, wxEXPAND, 5 );
wxString orientationRadioBoxChoices[] = { _("0"), _("+90"), _("180"), _("-90") };
int orientationRadioBoxNChoices = sizeof( orientationRadioBoxChoices ) / sizeof( wxString );
orientationRadioBox = new wxRadioBox( this, wxID_ANY, _("Orientation (Degrees)"), wxDefaultPosition, wxDefaultSize, orientationRadioBoxNChoices, orientationRadioBoxChoices, 1, wxRA_SPECIFY_COLS );
orientationRadioBox->SetSelection( 1 );
orientationRadioBox->SetSelection( 0 );
orientationRadioBox->SetToolTip( _("Select if the component is to be rotated when drawn") );
optionsSizer->Add( orientationRadioBox, 0, wxEXPAND|wxALL, 5 );
......@@ -62,25 +62,34 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
optionsSizer->Add( mirrorRadioBox, 0, wxALL|wxEXPAND, 5 );
m_staticTextChipname = new wxStaticText( this, wxID_ANY, _("Chip Name"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextChipname->Wrap( -1 );
optionsSizer->Add( m_staticTextChipname, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
convertCheckBox = new wxCheckBox( this, wxID_ANY, _("Converted Shape"), wxDefaultPosition, wxDefaultSize, 0 );
convertCheckBox->SetToolTip( _("Use the alternate shape of this component.\nFor gates, this is the \"De Morgan\" conversion") );
optionsSizer->Add( convertCheckBox, 0, wxALL, 5 );
wxStaticBoxSizer* sbSizerChipName;
sbSizerChipName = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Chip Name") ), wxVERTICAL );
chipnameTextCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
chipnameTextCtrl->SetMaxLength( 32 );
chipnameTextCtrl->SetToolTip( _("The name of the symbol in the library from which this component came") );
optionsSizer->Add( chipnameTextCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
sbSizerChipName->Add( chipnameTextCtrl, 0, wxEXPAND|wxBOTTOM, 5 );
convertCheckBox = new wxCheckBox( this, wxID_ANY, _("Convert"), wxDefaultPosition, wxDefaultSize, 0 );
convertCheckBox->SetToolTip( _("Use the alternate shape of this component.\nFor gates, this is the \"De Morgan\" conversion") );
wxBoxSizer* bSizerChpinameButt;
bSizerChpinameButt = new wxBoxSizer( wxHORIZONTAL );
optionsSizer->Add( convertCheckBox, 0, wxALL, 5 );
m_buttonTestChipName = new wxButton( this, wxID_ANY, _("Test"), wxDefaultPosition, wxDefaultSize, 0 );
bSizerChpinameButt->Add( m_buttonTestChipName, 0, wxTOP|wxBOTTOM|wxRIGHT, 5 );
defaultsButton = new wxButton( this, wxID_ANY, _("Reset to Library Defaults"), wxDefaultPosition, wxDefaultSize, 0 );
defaultsButton->SetToolTip( _("Set position and style of fields and component orientation to default lib value.\nFields texts are not modified.") );
m_buttonSelectChipName = new wxButton( this, wxID_ANY, _("Select"), wxDefaultPosition, wxDefaultSize, 0 );
bSizerChpinameButt->Add( m_buttonSelectChipName, 0, wxTOP|wxBOTTOM, 5 );
optionsSizer->Add( defaultsButton, 0, wxALL|wxEXPAND, 5 );
sbSizerChipName->Add( bSizerChpinameButt, 1, wxEXPAND, 5 );
optionsSizer->Add( sbSizerChipName, 0, wxEXPAND|wxALL, 5 );
m_staticTextTimeStamp = new wxStaticText( this, wxID_ANY, _("Timestamp"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextTimeStamp->Wrap( -1 );
......@@ -91,6 +100,14 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
optionsSizer->Add( m_textCtrlTimeStamp, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
optionsSizer->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 );
defaultsButton = new wxButton( this, wxID_ANY, _("Reset to Library Defaults"), wxDefaultPosition, wxDefaultSize, 0 );
defaultsButton->SetToolTip( _("Set position and style of fields and component orientation to default lib value.\nFields texts are not modified.") );
optionsSizer->Add( defaultsButton, 0, wxALL|wxEXPAND, 5 );
upperSizer->Add( optionsSizer, 0, wxALIGN_TOP|wxEXPAND|wxALL, 5 );
......@@ -132,13 +149,13 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
wxString m_FieldHJustifyCtrlChoices[] = { _("Left"), _("Center"), _("Right") };
int m_FieldHJustifyCtrlNChoices = sizeof( m_FieldHJustifyCtrlChoices ) / sizeof( wxString );
m_FieldHJustifyCtrl = new wxRadioBox( this, wxID_ANY, _("Horiz. Justify"), wxDefaultPosition, wxDefaultSize, m_FieldHJustifyCtrlNChoices, m_FieldHJustifyCtrlChoices, 1, wxRA_SPECIFY_COLS );
m_FieldHJustifyCtrl->SetSelection( 0 );
m_FieldHJustifyCtrl->SetSelection( 2 );
bSizerJustification->Add( m_FieldHJustifyCtrl, 1, wxRIGHT|wxLEFT, 5 );
wxString m_FieldVJustifyCtrlChoices[] = { _("Bottom"), _("Center"), _("Top") };
int m_FieldVJustifyCtrlNChoices = sizeof( m_FieldVJustifyCtrlChoices ) / sizeof( wxString );
m_FieldVJustifyCtrl = new wxRadioBox( this, wxID_ANY, _("Vert. Justify"), wxDefaultPosition, wxDefaultSize, m_FieldVJustifyCtrlNChoices, m_FieldVJustifyCtrlChoices, 1, wxRA_SPECIFY_COLS );
m_FieldVJustifyCtrl->SetSelection( 0 );
m_FieldVJustifyCtrl->SetSelection( 2 );
bSizerJustification->Add( m_FieldVJustifyCtrl, 1, wxRIGHT|wxLEFT, 5 );
......@@ -200,7 +217,7 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
m_show_datasheet_button = new wxButton( this, wxID_ANY, _("Show in Browser"), wxDefaultPosition, wxDefaultSize, 0 );
m_show_datasheet_button->SetToolTip( _("If your datasheet is an http:// link or a complete file path, then it may show in your browser by pressing this button.") );
fieldNameBoxSizer->Add( m_show_datasheet_button, 0, wxBOTTOM|wxEXPAND, 5 );
fieldNameBoxSizer->Add( m_show_datasheet_button, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
fieldEditBoxSizer->Add( fieldNameBoxSizer, 0, wxBOTTOM|wxEXPAND, 5 );
......@@ -277,10 +294,11 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
this->SetSizer( mainSizer );
this->Layout();
mainSizer->Fit( this );
// Connect Events
this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnCloseDialog ) );
m_buttonTestChipName->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnTestChipName ), NULL, this );
m_buttonSelectChipName->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnSelectChipName ), NULL, this );
defaultsButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::SetInitCmp ), NULL, this );
fieldListCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnListItemDeselected ), NULL, this );
fieldListCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnListItemSelected ), NULL, this );
......@@ -296,6 +314,8 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::~DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
{
// Disconnect Events
this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnCloseDialog ) );
m_buttonTestChipName->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnTestChipName ), NULL, this );
m_buttonSelectChipName->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnSelectChipName ), NULL, this );
defaultsButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::SetInitCmp ), NULL, this );
fieldListCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnListItemDeselected ), NULL, this );
fieldListCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnListItemSelected ), NULL, this );
......
......@@ -44,7 +44,7 @@
<property name="minimum_size"></property>
<property name="name">DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP</property>
<property name="pos"></property>
<property name="size">-1,-1</property>
<property name="size">677,586</property>
<property name="style">wxCAPTION|wxCLOSE_BOX|wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU</property>
<property name="subclass">DIALOG_SHIM; dialog_shim.h</property>
<property name="title">Component Properties</property>
......@@ -288,7 +288,7 @@
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
<property name="proportion">0</property>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">bSizerUnitsInterchangeable</property>
......@@ -296,7 +296,7 @@
<property name="permission">none</property>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxTOP|wxBOTTOM|wxLEFT</property>
<property name="flag">wxTOP|wxBOTTOM|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="0">
<property name="BottomDockable">1</property>
......@@ -512,7 +512,7 @@
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="selection">1</property>
<property name="selection">0</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style">wxRA_SPECIFY_COLS</property>
......@@ -644,9 +644,9 @@
</object>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
<property name="flag">wxALL</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="0">
<object class="wxCheckBox" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
......@@ -660,6 +660,7 @@
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="checked">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
......@@ -674,7 +675,7 @@
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Chip Name</property>
<property name="label">Converted Shape</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
......@@ -682,7 +683,7 @@
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_staticTextChipname</property>
<property name="name">convertCheckBox</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
......@@ -695,12 +696,16 @@
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="tooltip">Use the alternate shape of this component.&#x0A;For gates, this is the &quot;De Morgan&quot; conversion</property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<property name="wrap">-1</property>
<event name="OnChar"></event>
<event name="OnCheckBox"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
......@@ -725,9 +730,21 @@
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxALL</property>
<property name="proportion">0</property>
<object class="wxStaticBoxSizer" expanded="1">
<property name="id">wxID_ANY</property>
<property name="label">Chip Name</property>
<property name="minimum_size"></property>
<property name="name">sbSizerChipName</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
<event name="OnUpdateUI"></event>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property>
<property name="flag">wxEXPAND|wxBOTTOM</property>
<property name="proportion">0</property>
<object class="wxTextCtrl" expanded="0">
<property name="BottomDockable">1</property>
......@@ -816,11 +833,20 @@
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="0">
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALL</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">bSizerChpinameButt</property>
<property name="orient">wxHORIZONTAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxTOP|wxBOTTOM|wxRIGHT</property>
<property name="proportion">0</property>
<object class="wxCheckBox" expanded="0">
<object class="wxButton" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
......@@ -834,10 +860,10 @@
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="checked">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default">0</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
......@@ -849,7 +875,7 @@
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Convert</property>
<property name="label">Test</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
......@@ -857,7 +883,7 @@
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">convertCheckBox</property>
<property name="name">m_buttonTestChipName</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
......@@ -870,7 +896,7 @@
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip">Use the alternate shape of this component.&#x0A;For gates, this is the &quot;De Morgan&quot; conversion</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
......@@ -878,8 +904,8 @@
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnButtonClick">OnTestChipName</event>
<event name="OnChar"></event>
<event name="OnCheckBox"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
......@@ -904,11 +930,11 @@
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="0">
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALL|wxEXPAND</property>
<property name="flag">wxTOP|wxBOTTOM</property>
<property name="proportion">0</property>
<object class="wxButton" expanded="0">
<object class="wxButton" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
......@@ -937,7 +963,7 @@
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Reset to Library Defaults</property>
<property name="label">Select</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
......@@ -945,7 +971,7 @@
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">defaultsButton</property>
<property name="name">m_buttonSelectChipName</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
......@@ -958,7 +984,7 @@
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip">Set position and style of fields and component orientation to default lib value.&#x0A;Fields texts are not modified.</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
......@@ -966,7 +992,7 @@
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnButtonClick">SetInitCmp</event>
<event name="OnButtonClick">OnSelectChipName</event>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
......@@ -992,6 +1018,10 @@
<event name="OnUpdateUI"></event>
</object>
</object>
</object>
</object>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
......@@ -1166,6 +1196,175 @@
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND | wxALL</property>
<property name="proportion">0</property>
<object class="wxStaticLine" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_staticline1</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style">wxLI_HORIZONTAL</property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALL|wxEXPAND</property>
<property name="proportion">0</property>
<object class="wxButton" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default">0</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Reset to Library Defaults</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">defaultsButton</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip">Set position and style of fields and component orientation to default lib value.&#x0A;Fields texts are not modified.</property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnButtonClick">SetInitCmp</event>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
</object>
</object>
<object class="sizeritem" expanded="1">
......@@ -1631,7 +1830,7 @@
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="selection">0</property>
<property name="selection">2</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style">wxRA_SPECIFY_COLS</property>
......@@ -1721,7 +1920,7 @@
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="selection">0</property>
<property name="selection">2</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style">wxRA_SPECIFY_COLS</property>
......@@ -2413,7 +2612,7 @@
</object>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxBOTTOM|wxEXPAND</property>
<property name="flag">wxEXPAND|wxTOP|wxBOTTOM</property>
<property name="proportion">0</property>
<object class="wxButton" expanded="0">
<property name="BottomDockable">1</property>
......
......@@ -23,10 +23,11 @@ class DIALOG_SHIM;
#include <wx/choice.h>
#include <wx/sizer.h>
#include <wx/radiobox.h>
#include <wx/textctrl.h>
#include <wx/checkbox.h>
#include <wx/textctrl.h>
#include <wx/button.h>
#include <wx/statbox.h>
#include <wx/statline.h>
#include <wx/listctrl.h>
#include <wx/dialog.h>
......@@ -47,12 +48,14 @@ class DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP : public DIALOG_SHIM
wxStaticText* unitsInterchageableLabel;
wxRadioBox* orientationRadioBox;
wxRadioBox* mirrorRadioBox;
wxStaticText* m_staticTextChipname;
wxTextCtrl* chipnameTextCtrl;
wxCheckBox* convertCheckBox;
wxButton* defaultsButton;
wxTextCtrl* chipnameTextCtrl;
wxButton* m_buttonTestChipName;
wxButton* m_buttonSelectChipName;
wxStaticText* m_staticTextTimeStamp;
wxTextCtrl* m_textCtrlTimeStamp;
wxStaticLine* m_staticline1;
wxButton* defaultsButton;
wxListCtrl* fieldListCtrl;
wxButton* addFieldButton;
wxButton* deleteFieldButton;
......@@ -82,6 +85,8 @@ class DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP : public DIALOG_SHIM
// Virtual event handlers, overide them in your derived class
virtual void OnCloseDialog( wxCloseEvent& event ) { event.Skip(); }
virtual void OnTestChipName( wxCommandEvent& event ) { event.Skip(); }
virtual void OnSelectChipName( wxCommandEvent& event ) { event.Skip(); }
virtual void SetInitCmp( wxCommandEvent& event ) { event.Skip(); }
virtual void OnListItemDeselected( wxListEvent& event ) { event.Skip(); }
virtual void OnListItemSelected( wxListEvent& event ) { event.Skip(); }
......@@ -95,7 +100,7 @@ class DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP : public DIALOG_SHIM
public:
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Component Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxCAPTION|wxCLOSE_BOX|wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU );
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Component Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 677,586 ), long style = wxCAPTION|wxCLOSE_BOX|wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU );
~DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP();
};
......
......@@ -56,6 +56,9 @@ DIALOG_EESCHEMA_OPTIONS::DIALOG_EESCHEMA_OPTIONS( wxWindow* parent ) :
templateFieldListCtrl->InsertColumn( 0, col0 );
templateFieldListCtrl->InsertColumn( 1, col1 );
templateFieldListCtrl->InsertColumn( 2, col2 );
// Invalid field selected...
selectedField = -1;
}
......@@ -140,59 +143,84 @@ void DIALOG_EESCHEMA_OPTIONS::SetGridSizes( const GRIDS& grid_sizes, int grid_id
}
void DIALOG_EESCHEMA_OPTIONS::OnAddButtonClick( wxCommandEvent& event )
void DIALOG_EESCHEMA_OPTIONS::RefreshTemplateFieldView( void )
{
long itemindex = templateFieldListCtrl->InsertItem( templateFieldListCtrl->GetItemCount(), wxT( "New Fieldname" ) );
templateFieldListCtrl->SetItem( itemindex, 1, wxT( "Default Value" ) );
templateFieldListCtrl->SetItem( itemindex, 2, wxT( "Hidden" ) );
// Delete all items in the template field list control and add all of the
// current template fields
templateFieldListCtrl->DeleteAllItems();
event.Skip();
for( TEMPLATE_FIELDNAMES::iterator fld = templateFields.begin(); fld != templateFields.end(); ++fld )
{
long itemindex = templateFieldListCtrl->InsertItem( templateFieldListCtrl->GetItemCount(), fld->m_Name );
templateFieldListCtrl->SetItem( itemindex, 1, fld->m_Value );
templateFieldListCtrl->SetItem( itemindex, 2, ( fld->m_Visible == true ) ? wxT( "Visible" ) : wxT( "Hidden" ) );
}
// If an item was selected, make sure we re-select it, or at least the
// same position in the grid and then copy the data to the edit panel in
// case it has changed
if( ( selectedField >= 0 ) && ( selectedField < templateFields.size() ) )
{
templateFieldListCtrl->SetItemState( selectedField, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED );
copySelectedToPanel();
}
}
void DIALOG_EESCHEMA_OPTIONS::copyPanelToSelected( void )
void DIALOG_EESCHEMA_OPTIONS::OnAddButtonClick( wxCommandEvent& event )
{
wxListItem iteminfo;
iteminfo.m_itemId = selectedField;
iteminfo.m_mask = wxLIST_MASK_TEXT;
// If there is currently a valid selection, copy the edit panel to the
// selected field so as not to lose the data
if( ( selectedField >= 0 ) && ( selectedField < templateFields.size() ) )
copyPanelToSelected();
iteminfo.m_col = 0;
iteminfo.m_text = fieldNameTextCtrl->GetValue();
templateFieldListCtrl->SetItem( iteminfo );
// Add a new fieldname to the fieldname list
TEMPLATE_FIELDNAME newFieldname = TEMPLATE_FIELDNAME( "New Fieldname" );
newFieldname.m_Value = wxString::Format( wxT( "Default Value %d" ), templateFields.size() );
newFieldname.m_Visible = false;
templateFields.push_back( newFieldname );
iteminfo.m_col = 1;
iteminfo.m_text = fieldDefaultValueTextCtrl->GetValue();
templateFieldListCtrl->SetItem( iteminfo );
// Update the display to reflect the new data
RefreshTemplateFieldView();
iteminfo.m_col = 2;
if( fieldVisibleCheckbox->GetValue() )
iteminfo.m_text = _( "Visible" );
else
iteminfo.m_text = _( "Hidden" );
templateFieldListCtrl->SetItem( iteminfo );
// Select the newly added field and then copy that data to the edit panel.
// Make sure any previously selected state is cleared and then select the
// new field
long selected = templateFieldListCtrl->GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
if( selected >= 0 )
templateFieldListCtrl->SetItemState( selected, 0, wxLIST_STATE_SELECTED );
templateFieldListCtrl->SetItemState( templateFieldListCtrl->GetItemCount() - 1, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED );
selectedField = templateFieldListCtrl->GetItemCount() - 1;
copySelectedToPanel();
event.Skip();
}
void DIALOG_EESCHEMA_OPTIONS::copySelectedToPanel( void )
{
wxListItem iteminfo;
iteminfo.m_itemId = selectedField;
iteminfo.m_mask = wxLIST_MASK_TEXT;
iteminfo.m_col = 0;
if( !templateFieldListCtrl->GetItem( iteminfo ) )
void DIALOG_EESCHEMA_OPTIONS::copyPanelToSelected( void )
{
if( ( selectedField < 0 ) || ( selectedField >= templateFields.size() ) )
return;
fieldNameTextCtrl->SetValue( iteminfo.m_text );
iteminfo.m_col = 1;
if( !templateFieldListCtrl->GetItem( iteminfo ) )
return;
fieldDefaultValueTextCtrl->SetValue( iteminfo.m_text );
// Update the template field data
templateFields[selectedField].m_Name = fieldNameTextCtrl->GetValue();
templateFields[selectedField].m_Value = fieldDefaultValueTextCtrl->GetValue();
templateFields[selectedField].m_Visible = fieldVisibleCheckbox->GetValue();
}
iteminfo.m_col = 2;
if( !templateFieldListCtrl->GetItem( iteminfo ) )
void DIALOG_EESCHEMA_OPTIONS::copySelectedToPanel( void )
{
if( ( selectedField < 0 ) || ( selectedField >= templateFields.size() ) )
return;
if( iteminfo.m_text == _( "Hidden" ) )
fieldNameTextCtrl->SetValue( templateFields[selectedField].m_Name );
fieldDefaultValueTextCtrl->SetValue( templateFields[selectedField].m_Value );
if( templateFields[selectedField].m_Visible == true )
fieldVisibleCheckbox->SetValue( false );
else
fieldVisibleCheckbox->SetValue( true );
......@@ -201,30 +229,32 @@ void DIALOG_EESCHEMA_OPTIONS::copySelectedToPanel( void )
void DIALOG_EESCHEMA_OPTIONS::OnTemplateFieldSelected( wxListEvent& event )
{
selectedField = event.GetSelection();
// Before getting the new field data, make sure we save the old!
if( selectedField >= 0 )
copyPanelToSelected();
// Now update the selected field and copy the data from the field to the
// edit panel
selectedField = event.GetIndex();
copySelectedToPanel();
event.Skip();
}
void DIALOG_EESCHEMA_OPTIONS::OnTemplateFieldDeselected( wxListEvent& event )
{
copyPanelToSelected();
event.Skip();
}
void DIALOG_EESCHEMA_OPTIONS::SetTemplateFields( const TEMPLATE_FIELDNAMES& aFields )
{
// Set the template fields object
templateFields = aFields;
for( TEMPLATE_FIELDNAMES::iterator fld = templateFields.begin(); fld != templateFields.end(); ++fld )
{
long itemindex = templateFieldListCtrl->InsertItem( 0, wxT( "?" ) );
templateFieldListCtrl->SetItem( itemindex, 1, fld->m_Name );
templateFieldListCtrl->SetItem( itemindex, 2, fld->m_Value );
printf( "Parsed new templateField\n" );
}
// Refresh the view
RefreshTemplateFieldView();
}
......
......@@ -44,6 +44,7 @@ protected:
void copySelectedToPanel( void );
void OnTemplateFieldSelected( wxListEvent& event );
void OnTemplateFieldDeselected( wxListEvent& event );
void RefreshTemplateFieldView( void );
public:
DIALOG_EESCHEMA_OPTIONS( wxWindow* parent );
......
......@@ -127,7 +127,7 @@ wxString SCH_BASE_FRAME::SelectComponentFromLibrary( const wxString& aLibname,
if( !aHistoryList.empty() )
{
// This is good for a transition for experineced users: giving them a History. Ideally,
// This is good for a transition for experienced users: giving them a History. Ideally,
// we actually make this part even faster to access with a popup on ALT-a or something.
// the history is under a node named "-- History --"
// However, because it is translatable, and we need to have a node name starting by "-- "
......
......@@ -87,17 +87,6 @@ bool SCH_EDIT_FRAME::CreateArchiveLibrary( const wxString& aFileName )
// AddPart() does first clone the part before adding.
libCache->AddPart( part );
}
else // Search for a part/alias using case insensitive search
{ // for compatibility with old versions of schematics
LIB_ALIAS* entry = libs->FindLibraryNearEntry( component->GetPartName() );
if( entry && !libCache->FindEntry( entry->GetName() ) )
{
if( LIB_PART* part = libs->FindLibPart( entry->GetName() ) )
libCache->AddPart( part );
}
}
}
}
}
......
......@@ -308,6 +308,12 @@ void SCH_EDIT_FRAME::ReCreateMenuBar()
HK_ADD_NOCONN_FLAG, IS_ACCELERATOR ); // add an accelerator, not a shortcut
AddMenuItem( placeMenu, ID_NOCONN_BUTT, text, HELP_PLACE_NC_FLAG, KiBitmap( noconn_xpm ) );
text = AddHotkeyName( _( "&Junction" ), s_Schematic_Hokeys_Descr,
HK_ADD_JUNCTION, IS_ACCELERATOR ); // add an accelerator, not a shortcut
AddMenuItem( placeMenu, ID_JUNCTION_BUTT, text,
HELP_PLACE_JUNCTION,
KiBitmap( add_junction_xpm ) );
text = AddHotkeyName( _( "&Label" ), s_Schematic_Hokeys_Descr,
HK_ADD_LABEL, IS_ACCELERATOR ); // add an accelerator, not a shortcut
AddMenuItem( placeMenu, ID_LABEL_BUTT, text,
......@@ -320,12 +326,6 @@ void SCH_EDIT_FRAME::ReCreateMenuBar()
HELP_PLACE_GLOBALLABEL,
KiBitmap( add_glabel_xpm ) );
text = AddHotkeyName( _( "&Junction" ), s_Schematic_Hokeys_Descr,
HK_ADD_JUNCTION, IS_ACCELERATOR ); // add an accelerator, not a shortcut
AddMenuItem( placeMenu, ID_JUNCTION_BUTT, text,
HELP_PLACE_JUNCTION,
KiBitmap( add_junction_xpm ) );
placeMenu->AppendSeparator();
text = AddHotkeyName( _( "&Hierarchical Label" ), s_Schematic_Hokeys_Descr,
......
......@@ -265,22 +265,6 @@ bool SCH_COMPONENT::Resolve( PART_LIBS* aLibs )
return true;
}
// the part was not found. try to search with no case comparison
// because during a long time, Eeschema was using upper case only
// for names.
// and we could have loaded an old schematic using upper case only
// and libs using upper+lower case for lib items names
if( LIB_ALIAS* entry = aLibs->FindLibraryNearEntry( m_part_name ) )
{
// Now find the part (the lib part if we are using an alias) using
// the "near" name
if( LIB_PART* part = aLibs->FindLibPart( entry->GetName() ) )
{
m_part = part->SharedPtr();
return true;
}
}
return false;
}
......
......@@ -73,23 +73,6 @@ public:
void UpdateStatusBar(); // overload EDA_DRAW_FRAME
protected:
/**
* Function SelectComponentFromLibBrowser
* Calls the library viewer to select component to import into schematic.
* if the library viewer is currently running, it is closed and reopened
* in modal mode.
* @param aPreslectedAlias Preselected component alias. NULL if none.
* @param aUnit Pointer to Unit-number. Input is the pre-selected unit, output
* is the finally selected unit by the user. Can be NULL.
* @param aConvert Pointer to deMorgan conversion. Input is what is pre-selected,
* output is the finally selected deMorgan type by the user.
* @return the component name
*/
wxString SelectComponentFromLibBrowser( LIB_ALIAS* aPreselectedAlias,
int* aUnit, int* aConvert );
/**
* Function SelectComponentFromLib
* Calls the library viewer to select component to import into schematic.
......@@ -112,6 +95,22 @@ protected:
int* aUnit,
int* aConvert );
protected:
/**
* Function SelectComponentFromLibBrowser
* Calls the library viewer to select component to import into schematic.
* if the library viewer is currently running, it is closed and reopened
* in modal mode.
* @param aPreslectedAlias Preselected component alias. NULL if none.
* @param aUnit Pointer to Unit-number. Input is the pre-selected unit, output
* is the finally selected unit by the user. Can be NULL.
* @param aConvert Pointer to deMorgan conversion. Input is what is pre-selected,
* output is the finally selected deMorgan type by the user.
* @return the component name
*/
wxString SelectComponentFromLibBrowser( LIB_ALIAS* aPreselectedAlias,
int* aUnit, int* aConvert );
/**
* Function OnOpenLibraryViewer
......
......@@ -96,6 +96,7 @@ void NETS_LIST_CTRL::SetRowItems( unsigned aRow,
m_Netnames.Add( wxEmptyString, aRow - cnt + 1 );
cnt = m_Classnames.GetCount();
if( cnt <= aRow )
m_Classnames.Add( wxEmptyString, aRow - cnt + 1 );
......@@ -122,6 +123,7 @@ void EnsureGridColumnWidths( wxGrid* aGrid )
sDC.SetFont( aGrid->GetLabelFont() );
int colCount = aGrid->GetNumberCols();
for( int col = 0; col<colCount; ++col )
{
// add two spaces to the text and size it.
......@@ -135,10 +137,8 @@ void EnsureGridColumnWidths( wxGrid* aGrid )
}
/***********************************************************************************/
DIALOG_DESIGN_RULES::DIALOG_DESIGN_RULES( PCB_EDIT_FRAME* parent ) :
DIALOG_DESIGN_RULES_BASE( parent )
/***********************************************************************************/
{
m_Parent = parent;
SetAutoLayout( true );
......@@ -178,13 +178,17 @@ DIALOG_DESIGN_RULES::DIALOG_DESIGN_RULES( PCB_EDIT_FRAME* parent ) :
GetSizer()->Fit( this );
GetSizer()->SetSizeHints( this );
// Allow tabbing out of grid controls. Only available on wxWidgets 2.9.5 or later.
#if wxCHECK_VERSION( 2, 9, 5 )
m_grid->SetTabBehaviour( wxGrid::Tab_Leave );
m_gridViaSizeList->SetTabBehaviour( wxGrid::Tab_Leave );
m_gridTrackWidthList->SetTabBehaviour( wxGrid::Tab_Leave );
#endif
Center();
}
/* Display on m_MessagesList the current global settings:
* minimal values for tracks, vias, clearance ...
*/
void DIALOG_DESIGN_RULES::PrintCurrentSettings()
{
wxString msg, value;
......@@ -206,9 +210,7 @@ void DIALOG_DESIGN_RULES::PrintCurrentSettings()
}
/******************************************/
void DIALOG_DESIGN_RULES::InitDialogRules()
/******************************************/
{
SetFocus();
SetReturnCode( 0 );
......@@ -249,9 +251,7 @@ void DIALOG_DESIGN_RULES::InitDialogRules()
}
/*******************************************/
void DIALOG_DESIGN_RULES::InitGlobalRules()
/*******************************************/
{
AddUnitSymbol( *m_ViaMinTitle );
AddUnitSymbol( *m_ViaMinDrillTitle );
......@@ -281,12 +281,7 @@ void DIALOG_DESIGN_RULES::InitGlobalRules()
}
/***************************************************/
void DIALOG_DESIGN_RULES::InitDimensionsLists()
/***************************************************/
/* Populates the lists of sizes (Tracks width list and Vias diameters & drill list)
*/
{
wxString msg;
......@@ -296,11 +291,11 @@ void DIALOG_DESIGN_RULES::InitDimensionsLists()
m_gridViaSizeList->SetCellValue( 0, 0, msg );
m_gridViaSizeList->SetCellValue( 0, 1, msg );
m_gridTrackWidthList->SetCellValue( 0, 0, msg );
m_gridViaSizeList->SetColMinimalWidth(0,150);
m_gridViaSizeList->SetColMinimalWidth(1,150);
m_gridViaSizeList->AutoSizeColumns(true);
m_gridTrackWidthList->SetColMinimalWidth(0,150);
m_gridTrackWidthList->AutoSizeColumns(true);
m_gridViaSizeList->SetColMinimalWidth( 0, 150 );
m_gridViaSizeList->SetColMinimalWidth( 1, 150 );
m_gridViaSizeList->AutoSizeColumns( true );
m_gridTrackWidthList->SetColMinimalWidth( 0, 150 );
m_gridTrackWidthList->AutoSizeColumns( true );
// Fill cells with actual values:
m_gridViaSizeList->SetCellValue( 0, 0, wxEmptyString );
......@@ -317,6 +312,7 @@ void DIALOG_DESIGN_RULES::InitDimensionsLists()
{
msg = StringFromValue( g_UserUnit, m_ViasDimensionsList[ii].m_Diameter, false );
m_gridViaSizeList->SetCellValue( ii, 0, msg );
if( m_ViasDimensionsList[ii].m_Drill > 0 )
{
msg = StringFromValue( g_UserUnit, m_ViasDimensionsList[ii].m_Drill, false );
......@@ -372,10 +368,6 @@ void DIALOG_DESIGN_RULES::makePointers( PNETCUPS* aList, const wxString& aNetCla
}
/**
* Function FillListBoxWithNetNames
* populates aListCtrl with net names and class names from m_AllNets in a two column display.
*/
void DIALOG_DESIGN_RULES::FillListBoxWithNetNames( NETS_LIST_CTRL* aListCtrl,
const wxString& aNetClass )
{
......@@ -397,11 +389,12 @@ void DIALOG_DESIGN_RULES::FillListBoxWithNetNames( NETS_LIST_CTRL* aListCtrl,
// Add netclass info to m_Netnames and m_Classnames wxArrayString buffers
// aListCtrl uses wxLC_VIRTUAL option, so this is fast
wxClientDC sDC(aListCtrl);
wxClientDC sDC( aListCtrl );
int row = 0;
// recompute the column widths here, after setting texts
int net_colsize = sDC.GetTextExtent( NET_TITLE ).x;
int class_colsize = sDC.GetTextExtent( CLASS_TITLE ).x;
for( PNETCUPS::iterator i = ptrList.begin(); i!=ptrList.end(); ++i, ++row )
{
wxSize net_needed = sDC.GetTextExtent( (*i)->net );
......@@ -411,9 +404,9 @@ void DIALOG_DESIGN_RULES::FillListBoxWithNetNames( NETS_LIST_CTRL* aListCtrl,
aListCtrl->SetRowItems( row, (*i)->net, (*i)->clazz );
}
int margin = sDC.GetTextExtent( wxT("XX") ).x;;
aListCtrl->SetColumnWidth( 0, net_colsize + margin);
aListCtrl->SetColumnWidth( 1, class_colsize + margin);
int margin = sDC.GetTextExtent( wxT( "XX" ) ).x;
aListCtrl->SetColumnWidth( 0, net_colsize + margin );
aListCtrl->SetColumnWidth( 1, class_colsize + margin );
aListCtrl->Refresh();
}
......@@ -475,10 +468,6 @@ static void class2gridRow( wxGrid* grid, int row, NETCLASSPTR nc )
}
/**
* Function InitRulesList
* Fill the grid showing current rules with values
*/
void DIALOG_DESIGN_RULES::InitRulesList()
{
NETCLASSES& netclasses = m_BrdSettings->m_NetClasses;
......@@ -494,6 +483,7 @@ void DIALOG_DESIGN_RULES::InitRulesList()
// enter others netclasses
int row = 1;
for( NETCLASSES::iterator i = netclasses.begin(); i!=netclasses.end(); ++i, ++row )
{
NETCLASSPTR netclass = i->second;
......@@ -517,8 +507,6 @@ static void gridRow2class( wxGrid* grid, int row, NETCLASSPTR nc )
}
/* Copy the rules list from grid to board
*/
void DIALOG_DESIGN_RULES::CopyRulesListToBoard()
{
NETCLASSES& netclasses = m_BrdSettings->m_NetClasses;
......@@ -561,9 +549,7 @@ void DIALOG_DESIGN_RULES::CopyRulesListToBoard()
}
/*************************************************/
void DIALOG_DESIGN_RULES::CopyGlobalRulesToBoard()
/*************************************************/
{
m_BrdSettings->m_BlindBuriedViaAllowed = m_OptViaType->GetSelection() > 0;
......@@ -582,14 +568,13 @@ void DIALOG_DESIGN_RULES::CopyGlobalRulesToBoard()
}
/*******************************************************************/
void DIALOG_DESIGN_RULES::CopyDimensionsListsToBoard()
/*******************************************************************/
{
wxString msg;
// Reinitialize m_TrackWidthList
m_TracksWidthList.clear();
for( int row = 0; row < m_gridTrackWidthList->GetNumberRows(); ++row )
{
msg = m_gridTrackWidthList->GetCellValue( row, 0 );
......@@ -632,8 +617,12 @@ void DIALOG_DESIGN_RULES::CopyDimensionsListsToBoard()
sort( m_ViasDimensionsList.begin(), m_ViasDimensionsList.end() );
std::vector<int>* tlist = &m_BrdSettings->m_TrackWidthList;
tlist->erase( tlist->begin() + 1, tlist->end() ); // Remove old "custom" sizes
tlist->insert( tlist->end(), m_TracksWidthList.begin(), m_TracksWidthList.end() ); //Add new "custom" sizes
// Remove old "custom" sizes
tlist->erase( tlist->begin() + 1, tlist->end() );
// Add new "custom" sizes
tlist->insert( tlist->end(), m_TracksWidthList.begin(), m_TracksWidthList.end() );
// Reinitialize m_ViaSizeList
std::vector<VIA_DIMENSION>* vialist = &m_BrdSettings->m_ViasDimensionsList;
......@@ -642,9 +631,7 @@ void DIALOG_DESIGN_RULES::CopyDimensionsListsToBoard()
}
/*****************************************************************/
void DIALOG_DESIGN_RULES::OnCancelButtonClick( wxCommandEvent& event )
/*****************************************************************/
{
s_LastTabSelection = m_DRnotebook->GetSelection();
......@@ -652,9 +639,7 @@ void DIALOG_DESIGN_RULES::OnCancelButtonClick( wxCommandEvent& event )
}
/**************************************************************************/
void DIALOG_DESIGN_RULES::OnOkButtonClick( wxCommandEvent& event )
/**************************************************************************/
{
s_LastTabSelection = m_DRnotebook->GetSelection();
......@@ -674,9 +659,7 @@ void DIALOG_DESIGN_RULES::OnOkButtonClick( wxCommandEvent& event )
}
/**************************************************************************/
void DIALOG_DESIGN_RULES::OnAddNetclassClick( wxCommandEvent& event )
/**************************************************************************/
{
wxString class_name;
......@@ -688,6 +671,7 @@ void DIALOG_DESIGN_RULES::OnAddNetclassClick( wxCommandEvent& event )
class_name = dlg.GetValue();
class_name.Trim( true );
class_name.Trim( false );
if( class_name.IsEmpty() )
return; // empty name not allowed
......@@ -696,6 +680,7 @@ void DIALOG_DESIGN_RULES::OnAddNetclassClick( wxCommandEvent& event )
{
wxString value;
value = m_grid->GetRowLabelValue( ii );
if( class_name.CmpNoCase( value ) == 0 ) // Already exists!
{
DisplayError( this, _( "This NetClass is already existing, cannot add it; Aborted" ) );
......@@ -704,12 +689,11 @@ void DIALOG_DESIGN_RULES::OnAddNetclassClick( wxCommandEvent& event )
}
m_grid->AppendRows();
m_grid->SetRowLabelValue(
m_grid->GetNumberRows() - 1,
class_name );
m_grid->SetRowLabelValue( m_grid->GetNumberRows() - 1, class_name );
// Copy values of the default class:
int irow = m_grid->GetNumberRows() - 1;
for( int icol = 0; icol < m_grid->GetNumberCols(); icol++ )
{
wxString value;
......@@ -729,9 +713,7 @@ int sort_int( int* first, int* second )
}
/**************************************************************************/
void DIALOG_DESIGN_RULES::OnRemoveNetclassClick( wxCommandEvent& event )
/**************************************************************************/
{
wxArrayInt select = m_grid->GetSelectedRows();
......@@ -742,6 +724,7 @@ void DIALOG_DESIGN_RULES::OnRemoveNetclassClick( wxCommandEvent& event )
// rows labels are not removed when deleting rows: they are not deleted.
// So we must store them, remove corresponding labels and reinit them
wxArrayString labels;
for( int ii = 0; ii < m_grid->GetNumberRows(); ii++ )
labels.Add( m_grid->GetRowLabelValue( ii ) );
......@@ -750,6 +733,7 @@ void DIALOG_DESIGN_RULES::OnRemoveNetclassClick( wxCommandEvent& event )
for( unsigned ii = 0; ii < select.GetCount(); ii++ )
{
int grid_row = select[ii];
if( grid_row != 0 ) // Do not remove the default class
{
wxString classname = m_grid->GetRowLabelValue( grid_row );
......@@ -775,26 +759,24 @@ void DIALOG_DESIGN_RULES::OnRemoveNetclassClick( wxCommandEvent& event )
}
/*
* Called on "Move Up" button click
* the selected(s) rules are moved up
* The default netclass is always the first rule
*/
void DIALOG_DESIGN_RULES::OnMoveUpSelectedNetClass( wxCommandEvent& event )
{
// Cannot move up rules if we have 1 or 2 rules only
if( m_grid->GetNumberRows() < 3 )
return;
wxArrayInt select = m_grid->GetSelectedRows();
wxArrayInt select = m_grid->GetSelectedRows();
bool reinit = false;
for( unsigned irow = 0; irow < select.GetCount(); irow++ )
{
int ii = select[irow];
if( ii < 2 ) // The default netclass *must* be the first netclass
continue; // so we cannot move up line 0 and 1
// Swap the rule and the previous rule
wxString curr_value, previous_value;
for( int icol = 0; icol < m_grid->GetNumberCols(); icol++ )
{
reinit = true;
......@@ -815,12 +797,10 @@ void DIALOG_DESIGN_RULES::OnMoveUpSelectedNetClass( wxCommandEvent& event )
}
/*
* Called on the left Choice Box selection
*/
void DIALOG_DESIGN_RULES::OnLeftCBSelection( wxCommandEvent& event )
{
FillListBoxWithNetNames( m_leftListCtrl, m_leftClassChoice->GetStringSelection() );
if( m_leftClassChoice->GetStringSelection() == m_rightClassChoice->GetStringSelection() )
{
m_buttonRightToLeft->Enable( false );
......@@ -834,12 +814,10 @@ void DIALOG_DESIGN_RULES::OnLeftCBSelection( wxCommandEvent& event )
}
/*
* Called on the Right Choice Box selection
*/
void DIALOG_DESIGN_RULES::OnRightCBSelection( wxCommandEvent& event )
{
FillListBoxWithNetNames( m_rightListCtrl, m_rightClassChoice->GetStringSelection() );
if( m_leftClassChoice->GetStringSelection() == m_rightClassChoice->GetStringSelection() )
{
m_buttonRightToLeft->Enable( false );
......@@ -898,9 +876,6 @@ void DIALOG_DESIGN_RULES::OnLeftToRightCopyButton( wxCommandEvent& event )
}
/* Called on clicking the left "select all" button:
* select all items of the left netname list lisxt box
*/
void DIALOG_DESIGN_RULES::OnLeftSelectAllButton( wxCommandEvent& event )
{
for( int ii = 0; ii < m_leftListCtrl->GetItemCount(); ii++ )
......@@ -908,9 +883,6 @@ void DIALOG_DESIGN_RULES::OnLeftSelectAllButton( wxCommandEvent& event )
}
/* Called on clicking the right "select all" button:
* select all items of the right netname list lisxt box
*/
void DIALOG_DESIGN_RULES::OnRightSelectAllButton( wxCommandEvent& event )
{
for( int ii = 0; ii < m_rightListCtrl->GetItemCount(); ii++ )
......@@ -931,11 +903,6 @@ void DIALOG_DESIGN_RULES::setNetClass( const wxString& aNetName, const wxString&
}
/* TestDataValidity
* Performs a control of data validity
* set the background of a bad cell in RED and display an info message
* @return true if Ok, false if error
*/
bool DIALOG_DESIGN_RULES::TestDataValidity()
{
bool result = true;
......@@ -981,6 +948,7 @@ bool DIALOG_DESIGN_RULES::TestDataValidity()
int viadrill = ValueFromString( g_UserUnit,
m_grid->GetCellValue( row, GRID_VIADRILL ) );
if( viadrill >= viadia )
{
result = false;
......@@ -1014,6 +982,7 @@ bool DIALOG_DESIGN_RULES::TestDataValidity()
int muviadrill = ValueFromString( g_UserUnit,
m_grid->GetCellValue( row, GRID_uVIADRILL ) );
if( muviadrill >= muviadia )
{
result = false;
......@@ -1038,6 +1007,7 @@ bool DIALOG_DESIGN_RULES::TestDataValidity()
for( int row = 0; row < m_gridTrackWidthList->GetNumberRows(); ++row )
{
wxString tvalue = m_gridTrackWidthList->GetCellValue( row, 0 );
if( tvalue.IsEmpty() )
continue;
......@@ -1051,6 +1021,7 @@ bool DIALOG_DESIGN_RULES::TestDataValidity()
m_MessagesList->AppendToPage( msg );
}
if( tracksize > maxval )
{
result = false;
......@@ -1065,6 +1036,7 @@ bool DIALOG_DESIGN_RULES::TestDataValidity()
for( int row = 0; row < m_gridViaSizeList->GetNumberRows(); ++row )
{
wxString tvalue = m_gridViaSizeList->GetCellValue( row, 0 );
if( tvalue.IsEmpty() )
continue;
......
///////////////////////////////////////////////////////////////////////////////
/// Class DIALOG_DESIGN_RULES
///////////////////////////////////////////////////////////////////////////////
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2004-2009 Jean-Pierre Charras, jean-pierre.charras@gpisa-lab.inpg.fr
* Copyright (C) 2009 Dick Hollenbeck, dick@softplc.com
* Copyright (C) 2009 KiCad Developers, see change_log.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
/**
* @file dialog_design_rules.h
*/
#ifndef __dialog_design_rules_h_
#define __dialog_design_rules_h_
......@@ -36,7 +62,7 @@ class DIALOG_DESIGN_RULES : public DIALOG_DESIGN_RULES_BASE
private:
static const wxString wildCard; ///< the name of a ficticious netclass which includes all NETs
static const wxString wildCard; ///< the name of a fictitious netclass which includes all NETs
PCB_EDIT_FRAME* m_Parent;
BOARD* m_Pcb;
......@@ -63,24 +89,81 @@ private:
void OnOkButtonClick( wxCommandEvent& event );
void OnAddNetclassClick( wxCommandEvent& event );
void OnRemoveNetclassClick( wxCommandEvent& event );
/*
* Called on "Move Up" button click
* the selected(s) rules are moved up
* The default netclass is always the first rule
*/
void OnMoveUpSelectedNetClass( wxCommandEvent& event );
/*
* Called on the left Choice Box selection
*/
void OnLeftCBSelection( wxCommandEvent& event );
/*
* Called on the Right Choice Box selection
*/
void OnRightCBSelection( wxCommandEvent& event );
void OnRightToLeftCopyButton( wxCommandEvent& event );
void OnLeftToRightCopyButton( wxCommandEvent& event );
/*
* Called on clicking the left "select all" button:
* select all items of the left netname list list box
*/
void OnLeftSelectAllButton( wxCommandEvent& event );
/*
* Called on clicking the right "select all" button:
* select all items of the right netname list list box
*/
void OnRightSelectAllButton( wxCommandEvent& event );
/*
* Function TestDataValidity
*
* Performs a control of data validity
* set the background of a bad cell in RED and display an info message
* @return true if Ok, false if error
*/
bool TestDataValidity( );
void InitDialogRules();
void InitGlobalRules();
/**
* Function InitRulesList
* Fill the grid showing current rules with values
*/
void InitRulesList();
/* Populates the lists of sizes (Tracks width list and Vias diameters & drill list) */
void InitDimensionsLists();
void InitializeRulesSelectionBoxes();
/* Copy the rules list from grid to board
*/
void CopyRulesListToBoard();
void CopyGlobalRulesToBoard();
void CopyDimensionsListsToBoard( );
void SetRoutableLayerStatus();
/**
* Function FillListBoxWithNetNames
* populates aListCtrl with net names and class names from m_AllNets in a two column display.
*/
void FillListBoxWithNetNames( NETS_LIST_CTRL* aListCtrl, const wxString& aNetClass );
/**
* Function PrintCurrentSettings
* Display on m_MessagesList the current global settings:
* minimal values for tracks, vias, clearance ...
*/
void PrintCurrentSettings( );
/**
......
......@@ -347,7 +347,12 @@ public:
// Fit();
// We derive from DIALOG_SHIM so prior size will be used anyways.
// select the last selected page
m_auinotebook->SetSelection( m_pageNdx );
// fire pageChangedHandler() so m_cur_grid gets set
// m_auinotebook->SetSelection will generate a pageChangedHandler()
// event call later, but too late.
wxAuiNotebookEvent uneventful;
pageChangedHandler( uneventful );
......@@ -494,8 +499,8 @@ private:
void pageChangedHandler( wxAuiNotebookEvent& event )
{
int pageNdx = m_auinotebook->GetSelection();
m_cur_grid = ( pageNdx == 0 ) ? m_global_grid : m_project_grid;
m_pageNdx = m_auinotebook->GetSelection();
m_cur_grid = ( m_pageNdx == 0 ) ? m_global_grid : m_project_grid;
}
void appendRowHandler( wxMouseEvent& event )
......@@ -746,8 +751,11 @@ private:
FP_TBL_MODEL* cur_model() const { return (FP_TBL_MODEL*) m_cur_grid->GetTable(); }
wxGrid* m_cur_grid; ///< changed based on tab choice
static int m_pageNdx; ///< Remember the last notebook page selected during a session
};
int DIALOG_FP_LIB_TABLE::m_pageNdx = 0;
int InvokePcbLibTableEditor( wxTopLevelWindow* aParent, FP_LIB_TABLE* aGlobal, FP_LIB_TABLE* aProject )
{
......
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Nov 6 2013)
// C++ code generated with wxFormBuilder (version Jun 5 2014)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
......@@ -98,12 +98,12 @@ DIALOG_FP_LIB_TABLE_BASE::DIALOG_FP_LIB_TABLE_BASE( wxWindow* parent, wxWindowID
wxBoxSizer* bSizer51;
bSizer51 = new wxBoxSizer( wxHORIZONTAL );
m_append_button = new wxButton( this, wxID_ANY, _("Append Row"), wxDefaultPosition, wxDefaultSize, 0 );
m_append_button = new wxButton( this, wxID_ANY, _("Append Library"), wxDefaultPosition, wxDefaultSize, 0 );
m_append_button->SetToolTip( _("Add a PCB library row to this table") );
bSizer51->Add( m_append_button, 0, wxALL, 5 );
m_delete_button = new wxButton( this, wxID_ANY, _("Delete Row"), wxDefaultPosition, wxDefaultSize, 0 );
m_delete_button = new wxButton( this, wxID_ANY, _("Remove Library"), wxDefaultPosition, wxDefaultSize, 0 );
m_delete_button->SetToolTip( _("Remove a PCB library from this library table") );
bSizer51->Add( m_delete_button, 0, wxALL, 5 );
......
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<wxFormBuilder_Project>
<FileVersion major="1" minor="11" />
<FileVersion major="1" minor="13" />
<object class="Project" expanded="1">
<property name="class_decoration"></property>
<property name="code_generation">C++</property>
......@@ -696,7 +696,7 @@
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Append Row</property>
<property name="label">Append Library</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
......@@ -784,7 +784,7 @@
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Delete Row</property>
<property name="label">Remove Library</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
......
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Nov 6 2013)
// C++ code generated with wxFormBuilder (version Jun 5 2014)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
......
......@@ -215,7 +215,11 @@ IO_MGR::PCB_FILE_T IO_MGR::GuessPluginTypeFromLibPath( const wxString& aLibPath
// mistakenly put a pretty library into a directory other than
// *.pretty/ with *.kicad_mod in there., and I don't want to return -1,
// since we only claimed to be guessing.
else if( fn.GetExt() == KiCadFootprintLibPathExtension )
//
// However libraries on GitHub have names ending by .pretty
// so test also this is not a name starting by http (including https).
else if( fn.GetExt() == KiCadFootprintLibPathExtension &&
!aLibPath.StartsWith( wxT( "http" ) ) )
{
ret = KICAD;
}
......
......@@ -530,7 +530,6 @@ void FOOTPRINT_EDIT_FRAME::OnSaveLibraryAs( wxCommandEvent& aEvent )
PLUGIN::RELEASER dst( IO_MGR::PluginFind( dstType ) );
wxArrayString mods = cur->FootprintEnumerate( curLibPath );
for( unsigned i = 0; i < mods.size(); ++i )
{
std::auto_ptr<MODULE> m( cur->FootprintLoad( curLibPath, mods[i] ) );
......
......@@ -86,7 +86,6 @@ BEGIN_EVENT_TABLE( FOOTPRINT_EDIT_FRAME, PCB_BASE_FRAME )
EVT_TOOL( ID_MODEDIT_DELETE_PART, FOOTPRINT_EDIT_FRAME::Process_Special_Functions )
EVT_TOOL( ID_MODEDIT_NEW_MODULE, FOOTPRINT_EDIT_FRAME::Process_Special_Functions )
EVT_TOOL( ID_MODEDIT_NEW_MODULE_FROM_WIZARD, FOOTPRINT_EDIT_FRAME::Process_Special_Functions )
EVT_TOOL( ID_MODEDIT_LOAD_MODULE, FOOTPRINT_EDIT_FRAME::Process_Special_Functions )
EVT_TOOL( ID_MODEDIT_IMPORT_PART, FOOTPRINT_EDIT_FRAME::Process_Special_Functions )
EVT_TOOL( ID_MODEDIT_EXPORT_PART, FOOTPRINT_EDIT_FRAME::Process_Special_Functions )
EVT_TOOL( ID_MODEDIT_CREATE_NEW_LIB_AND_SAVE_CURRENT_PART,
......
......@@ -236,8 +236,8 @@ static inline double mapY( int y )
/**
* Function mapPt
* converts a KiCad point into a DSN file point. Kicad's BOARD coordinates
* are in deci-mils (i.e. 1/10,000th of an inch) and we are exporting in units
* of mils, so we have to divide by 10.
* are in nanometers (called Internal Units or IU)and we are exporting in units
* of mils, so we have to scale them.
*/
static POINT mapPt( const wxPoint& pt )
{
......@@ -864,12 +864,14 @@ static void makeCircle( PATH* aPath, DRAWSEGMENT* aGraphic )
// do a circle segmentation
const int STEPS = 2 * 36;
wxPoint start;
wxPoint center = aGraphic->GetCenter();
int radius = aGraphic->GetRadius();
double angle = 3600.0;
start = center;
if( radius <= 0 ) // Should not occur, but ...
return;
wxPoint center = aGraphic->GetCenter();
double angle = 3600.0;
wxPoint start = center;
start.x += radius;
wxPoint nextPt;
......@@ -990,7 +992,8 @@ void SPECCTRA_DB::fillBOUNDARY( BOARD* aBoard, BOUNDARY* boundary ) throw( IO_ER
// pt has minimum x point
pt.x -= graphic->GetRadius();
if( pt.x < xmin.x )
// when the radius <= 0, this is a mal-formed circle. Skip it
if( graphic->GetRadius() > 0 && pt.x < xmin.x )
{
xmin = pt;
xmini = i;
......@@ -1020,7 +1023,7 @@ void SPECCTRA_DB::fillBOUNDARY( BOARD* aBoard, BOUNDARY* boundary ) throw( IO_ER
// Set maximum proximity threshold for point to point nearness metric for
// board perimeter only, not interior keepouts yet.
prox = Millimeter2iu( 0.002 ); // should be enough to fix rounding issues
prox = Millimeter2iu( 0.01 ); // should be enough to fix rounding issues
// is arc start and end point calculations
// Output the Edge.Cuts perimeter as circle or polygon.
......
......@@ -1019,7 +1019,7 @@ bool DRAWING_TOOL::drawSegment( int aShape, DRAWSEGMENT*& aGraphic,
else if( evt->IsAction( &COMMON_ACTIONS::decWidth ) )
{
if( lineWidth > WIDTH_STEP )
if( lineWidth > (unsigned) WIDTH_STEP )
{
lineWidth -= WIDTH_STEP;
aGraphic->SetWidth( lineWidth );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment