Code cleaning. Minor fixes. Better link to gnucap.

Fixed a minor issue when creating a netlist: for nets having global labels, global label names were ignored when searching a name for this net.
This commit is contained in:
jean-pierre charras 2010-07-14 20:15:07 +02:00
commit 94e51aa3a3
22 changed files with 2199 additions and 2175 deletions

View File

@ -1,453 +0,0 @@
PCBNEW-LibModule-V1
$INDEX
LOGO
$EndINDEX
#
# LOGO
# pixmap w = 229, h = 270
#
$MODULE LOGO
Po 0 0 0 15 00000000 00000000 ~~
T0 0 4800 600 600 0 120 N I 21 "G***"
T1 0 -4800 600 600 0 120 N I 21 "LOGO"
DP 0 0 0 0 5 1 21
Dl -3783 4516
Dl -3766 -4466
Dl 3850 -4483
Dl -3800 -4500
Dl -3783 4516
DP 0 0 0 0 390 1 21
Dl 1632 4131
Dl 1638 4131
Dl 1780 4126
Dl 1890 4102
Dl 2002 4043
Dl 2149 3930
Dl 2363 3747
Dl 2609 3558
Dl 2925 3367
Dl 2953 3353
Dl 3208 3199
Dl 3374 3049
Dl 3430 2920
Dl 3427 2889
Dl 3408 2899
Dl 3352 2984
Dl 3273 3033
Dl 3265 3034
Dl 3196 3087
Dl 3127 3137
Dl 2968 3224
Dl 2766 3322
Dl 2565 3409
Dl 2409 3464
Dl 2322 3492
Dl 2250 3532
Dl 2193 3578
Dl 2046 3649
Dl 1874 3708
Dl 1736 3733
Dl 1669 3729
Dl 1582 3691
Dl 1484 3578
Dl 1479 3570
Dl 1408 3458
Dl 1371 3333
Dl 1360 3154
Dl 1369 2883
Dl 1374 2686
Dl 1361 2510
Dl 1318 2351
Dl 1286 2218
Dl 1266 2017
Dl 1257 1890
Dl 1233 1816
Dl 1230 1815
Dl 1208 1871
Dl 1199 2043
Dl 1199 2110
Dl 1190 2365
Dl 1158 2536
Dl 1091 2664
Dl 977 2790
Dl 920 2843
Dl 516 3128
Dl 70 3289
Dl -404 3323
Dl -637 3292
Dl -853 3202
Dl -1017 3037
Dl -1126 2886
Dl -999 2829
Dl -983 2821
Dl -843 2712
Dl -822 2563
Dl -822 2562
Dl -856 2472
Dl -936 2370
Dl -1082 2234
Dl -1316 2041
Dl -1493 1900
Dl -1665 1757
Dl -1767 1658
Dl -1816 1577
Dl -1831 1491
Dl -1832 1376
Dl -1818 1157
Dl -1783 920
Dl -1783 919
Dl -1720 715
Dl -1617 463
Dl -1494 206
Dl -1372 -10
Dl -1272 -144
Dl -1237 -179
Dl -1193 -249
Dl -1222 -335
Dl -1248 -399
Dl -1243 -481
Dl -1185 -620
Dl -1093 -804
Dl -979 -1005
Dl -973 -1016
Dl -889 -1183
Dl -877 -1295
Dl -885 -1396
Dl -865 -1410
Dl -865 -2009
Dl -930 -2105
Dl -953 -2213
Dl -966 -2390
Dl -966 -2426
Dl -943 -2572
Dl -861 -2701
Dl -786 -2787
Dl -733 -2833
Dl -692 -2808
Dl -592 -2724
Dl -547 -2679
Dl -450 -2495
Dl -476 -2314
Dl -523 -2224
Dl -543 -2349
Dl -559 -2417
Dl -638 -2554
Dl -744 -2596
Dl -848 -2525
Dl -897 -2373
Dl -832 -2172
Dl -798 -2106
Dl -784 -2031
Dl -794 -2018
Dl -865 -2009
Dl -865 -1410
Dl -838 -1429
Dl -731 -1345
Dl -637 -1263
Dl -471 -1159
Dl -412 -1136
Dl -412 -1333
Dl -483 -1366
Dl -484 -1369
Dl -453 -1399
Dl -412 -1380
Dl -412 -1473
Dl -617 -1494
Dl -737 -1573
Dl -743 -1597
Dl -719 -1723
Dl -644 -1899
Dl -626 -1935
Dl -600 -2011
Dl -580 -2047
Dl -496 -2136
Dl -472 -2157
Dl -369 -2218
Dl -221 -2228
Dl -123 -2221
Dl -125 -2209
Dl -133 -2208
Dl -197 -2165
Dl -133 -2116
Dl -123 -2113
Dl -33 -2118
Dl -18 -2168
Dl -24 -2193
Dl 49 -2183
Dl 233 -2099
Dl 245 -2094
Dl 391 -2027
Dl 478 -1999
Dl 495 -1996
Dl 495 -2037
Dl 423 -2065
Dl 467 -2158
Dl 520 -2276
Dl 512 -2442
Dl 434 -2577
Dl 303 -2633
Dl 230 -2607
Dl 138 -2490
Dl 98 -2320
Dl 97 -2183
Dl 31 -2262
Dl -55 -2423
Dl -45 -2589
Dl 74 -2708
Dl 142 -2741
Dl 313 -2816
Dl 412 -2842
Dl 473 -2829
Dl 484 -2822
Dl 533 -2739
Dl 536 -2719
Dl 596 -2627
Dl 644 -2561
Dl 685 -2383
Dl 659 -2182
Dl 614 -2083
Dl 532 -2040
Dl 495 -2037
Dl 495 -1996
Dl 506 -1993
Dl 604 -1935
Dl 656 -1882
Dl 640 -1827
Dl 614 -1805
Dl 569 -1828
Dl 561 -1839
Dl 511 -1850
Dl 413 -1805
Dl 236 -1690
Dl 89 -1608
Dl -108 -1528
Dl -159 -1513
Dl -412 -1473
Dl -412 -1380
Dl -383 -1366
Dl -381 -1363
Dl -412 -1333
Dl -412 -1136
Dl -399 -1131
Dl -220 -1110
Dl -22 -1170
Dl 232 -1318
Dl 324 -1377
Dl 514 -1477
Dl 628 -1491
Dl 684 -1425
Dl 697 -1388
Dl 760 -1249
Dl 850 -1065
Dl 884 -995
Dl 985 -757
Dl 1053 -548
Dl 1117 -358
Dl 1203 -199
Dl 1383 97
Dl 1511 450
Dl 1536 567
Dl 1577 892
Dl 1589 1224
Dl 1567 1496
Dl 1556 1560
Dl 1545 1685
Dl 1569 1735
Dl 1579 1744
Dl 1583 1813
Dl 1535 1967
Dl 1534 1970
Dl 1486 2117
Dl 1481 2211
Dl 1516 2321
Dl 1522 2335
Dl 1658 2502
Dl 1859 2582
Dl 2077 2554
Dl 2078 2554
Dl 2201 2473
Dl 2339 2346
Dl 2453 2214
Dl 2499 2120
Dl 2526 2030
Dl 2595 1887
Dl 2618 1845
Dl 2736 1510
Dl 2760 1129
Dl 2690 686
Dl 2526 166
Dl 2419 -91
Dl 2285 -326
Dl 2107 -549
Dl 2084 -575
Dl 1788 -972
Dl 1513 -1466
Dl 1410 -1707
Dl 1349 -1962
Dl 1333 -2269
Dl 1331 -2416
Dl 1285 -2920
Dl 1171 -3320
Dl 982 -3631
Dl 710 -3865
Dl 349 -4036
Dl 179 -4082
Dl -197 -4100
Dl -546 -4006
Dl -639 -3959
Dl -881 -3774
Dl -1056 -3508
Dl -1150 -3316
Dl -1150 -1281
Dl -1262 -1095
Dl -1314 -1016
Dl -1453 -826
Dl -1612 -629
Dl -1622 -616
Dl -1775 -422
Dl -1887 -238
Dl -1983 -19
Dl -2086 281
Dl -2109 349
Dl -2204 591
Dl -2300 793
Dl -2310 812
Dl -2400 976
Dl -2460 1087
Dl -2484 1146
Dl -2519 1309
Dl -2527 1476
Dl -2503 1579
Dl -2486 1643
Dl -2536 1765
Dl -2631 1904
Dl -2761 1977
Dl -2975 2009
Dl -2990 2010
Dl -3154 2034
Dl -3249 2066
Dl -3294 2122
Dl -3338 2308
Dl -3323 2604
Dl -3321 2625
Dl -3304 2811
Dl -3316 2944
Dl -3361 3099
Dl -3407 3256
Dl -3427 3451
Dl -3365 3565
Dl -3216 3619
Dl -3085 3647
Dl -2900 3701
Dl -2717 3757
Dl -2500 3813
Dl -2192 3895
Dl -1716 4063
Dl -1618 4091
Dl -1618 3724
Dl -1877 3667
Dl -2040 3621
Dl -2194 3587
Dl -2223 3583
Dl -2405 3553
Dl -2631 3514
Dl -2857 3472
Dl -3038 3437
Dl -3132 3416
Dl -3176 3385
Dl -3212 3269
Dl -3178 3139
Dl -3169 3121
Dl -3143 2964
Dl -3148 2711
Dl -3185 2390
Dl -3188 2367
Dl -3179 2222
Dl -3088 2153
Dl -2893 2138
Dl -2693 2117
Dl -2509 2005
Dl -2421 1802
Dl -2395 1718
Dl -2299 1601
Dl -2175 1580
Dl -2092 1629
Dl -1936 1793
Dl -1734 2069
Dl -1482 2464
Dl -1128 3045
Dl -1150 3247
Dl -1168 3355
Dl -1249 3572
Dl -1367 3700
Dl -1418 3719
Dl -1618 3724
Dl -1618 4091
Dl -1549 4111
Dl -1325 4130
Dl -1156 4095
Dl -1096 4057
Dl -973 3961
Dl -901 3905
Dl -829 3866
Dl -823 3866
Dl -748 3819
Dl -729 3806
Dl -585 3769
Dl -337 3745
Dl -7 3736
Dl 382 3744
Dl 652 3757
Dl 868 3774
Dl 998 3797
Dl 1067 3833
Dl 1100 3885
Dl 1142 3947
Dl 1256 4047
Dl 1334 4094
Dl 1450 4125
Dl 1632 4131
DP 0 0 0 0 5 1 21
Dl 3387 2800
Dl 3383 2766
Dl 3346 2733
Dl 3350 2766
Dl 3387 2800
DP 0 0 0 0 5 1 21
Dl 3283 2733
Dl 3300 2716
Dl 3283 2700
Dl 3266 2716
Dl 3283 2733
DP 0 0 0 0 5 1 21
Dl 3216 2700
Dl 3233 2683
Dl 3216 2666
Dl 3200 2683
Dl 3216 2700
DP 0 0 0 0 9 1 21
Dl 3129 2633
Dl 3119 2613
Dl 3050 2533
Dl 2990 2474
Dl 2937 2433
Dl 2946 2453
Dl 3016 2533
Dl 3076 2591
Dl 3129 2633
DP 0 0 0 0 5 1 21
Dl 2920 2400
Dl 2916 2366
Dl 2879 2333
Dl 2883 2366
Dl 2920 2400
DP 0 0 0 0 7 1 21
Dl 2812 2179
Dl 2823 2175
Dl 2825 2161
Dl 2823 2025
Dl 2814 2012
Dl 2809 2100
Dl 2812 2179
$EndMODULE LOGO
$EndLIBRARY

432
demos/interf_u/image.mod Normal file
View File

@ -0,0 +1,432 @@
PCBNEW-LibModule-V1
$INDEX
LOGO
$EndINDEX
#
# LOGO
# pixmap w = 229, h = 270
#
$MODULE LOGO
Po 0 0 0 15 00000000 00000000 ~~
T0 0 4800 600 600 0 120 N I 21 "G***"
T1 0 -4800 600 600 0 120 N I 21 "LOGO"
DP 0 0 0 0 5 1 21
Dl -3783 4516
Dl -3766 -4466
Dl 3850 -4483
Dl -3800 -4500
Dl -3783 4516
DP 0 0 0 0 374 1 21
Dl 1586 4128
Dl 1741 4127
Dl 1914 4087
Dl 2086 3984
Dl 2299 3797
Dl 2405 3706
Dl 2593 3565
Dl 2790 3434
Dl 2958 3337
Dl 3061 3300
Dl 3100 3266
Dl 3141 3233
Dl 3183 3218
Dl 3268 3162
Dl 3338 3098
Dl 3343 3067
Dl 3281 3102
Dl 3276 3107
Dl 3189 3159
Dl 3027 3244
Dl 2829 3342
Dl 2634 3436
Dl 2479 3505
Dl 2402 3533
Dl 2382 3539
Dl 2296 3595
Dl 2249 3627
Dl 2059 3716
Dl 1845 3777
Dl 1678 3788
Dl 1640 3780
Dl 1454 3667
Dl 1338 3469
Dl 1319 3353
Dl 1305 3143
Dl 1299 2894
Dl 1299 2844
Dl 1294 2599
Dl 1279 2454
Dl 1251 2381
Dl 1236 2362
Dl 1207 2349
Dl 1201 2444
Dl 1189 2532
Dl 1134 2627
Dl 1008 2763
Dl 936 2831
Dl 528 3122
Dl 80 3288
Dl -401 3325
Dl -608 3301
Dl -844 3210
Dl -1024 3038
Dl -1134 2893
Dl -992 2821
Dl -954 2801
Dl -865 2731
Dl -839 2625
Dl -837 2569
Dl -862 2466
Dl -947 2359
Dl -1116 2214
Dl -1179 2163
Dl -1377 2002
Dl -1579 1835
Dl -1841 1616
Dl -1824 1266
Dl -1819 1172
Dl -1786 912
Dl -1724 699
Dl -1692 618
Dl -1583 370
Dl -1465 134
Dl -1367 -33
Dl -1364 -38
Dl -1314 -165
Dl -1273 -345
Dl -1257 -430
Dl -1191 -626
Dl -1068 -856
Dl -980 -1011
Dl -917 -1160
Dl -900 -1283
Dl -888 -1401
Dl -868 -1420
Dl -868 -1985
Dl -915 -2076
Dl -948 -2201
Dl -966 -2388
Dl -966 -2389
Dl -948 -2566
Dl -878 -2706
Dl -813 -2784
Dl -737 -2832
Dl -721 -2830
Dl -620 -2763
Dl -512 -2643
Dl -448 -2523
Dl -443 -2483
Dl -468 -2328
Dl -511 -2224
Dl -552 -2363
Dl -560 -2387
Dl -644 -2554
Dl -745 -2602
Dl -848 -2525
Dl -897 -2371
Dl -830 -2170
Dl -817 -2147
Dl -781 -2061
Dl -813 -2005
Dl -825 -1993
Dl -868 -1985
Dl -868 -1420
Dl -836 -1450
Dl -745 -1373
Dl -541 -1197
Dl -400 -1160
Dl -400 -1304
Dl -476 -1320
Dl -477 -1322
Dl -491 -1381
Dl -476 -1382
Dl -476 -1470
Dl -650 -1498
Dl -674 -1510
Dl -778 -1593
Dl -786 -1603
Dl -817 -1655
Dl -801 -1727
Dl -730 -1867
Dl -632 -2020
Dl -543 -2102
Dl -518 -2114
Dl -466 -2178
Dl -459 -2204
Dl -368 -2255
Dl -216 -2267
Dl -52 -2234
Dl 2 -2214
Dl 26 -2228
Dl -18 -2327
Dl -40 -2384
Dl -60 -2540
Dl -51 -2589
Dl 0 -2668
Dl 133 -2759
Dl 241 -2816
Dl 411 -2854
Dl 513 -2783
Dl 528 -2757
Dl 606 -2639
Dl 638 -2586
Dl 684 -2413
Dl 677 -2232
Dl 622 -2090
Dl 526 -2032
Dl 520 -2031
Dl 483 -2021
Dl 558 -1983
Dl 616 -1953
Dl 662 -1883
Dl 647 -1744
Dl 641 -1722
Dl 532 -1594
Dl 324 -1498
Dl 305 -1493
Dl 235 -1496
Dl 269 -1559
Dl 399 -1666
Dl 517 -1756
Dl 565 -1808
Dl 552 -1831
Dl 457 -1806
Dl 266 -1699
Dl 248 -1688
Dl 55 -1585
Dl -114 -1516
Dl -250 -1485
Dl -476 -1470
Dl -476 -1382
Dl -391 -1393
Dl -338 -1384
Dl -283 -1349
Dl -309 -1323
Dl -400 -1304
Dl -400 -1160
Dl -275 -1128
Dl -171 -1130
Dl -63 -1156
Dl 68 -1224
Dl 266 -1351
Dl 418 -1450
Dl 539 -1507
Dl 623 -1484
Dl 704 -1367
Dl 815 -1145
Dl 903 -954
Dl 1000 -716
Dl 1059 -536
Dl 1100 -405
Dl 1224 -170
Dl 1308 -54
Dl 1383 67
Dl 1438 197
Dl 1522 510
Dl 1576 870
Dl 1593 1222
Dl 1567 1512
Dl 1544 1668
Dl 1563 1731
Dl 1584 1788
Dl 1572 1958
Dl 1560 2157
Dl 1608 2331
Dl 1733 2423
Dl 1883 2459
Dl 2126 2431
Dl 2335 2277
Dl 2391 2209
Dl 2531 1991
Dl 2657 1745
Dl 2733 1537
Dl 2762 1168
Dl 2694 707
Dl 2526 166
Dl 2414 -95
Dl 2261 -352
Dl 2042 -630
Dl 2039 -634
Dl 1815 -939
Dl 1598 -1302
Dl 1431 -1655
Dl 1399 -1737
Dl 1356 -1884
Dl 1337 -2043
Dl 1332 -2275
Dl 1326 -2501
Dl 1263 -3000
Dl 1132 -3390
Dl 1008 -3600
Dl 817 -3793
Dl 541 -3955
Dl 354 -4037
Dl 194 -4077
Dl -19 -4093
Dl -97 -4097
Dl -266 -4095
Dl -392 -4069
Dl -541 -4006
Dl -702 -3920
Dl -910 -3735
Dl -1069 -3466
Dl -1169 -3249
Dl -1150 -1249
Dl -1325 -996
Dl -1358 -949
Dl -1522 -731
Dl -1678 -538
Dl -1734 -472
Dl -1828 -347
Dl -1902 -210
Dl -1976 -24
Dl -2068 250
Dl -2214 634
Dl -2433 1050
Dl -2487 1173
Dl -2523 1386
Dl -2501 1563
Dl -2490 1592
Dl -2485 1678
Dl -2546 1795
Dl -2570 1831
Dl -2659 1933
Dl -2776 1984
Dl -2975 2008
Dl -2990 2009
Dl -3154 2033
Dl -3249 2066
Dl -3281 2100
Dl -3337 2285
Dl -3323 2581
Dl -3306 2722
Dl -3308 2881
Dl -3348 3059
Dl -3393 3229
Dl -3424 3383
Dl -3419 3473
Dl -3382 3534
Dl -3358 3556
Dl -3265 3600
Dl -3252 3601
Dl -3135 3627
Dl -2962 3678
Dl -2944 3684
Dl -2724 3749
Dl -2533 3800
Dl -2391 3837
Dl -2145 3908
Dl -1912 3984
Dl -1750 4046
Dl -1700 4068
Dl -1600 4109
Dl -1550 4119
Dl -1550 3783
Dl -1727 3764
Dl -1907 3729
Dl -2022 3690
Dl -2031 3686
Dl -2142 3655
Dl -2332 3617
Dl -2555 3579
Dl -2766 3550
Dl -2913 3526
Dl -3105 3479
Dl -3206 3434
Dl -3287 3323
Dl -3247 3161
Dl -3225 3111
Dl -3209 3031
Dl -3208 2908
Dl -3222 2711
Dl -3252 2413
Dl -3262 2297
Dl -3249 2202
Dl -3195 2135
Dl -3168 2112
Dl -3081 2074
Dl -2933 2076
Dl -2752 2073
Dl -2597 1997
Dl -2485 1818
Dl -2462 1769
Dl -2348 1613
Dl -2206 1566
Dl -2169 1579
Dl -2053 1669
Dl -1908 1817
Dl -1763 1989
Dl -1651 2152
Dl -1584 2266
Dl -1463 2467
Dl -1327 2690
Dl -1219 2874
Dl -1100 3138
Dl -1071 3345
Dl -1130 3521
Dl -1276 3693
Dl -1322 3727
Dl -1470 3782
Dl -1550 3783
Dl -1550 4119
Dl -1512 4126
Dl -1332 4126
Dl -1180 4098
Dl -1108 4061
Dl -976 3965
Dl -901 3905
Dl -829 3866
Dl -823 3866
Dl -748 3819
Dl -729 3806
Dl -585 3769
Dl -337 3745
Dl -7 3736
Dl 382 3744
Dl 646 3756
Dl 865 3773
Dl 997 3797
Dl 1066 3832
Dl 1100 3883
Dl 1140 3955
Dl 1313 4075
Dl 1586 4128
DP 0 0 0 0 5 1 21
Dl 3050 2566
Dl 3066 2550
Dl 3050 2533
Dl 3033 2550
Dl 3050 2566
DP 0 0 0 0 7 1 21
Dl 2811 2149
Dl 2823 2141
Dl 2826 2124
Dl 2822 2007
Dl 2813 2000
Dl 2808 2083
Dl 2811 2149
DP 0 0 0 0 14 1 21
Dl 347 -2071
Dl 464 -2154
Dl 497 -2207
Dl 530 -2389
Dl 451 -2551
Dl 403 -2590
Dl 303 -2633
Dl 232 -2607
Dl 139 -2493
Dl 100 -2337
Dl 100 -2318
Dl 125 -2186
Dl 216 -2106
Dl 347 -2071
DP 0 0 0 0 7 1 21
Dl -81 -2117
Dl -33 -2168
Dl -35 -2175
Dl -100 -2199
Dl -164 -2171
Dl -125 -2123
Dl -81 -2117
$EndMODULE LOGO
$EndLIBRARY

View File

@ -1,101 +1,100 @@
EESchema-LIBRARY Version 18/6/2008-08:34:30
#
#
# +12V
#
DEF +12V #PWR 0 0 N Y 1 F N
F0 "#PWR" 0 200 40 H I C C
F1 "+12V" 0 150 40 H V C C
DRAW
P 2 0 1 0 0 60 0 0 N
C 0 80 20 0 1 0 N
X +12V 1 0 0 0 R 40 40 0 0 W N
ENDDRAW
ENDDEF
#
# 0
#
DEF 0 #GND 0 0 Y Y 1 F N
F0 "#GND" 0 -100 40 H I C C
F1 "0" 0 -70 40 H V C C
DRAW
P 4 0 1 0 -50 0 0 -50 50 0 -50 0 N
X 0 1 0 0 0 R 40 40 1 1 W N
ENDDRAW
ENDDEF
#
# CAP
#
DEF CAP C 0 10 Y Y 1 F N
F0 "C" 100 150 50 V V C C
F1 "CAP" 100 -150 50 V V C C
ALIAS C
DRAW
P 2 0 1 0 -150 -50 150 -50 N
P 2 0 1 0 -150 50 150 50 N
X ~ 1 0 250 200 D 40 40 1 1 P
X ~ 2 0 -250 200 U 40 40 1 1 P
ENDDRAW
ENDDEF
#
# INDUCTOR
#
DEF INDUCTOR L 0 0 N Y 0 F N
F0 "L" 0 100 70 H V C C
F1 "INDUCTOR" 0 -100 70 H V C C
DRAW
A -300 0 100 0 1800 0 0 0 N -200 0 -400 0
A -100 0 100 0 1800 0 0 0 N 0 0 -200 0
A 100 0 100 0 1800 0 0 0 N 200 0 0 0
A 300 0 100 0 1800 0 0 0 N 400 0 200 0
X 2 2 700 0 300 L 70 70 1 1 I
X 1 1 -700 0 300 R 70 70 1 1 I
ENDDRAW
ENDDEF
#
# QNPN
#
DEF QNPN Q 0 0 Y Y 0 F N
F0 "Q" -100 300 50 H V C C
F1 "QNPN" -100 200 50 H V C C
DRAW
P 4 0 0 0 150 -150 150 -50 50 -150 150 -150 F
P 4 0 1 0 -100 -150 0 -150 0 -150 0 -150 N
P 2 0 0 0 0 0 150 -150 N
P 2 0 1 0 0 0 150 150 N
P 2 0 1 0 0 -150 0 150 N
X C 1 150 350 200 D 40 40 1 1 P
X B 2 -300 0 300 R 40 40 1 1 I
X Substrat 4 -100 -350 200 U 50 20 1 1 I
X E 3 150 -350 200 U 40 40 1 1 P
ENDDRAW
ENDDEF
#
# R
#
DEF R R 0 0 N Y 0 F N
F0 "R" 80 0 50 V V C C
F1 "R" 0 0 50 V V C C
DRAW
S -40 150 40 -150 0 1 0 N
X ~ 1 0 250 100 D 60 60 1 1 P
X ~ 2 0 -250 100 U 60 60 1 1 P
ENDDRAW
ENDDEF
#
# VSOURCE
#
DEF VSOURCE V 0 40 Y Y 1 F N
F0 "V" 0 -100 60 H V C C
F1 "VSOURCE" 0 100 60 H V C C
DRAW
P 3 0 1 0 -300 150 -250 250 -200 150 F
P 2 0 1 0 -250 -250 -250 150 F
C 0 0 400 0 1 0 N
T 0 -320 -10 100 0 0 1 V
X E1 1 0 700 300 D 60 60 1 1 I
X E2 2 0 -700 300 U 60 60 1 1 I
ENDDRAW
ENDDEF
#
#EndLibrary
EESchema-LIBRARY Version 2.3 Date: 14/07/2010 15:02:10
#
# +12V
#
DEF +12V #PWR 0 0 N Y 1 F N
F0 "#PWR" 0 200 40 H I C CNN
F1 "+12V" 0 150 40 H V C CNN
DRAW
X +12V 1 0 0 0 R 40 40 0 0 W N
C 0 80 20 0 1 0 N
P 2 0 1 0 0 60 0 0 N
ENDDRAW
ENDDEF
#
# 0
#
DEF 0 #GND 0 0 Y Y 1 F N
F0 "#GND" 0 -100 40 H I C CNN
F1 "0" 0 -70 40 H V C CNN
DRAW
P 4 0 1 0 -50 0 0 -50 50 0 -50 0 N
X 0 1 0 0 0 R 40 40 1 1 W N
ENDDRAW
ENDDEF
#
# CAP
#
DEF CAP C 0 10 Y Y 1 F N
F0 "C" 100 150 50 V V C CNN
F1 "CAP" 100 -150 50 V V C CNN
ALIAS C
DRAW
P 2 0 1 0 -150 -50 150 -50 N
P 2 0 1 0 -150 50 150 50 N
X ~ 1 0 250 200 D 40 40 1 1 P
X ~ 2 0 -250 200 U 40 40 1 1 P
ENDDRAW
ENDDEF
#
# INDUCTOR
#
DEF INDUCTOR L 0 0 N Y 1 F N
F0 "L" 0 100 70 H V C CNN
F1 "INDUCTOR" 0 -100 70 H V C CNN
DRAW
A -300 0 100 0 1800 0 0 0 N -200 0 -400 0
A -100 0 100 0 1800 0 0 0 N 0 0 -200 0
A 100 0 100 0 1800 0 0 0 N 200 0 0 0
A 300 0 100 0 1800 0 0 0 N 400 0 200 0
X 1 1 -700 0 300 R 70 70 1 1 I
X 2 2 700 0 300 L 70 70 1 1 I
ENDDRAW
ENDDEF
#
# QNPN
#
DEF QNPN Q 0 0 Y Y 1 F N
F0 "Q" -100 300 50 H V C CNN
F1 "QNPN" -100 200 50 H V C CNN
DRAW
P 2 0 0 0 0 0 150 -150 N
P 4 0 0 0 150 -150 150 -50 50 -150 150 -150 F
P 2 0 1 0 0 -150 0 150 N
P 2 0 1 0 0 0 150 150 N
P 4 0 1 0 -100 -150 0 -150 0 -150 0 -150 N
X C 1 150 350 200 D 40 40 1 1 P
X B 2 -300 0 300 R 40 40 1 1 I
X E 3 150 -350 200 U 40 40 1 1 P
X Substrat 4 -100 -350 200 U 50 20 1 1 I
ENDDRAW
ENDDEF
#
# R
#
DEF R R 0 0 N Y 1 F N
F0 "R" 80 0 50 V V C CNN
F1 "R" 0 0 50 V V C CNN
DRAW
S -40 150 40 -150 0 1 0 N
X ~ 1 0 250 100 D 60 60 1 1 P
X ~ 2 0 -250 100 U 60 60 1 1 P
ENDDRAW
ENDDEF
#
# VSOURCE
#
DEF VSOURCE V 0 40 Y Y 1 F N
F0 "V" 0 -100 60 H V C CNN
F1 "VSOURCE" 0 100 60 H V C CNN
DRAW
C 0 0 400 0 1 0 N
T 0 -320 -10 100 0 0 1 V Normal 1 C C
P 2 0 1 0 -250 -250 -250 150 F
P 3 0 1 0 -300 150 -250 250 -200 150 F
X E1 1 0 700 300 D 60 60 1 1 I
X E2 2 0 -700 300 U 60 60 1 1 I
ENDDRAW
ENDDEF
#
#End Library

View File

@ -1,31 +1,30 @@
* EESchema Netlist Version 1.1 (Spice format) creation date: 18/6/2008-08:38:03
.model Q2N2222 npn (bf=200)
.AC 10 1Meg *1.2
.DC V1 10 12 0.5
R12 /VOUT N-000003 22K
R11 +12V N-000003 100
L1 N-000003 /VOUT 100mH
R10 N-000005 N-000004 220
C3 N-000005 0 10uF
C2 N-000009 0 1nF
R8 N-000004 0 2.2K
Q3 /VOUT N-000009 N-000004 N-000004 Q2N2222
V2 N-000008 0 AC 0.1
C1 /VIN N-000008 1UF
V1 +12V 0 DC 12V
R2 /VIN 0 10K
R6 +12V /VIN 22K
R5 +12V N-000012 22K
R1 N-000012 0 10K
R7 N-000007 0 470
R4 +12V N-000009 1K
R3 +12V N-000010 1K
Q2 N-000009 N-000012 N-000007 N-000007 Q2N2222
Q1 N-000010 /VIN N-000007 N-000007 Q2N2222
.print ac v(vout)
.plot ac v(nodes) (-1,5)
.end
* EESchema Netlist Version 1.1 (Spice format) creation date: 14/07/2010 20:09:58
R12 /VOUT N-000010 22K
R11 +12V N-000010 100
L1 N-000010 /VOUT 100mH
R10 N-000009 N-000004 220
C3 N-000009 0 10uF
C2 N-000008 0 1nF
R8 N-000004 0 2.2K
Q3 /VOUT N-000008 N-000004 N-000004 Q2N2222
V2 N-000003 0 AC 0.1
C1 /VIN N-000003 1UF
V1 +12V 0 DC 12V
R2 /VIN 0 10K
R6 +12V /VIN 22K
R5 +12V N-000006 22K
R1 N-000006 0 10K
R7 N-000005 0 470
R4 +12V N-000008 1K
R3 +12V N-000007 1K
Q2 N-000008 N-000006 N-000005 N-000005 Q2N2222
Q1 N-000007 /VIN N-000005 N-000005 Q2N2222
.model Q2N2222 npn (bf=200)
.print tran v(nodes)
.print dc v(nodes)
.tran 10 10000 10 > pspice.dat
.end

View File

@ -1,391 +1,392 @@
EESchema Schematic File Version 2
LIBS:pspice,.\pspice.cache
EELAYER 20 0
EELAYER END
$Descr A4 11700 8267
Sheet 1 1
Title ""
Date "22 feb 2008"
Rev ""
Comp ""
Comment1 ""
Comment2 ""
Comment3 ""
Comment4 ""
$EndDescr
Kmarq B 8400 3300 "Warning Pin power_in non pilotée (Net 6)" F=1
Kmarq B 7700 1000 "Warning Pin power_in non pilotée (Net 2)" F=1
Wire Wire Line
5300 2800 4400 2800
Text Label 4500 2800 0 60 ~
VIN
Text Label 8350 2100 0 60 ~
VOUT
Connection ~ 9200 1800
Wire Wire Line
8700 1800 9200 1800
Wire Wire Line
8200 1800 7800 1800
Wire Wire Line
7800 1800 7800 1500
$Comp
L R R12
U 1 1 3E9D53DA
P 8450 1800
F 0 "R12" V 8530 1800 50 0000 C C
F 1 "22K" V 8450 1800 50 0000 C C
1 8450 1800
0 1 1 0
$EndComp
$Comp
L R R11
U 1 1 3E9D4D47
P 7700 1250
F 0 "R11" V 7780 1250 50 0000 C C
F 1 "100" V 7700 1250 50 0000 C C
1 7700 1250
1 0 0 -1
$EndComp
Wire Wire Line
7800 1500 7700 1500
Wire Wire Line
7700 2100 9200 2100
Wire Wire Line
9200 2100 9200 1500
$Comp
L INDUCTOR L1
U 1 1 3E9D4A5D
P 8500 1500
F 0 "L1" H 8500 1600 70 0000 C C
F 1 "100mH" H 8500 1400 70 0000 C C
1 8500 1500
1 0 0 1
$EndComp
Text Notes 3500 1200 0 60 ~
+gnucap .plot ac v(nodes) (-1,5)
Connection ~ 7700 2800
Wire Wire Line
8250 2800 8400 2800
Wire Wire Line
7750 2800 7450 2800
$Comp
L R R10
U 1 1 3E9D3DED
P 8000 2800
F 0 "R10" V 8080 2800 50 0000 C C
F 1 "220" V 8000 2800 50 0000 C C
1 8000 2800
0 1 1 0
$EndComp
$Comp
L 0 #GND8
U 1 1 3E9D3DE2
P 8400 3300
F 0 "#GND8" H 8400 3200 40 0001 C C
F 1 "0" H 8400 3230 40 0000 C C
1 8400 3300
1 0 0 -1
$EndComp
$Comp
L CAP C3
U 1 1 3E9D3DD3
P 8400 3050
F 0 "C3" V 8500 3200 50 0000 C C
F 1 "10uF" V 8500 2900 50 0000 C C
1 8400 3050
1 0 0 -1
$EndComp
Text Notes 3500 1000 0 60 ~
-PSPICE .DC V1 10 12 0.5
Connection ~ 7050 2450
Wire Wire Line
7050 2600 7050 2450
$Comp
L 0 #GND7
U 1 1 3E9D1EFF
P 7050 3100
F 0 "#GND7" H 7050 3000 40 0001 C C
F 1 "0" H 7050 3030 40 0000 C C
1 7050 3100
1 0 0 -1
$EndComp
$Comp
L C C2
U 1 1 3E9D1EF8
P 7050 2850
F 0 "C2" V 7150 3000 50 0000 C C
F 1 "1nF" V 7150 2700 50 0000 C C
1 7050 2850
1 0 0 -1
$EndComp
Connection ~ 5750 3200
Connection ~ 6100 3200
Wire Wire Line
6350 3150 6350 3200
Wire Wire Line
6350 3200 5500 3200
Wire Wire Line
5750 3200 5750 3150
Wire Wire Line
5500 3200 5500 3150
Wire Wire Line
3900 2800 3850 2800
Wire Wire Line
7700 2950 7700 2800
$Comp
L 0 #GND6
U 1 1 32E8B852
P 7700 3450
F 0 "#GND6" H 7700 3350 40 0001 C C
F 1 "0" H 7700 3380 40 0000 C C
1 7700 3450
1 0 0 -1
$EndComp
$Comp
L +12V #+12V6
U 1 1 32E8B84A
P 7700 1000
F 0 "#+12V6" H 7700 1200 40 0001 C C
F 1 "+12V" H 7700 1150 40 0000 C C
1 7700 1000
1 0 0 -1
$EndComp
$Comp
L R R8
U 1 1 32E8B80E
P 7700 3200
F 0 "R8" V 7780 3200 50 0000 C C
F 1 "2.2K" V 7700 3200 50 0000 C C
1 7700 3200
1 0 0 -1
$EndComp
$Comp
L QNPN Q3
U 1 1 32E8B7FC
P 7550 2450
F 0 "Q3" H 7450 2750 50 0000 C C
F 1 "Q2N2222" H 7450 2650 50 0000 C C
1 7550 2450
1 0 0 -1
$EndComp
Wire Wire Line
7250 2450 6100 2450
Text Notes 3500 800 0 60 ~
-PSPICE .model Q2N2222 npn (bf=200)
$Comp
L 0 #GND5
U 1 1 32CFC469
P 3850 4200
F 0 "#GND5" H 3850 4100 40 0001 C C
F 1 "0" H 3850 4130 40 0000 C C
1 3850 4200
1 0 0 -1
$EndComp
$Comp
L VSOURCE V2
U 1 1 32CFC454
P 3850 3500
F 0 "V2" H 3850 3400 60 0000 C C
F 1 "AC 0.1" H 3850 3600 60 0000 C C
1 3850 3500
1 0 0 -1
$EndComp
$Comp
L C C1
U 1 1 32CFC413
P 4150 2800
F 0 "C1" V 4250 2950 50 0000 C C
F 1 "1UF" V 4250 2650 50 0000 C C
1 4150 2800
0 1 1 0
$EndComp
Text Notes 3500 900 0 60 ~
-gnucap .AC 10 1Meg *1.2
Text Notes 3500 1100 0 60 ~
+PSPICE .print ac v(vout)
$Comp
L +12V #+12V5
U 1 1 32CFC34D
P 2850 1500
F 0 "#+12V5" H 2850 1700 40 0001 C C
F 1 "+12V" H 2850 1650 40 0000 C C
1 2850 1500
1 0 0 -1
$EndComp
$Comp
L 0 #GND4
U 1 1 32CFC344
P 2850 2900
F 0 "#GND4" H 2850 2800 40 0001 C C
F 1 "0" H 2850 2830 40 0000 C C
1 2850 2900
1 0 0 -1
$EndComp
$Comp
L VSOURCE V1
U 1 1 32CFC337
P 2850 2200
F 0 "V1" H 2850 2100 60 0000 C C
F 1 "DC 12V" H 2850 2300 60 0000 C C
1 2850 2200
1 0 0 -1
$EndComp
Wire Wire Line
6100 2450 6100 2300
Wire Wire Line
5750 2450 5750 2300
$Comp
L +12V #+12V4
U 1 1 32CFC303
P 6700 1800
F 0 "#+12V4" H 6700 2000 40 0001 C C
F 1 "+12V" H 6700 1950 40 0000 C C
1 6700 1800
1 0 0 -1
$EndComp
$Comp
L +12V #+12V3
U 1 1 32CFC2FF
P 6100 1800
F 0 "#+12V3" H 6100 2000 40 0001 C C
F 1 "+12V" H 6100 1950 40 0000 C C
1 6100 1800
1 0 0 -1
$EndComp
$Comp
L +12V #+12V2
U 1 1 32CFC2FD
P 5750 1800
F 0 "#+12V2" H 5750 2000 40 0001 C C
F 1 "+12V" H 5750 1950 40 0000 C C
1 5750 1800
1 0 0 -1
$EndComp
$Comp
L +12V #+12V1
U 1 1 32CFC2F7
P 5100 1800
F 0 "#+12V1" H 5100 2000 40 0001 C C
F 1 "+12V" H 5100 1950 40 0000 C C
1 5100 1800
1 0 0 -1
$EndComp
Connection ~ 5100 2800
Connection ~ 6700 2800
Wire Wire Line
6550 2800 6700 2800
Wire Wire Line
6700 2300 6700 3300
Wire Wire Line
6100 3300 6100 3150
Wire Wire Line
5100 2300 5100 3300
$Comp
L 0 #GND3
U 1 1 32CFC2B8
P 6700 3800
F 0 "#GND3" H 6700 3700 40 0001 C C
F 1 "0" H 6700 3730 40 0000 C C
1 6700 3800
1 0 0 -1
$EndComp
$Comp
L 0 #GND2
U 1 1 32CFC2B5
P 5100 3800
F 0 "#GND2" H 5100 3700 40 0001 C C
F 1 "0" H 5100 3730 40 0000 C C
1 5100 3800
1 0 0 -1
$EndComp
$Comp
L R R2
U 1 1 32CFC293
P 5100 3550
F 0 "R2" V 5180 3550 50 0000 C C
F 1 "10K" V 5100 3550 50 0000 C C
1 5100 3550
1 0 0 -1
$EndComp
$Comp
L R R6
U 1 1 32CFC288
P 5100 2050
F 0 "R6" V 5180 2050 50 0000 C C
F 1 "22K" V 5100 2050 50 0000 C C
1 5100 2050
1 0 0 -1
$EndComp
$Comp
L R R5
U 1 1 32CFC27F
P 6700 2050
F 0 "R5" V 6780 2050 50 0000 C C
F 1 "22K" V 6700 2050 50 0000 C C
1 6700 2050
1 0 0 -1
$EndComp
$Comp
L R R1
U 1 1 32CFC277
P 6700 3550
F 0 "R1" V 6780 3550 50 0000 C C
F 1 "10K" V 6700 3550 50 0000 C C
1 6700 3550
1 0 0 -1
$EndComp
$Comp
L 0 #GND1
U 1 1 32CFC26C
P 6100 3800
F 0 "#GND1" H 6100 3700 40 0001 C C
F 1 "0" H 6100 3730 40 0000 C C
1 6100 3800
1 0 0 -1
$EndComp
$Comp
L R R7
U 1 1 32CFC25A
P 6100 3550
F 0 "R7" V 6180 3550 50 0000 C C
F 1 "470" V 6100 3550 50 0000 C C
1 6100 3550
1 0 0 -1
$EndComp
$Comp
L R R4
U 1 1 32CFC254
P 6100 2050
F 0 "R4" V 6180 2050 50 0000 C C
F 1 "1K" V 6100 2050 50 0000 C C
1 6100 2050
1 0 0 -1
$EndComp
$Comp
L R R3
U 1 1 32CFC24C
P 5750 2050
F 0 "R3" V 5830 2050 50 0000 C C
F 1 "1K" V 5750 2050 50 0000 C C
1 5750 2050
1 0 0 -1
$EndComp
$Comp
L QNPN Q2
U 1 1 32CFC230
P 6250 2800
F 0 "Q2" H 6150 3100 50 0000 C C
F 1 "Q2N2222" H 6150 3000 50 0000 C C
1 6250 2800
-1 0 0 -1
$EndComp
$Comp
L QNPN Q1
U 1 1 32CFC227
P 5600 2800
F 0 "Q1" H 5500 3100 50 0000 C C
F 1 "Q2N2222" H 5500 3000 50 0000 C C
1 5600 2800
1 0 0 -1
$EndComp
$EndSCHEMATC
EESchema Schematic File Version 2 date 14/07/2010 20:10:02
LIBS:pspice
LIBS:pspice-cache
EELAYER 24 0
EELAYER END
$Descr A4 11700 8267
Sheet 1 1
Title ""
Date "14 jul 2010"
Rev ""
Comp ""
Comment1 ""
Comment2 ""
Comment3 ""
Comment4 ""
$EndDescr
Text Label 4550 2800 0 60 ~ 0
VIN
Text Label 8650 2100 0 60 ~ 0
VOUT
Wire Notes Line
4050 6600 4050 5700
Wire Notes Line
4050 6600 6850 6600
Wire Notes Line
6850 6600 6850 5700
Wire Notes Line
6850 5700 4050 5700
Wire Wire Line
5300 2800 4400 2800
Connection ~ 9200 1800
Wire Wire Line
8700 1800 9200 1800
Wire Wire Line
8200 1800 7800 1800
Wire Wire Line
7800 1800 7800 1500
Wire Wire Line
7800 1500 7700 1500
Wire Wire Line
9200 1500 9200 2100
Connection ~ 7700 2800
Wire Wire Line
8250 2800 8400 2800
Wire Wire Line
7750 2800 7450 2800
Connection ~ 7050 2450
Wire Wire Line
7050 2600 7050 2450
Connection ~ 5750 3200
Connection ~ 6100 3200
Wire Wire Line
6350 3150 6350 3200
Wire Wire Line
6350 3200 5500 3200
Wire Wire Line
5750 3150 5750 3200
Wire Wire Line
5500 3200 5500 3150
Wire Wire Line
3900 2800 3850 2800
Wire Wire Line
7700 2950 7700 2800
Wire Wire Line
7250 2450 6100 2450
Wire Wire Line
6100 2450 6100 2300
Wire Wire Line
5750 2450 5750 2300
Connection ~ 5100 2800
Connection ~ 6700 2800
Wire Wire Line
6550 2800 6700 2800
Wire Wire Line
6700 2300 6700 3300
Wire Wire Line
6100 3300 6100 3150
Wire Wire Line
5100 2300 5100 3300
Wire Wire Line
9200 2100 7700 2100
Text Notes 4200 5900 0 60 ~ 0
+gnucap .model Q2N2222 npn (bf=200)\n.print tran v(nodes)\n.print dc v(nodes)\n.tran 10 10000 10 > pspice.dat\n
Text Notes 4050 5700 0 60 ~ 0
Pspice directives using one multiline text:
$Comp
L R R12
U 1 1 3E9D53DA
P 8450 1800
F 0 "R12" V 8530 1800 50 0000 C CNN
F 1 "22K" V 8450 1800 50 0000 C CNN
1 8450 1800
0 1 1 0
$EndComp
$Comp
L R R11
U 1 1 3E9D4D47
P 7700 1250
F 0 "R11" V 7780 1250 50 0000 C CNN
F 1 "100" V 7700 1250 50 0000 C CNN
1 7700 1250
1 0 0 -1
$EndComp
$Comp
L INDUCTOR L1
U 1 1 3E9D4A5D
P 8500 1500
F 0 "L1" H 8500 1600 70 0000 C CNN
F 1 "100mH" H 8500 1350 70 0000 C CNN
1 8500 1500
1 0 0 1
$EndComp
$Comp
L R R10
U 1 1 3E9D3DED
P 8000 2800
F 0 "R10" V 8080 2800 50 0000 C CNN
F 1 "220" V 8000 2800 50 0000 C CNN
1 8000 2800
0 1 1 0
$EndComp
$Comp
L 0 #GND8
U 1 1 3E9D3DE2
P 8400 3300
F 0 "#GND8" H 8400 3200 40 0001 C CNN
F 1 "0" H 8400 3230 40 0000 C CNN
1 8400 3300
1 0 0 -1
$EndComp
$Comp
L CAP C3
U 1 1 3E9D3DD3
P 8400 3050
F 0 "C3" V 8500 3200 50 0000 C CNN
F 1 "10uF" V 8500 2900 50 0000 C CNN
1 8400 3050
1 0 0 -1
$EndComp
$Comp
L 0 #GND7
U 1 1 3E9D1EFF
P 7050 3100
F 0 "#GND7" H 7050 3000 40 0001 C CNN
F 1 "0" H 7050 3030 40 0000 C CNN
1 7050 3100
1 0 0 -1
$EndComp
$Comp
L C C2
U 1 1 3E9D1EF8
P 7050 2850
F 0 "C2" V 7150 3000 50 0000 C CNN
F 1 "1nF" V 7150 2700 50 0000 C CNN
1 7050 2850
1 0 0 -1
$EndComp
$Comp
L 0 #GND6
U 1 1 32E8B852
P 7700 3450
F 0 "#GND6" H 7700 3350 40 0001 C CNN
F 1 "0" H 7700 3380 40 0000 C CNN
1 7700 3450
1 0 0 -1
$EndComp
$Comp
L +12V #+12V6
U 1 1 32E8B84A
P 7700 1000
F 0 "#+12V6" H 7700 1200 40 0001 C CNN
F 1 "+12V" H 7700 1150 40 0000 C CNN
1 7700 1000
1 0 0 -1
$EndComp
$Comp
L R R8
U 1 1 32E8B80E
P 7700 3200
F 0 "R8" V 7780 3200 50 0000 C CNN
F 1 "2.2K" V 7700 3200 50 0000 C CNN
1 7700 3200
1 0 0 -1
$EndComp
$Comp
L QNPN Q3
U 1 1 32E8B7FC
P 7550 2450
F 0 "Q3" H 7450 2750 50 0000 C CNN
F 1 "Q2N2222" H 7450 2650 50 0000 C CNN
1 7550 2450
1 0 0 -1
$EndComp
$Comp
L 0 #GND5
U 1 1 32CFC469
P 3850 4200
F 0 "#GND5" H 3850 4100 40 0001 C CNN
F 1 "0" H 3850 4130 40 0000 C CNN
1 3850 4200
1 0 0 -1
$EndComp
$Comp
L VSOURCE V2
U 1 1 32CFC454
P 3850 3500
F 0 "V2" H 3850 3400 60 0000 C CNN
F 1 "AC 0.1" H 3850 3600 60 0000 C CNN
1 3850 3500
1 0 0 -1
$EndComp
$Comp
L C C1
U 1 1 32CFC413
P 4150 2800
F 0 "C1" V 4250 2950 50 0000 C CNN
F 1 "1UF" V 4250 2650 50 0000 C CNN
1 4150 2800
0 1 1 0
$EndComp
$Comp
L +12V #+12V5
U 1 1 32CFC34D
P 2850 1500
F 0 "#+12V5" H 2850 1700 40 0001 C CNN
F 1 "+12V" H 2850 1650 40 0000 C CNN
1 2850 1500
1 0 0 -1
$EndComp
$Comp
L 0 #GND4
U 1 1 32CFC344
P 2850 2900
F 0 "#GND4" H 2850 2800 40 0001 C CNN
F 1 "0" H 2850 2830 40 0000 C CNN
1 2850 2900
1 0 0 -1
$EndComp
$Comp
L VSOURCE V1
U 1 1 32CFC337
P 2850 2200
F 0 "V1" H 2850 2100 60 0000 C CNN
F 1 "DC 12V" H 2850 2300 60 0000 C CNN
1 2850 2200
1 0 0 -1
$EndComp
$Comp
L +12V #+12V4
U 1 1 32CFC303
P 6700 1800
F 0 "#+12V4" H 6700 2000 40 0001 C CNN
F 1 "+12V" H 6700 1950 40 0000 C CNN
1 6700 1800
1 0 0 -1
$EndComp
$Comp
L +12V #+12V3
U 1 1 32CFC2FF
P 6100 1800
F 0 "#+12V3" H 6100 2000 40 0001 C CNN
F 1 "+12V" H 6100 1950 40 0000 C CNN
1 6100 1800
1 0 0 -1
$EndComp
$Comp
L +12V #+12V2
U 1 1 32CFC2FD
P 5750 1800
F 0 "#+12V2" H 5750 2000 40 0001 C CNN
F 1 "+12V" H 5750 1950 40 0000 C CNN
1 5750 1800
1 0 0 -1
$EndComp
$Comp
L +12V #+12V1
U 1 1 32CFC2F7
P 5100 1800
F 0 "#+12V1" H 5100 2000 40 0001 C CNN
F 1 "+12V" H 5100 1950 40 0000 C CNN
1 5100 1800
1 0 0 -1
$EndComp
$Comp
L 0 #GND3
U 1 1 32CFC2B8
P 6700 3800
F 0 "#GND3" H 6700 3700 40 0001 C CNN
F 1 "0" H 6700 3730 40 0000 C CNN
1 6700 3800
1 0 0 -1
$EndComp
$Comp
L 0 #GND2
U 1 1 32CFC2B5
P 5100 3800
F 0 "#GND2" H 5100 3700 40 0001 C CNN
F 1 "0" H 5100 3730 40 0000 C CNN
1 5100 3800
1 0 0 -1
$EndComp
$Comp
L R R2
U 1 1 32CFC293
P 5100 3550
F 0 "R2" V 5180 3550 50 0000 C CNN
F 1 "10K" V 5100 3550 50 0000 C CNN
1 5100 3550
1 0 0 -1
$EndComp
$Comp
L R R6
U 1 1 32CFC288
P 5100 2050
F 0 "R6" V 5180 2050 50 0000 C CNN
F 1 "22K" V 5100 2050 50 0000 C CNN
1 5100 2050
1 0 0 -1
$EndComp
$Comp
L R R5
U 1 1 32CFC27F
P 6700 2050
F 0 "R5" V 6780 2050 50 0000 C CNN
F 1 "22K" V 6700 2050 50 0000 C CNN
1 6700 2050
1 0 0 -1
$EndComp
$Comp
L R R1
U 1 1 32CFC277
P 6700 3550
F 0 "R1" V 6780 3550 50 0000 C CNN
F 1 "10K" V 6700 3550 50 0000 C CNN
1 6700 3550
1 0 0 -1
$EndComp
$Comp
L 0 #GND1
U 1 1 32CFC26C
P 6100 3800
F 0 "#GND1" H 6100 3700 40 0001 C CNN
F 1 "0" H 6100 3730 40 0000 C CNN
1 6100 3800
1 0 0 -1
$EndComp
$Comp
L R R7
U 1 1 32CFC25A
P 6100 3550
F 0 "R7" V 6180 3550 50 0000 C CNN
F 1 "470" V 6100 3550 50 0000 C CNN
1 6100 3550
1 0 0 -1
$EndComp
$Comp
L R R4
U 1 1 32CFC254
P 6100 2050
F 0 "R4" V 6180 2050 50 0000 C CNN
F 1 "1K" V 6100 2050 50 0000 C CNN
1 6100 2050
1 0 0 -1
$EndComp
$Comp
L R R3
U 1 1 32CFC24C
P 5750 2050
F 0 "R3" V 5830 2050 50 0000 C CNN
F 1 "1K" V 5750 2050 50 0000 C CNN
1 5750 2050
1 0 0 -1
$EndComp
$Comp
L QNPN Q2
U 1 1 32CFC230
P 6250 2800
F 0 "Q2" H 6150 3100 50 0000 C CNN
F 1 "Q2N2222" H 6150 3000 50 0000 C CNN
1 6250 2800
-1 0 0 -1
$EndComp
$Comp
L QNPN Q1
U 1 1 32CFC227
P 5600 2800
F 0 "Q1" H 5500 3100 50 0000 C CNN
F 1 "Q2N2222" H 5500 3000 50 0000 C CNN
1 5600 2800
1 0 0 -1
$EndComp
$EndSCHEMATC

View File

@ -1,111 +1,110 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Apr 16 2008)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#include "dialog_edit_label_base.h"
///////////////////////////////////////////////////////////////////////////
DialogLabelEditor_Base::DialogLabelEditor_Base( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
this->SetSizeHints( wxDefaultSize, wxDefaultSize );
wxBoxSizer* bMainSizer;
bMainSizer = new wxBoxSizer( wxVERTICAL );
m_textControlSizer = new wxFlexGridSizer( 2, 2, 3, 3 );
m_textControlSizer->AddGrowableCol( 1 );
m_textControlSizer->AddGrowableRow( 0 );
m_textControlSizer->SetFlexibleDirection( wxBOTH );
m_textControlSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
m_staticText1 = new wxStaticText( this, wxID_ANY, _("&Text:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText1->Wrap( -1 );
m_textControlSizer->Add( m_staticText1, 0, wxRIGHT, 3 );
wxBoxSizer* bSizeText;
bSizeText = new wxBoxSizer( wxVERTICAL );
m_textLabelSingleLine = new wxTextCtrl( this, wxID_VALUESINGLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
m_textLabelSingleLine->SetToolTip( _("Enter the text to be used within the schematic") );
bSizeText->Add( m_textLabelSingleLine, 0, wxEXPAND|wxLEFT, 3 );
m_textLabelMultiLine = new wxTextCtrl( this, wxID_VALUEMULTI, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_PROCESS_ENTER );
m_textLabelMultiLine->SetToolTip( _("Enter the text to be used within the schematic") );
m_textLabelMultiLine->SetMinSize( wxSize( -1,60 ) );
bSizeText->Add( m_textLabelMultiLine, 1, wxEXPAND|wxLEFT, 3 );
m_textControlSizer->Add( bSizeText, 1, wxEXPAND, 3 );
m_SizeTitle = new wxStaticText( this, wxID_ANY, _("&Size:"), wxDefaultPosition, wxDefaultSize, 0 );
m_SizeTitle->Wrap( -1 );
m_textControlSizer->Add( m_SizeTitle, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 3 );
wxBoxSizer* bSizeCtrlSizer;
bSizeCtrlSizer = new wxBoxSizer( wxHORIZONTAL );
m_TextSize = new wxTextCtrl( this, wxID_SIZE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
bSizeCtrlSizer->Add( m_TextSize, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT, 3 );
m_staticSizeUnits = new wxStaticText( this, wxID_ANY, _("units"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticSizeUnits->Wrap( -1 );
bSizeCtrlSizer->Add( m_staticSizeUnits, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 3 );
m_textControlSizer->Add( bSizeCtrlSizer, 1, wxEXPAND, 3 );
bMainSizer->Add( m_textControlSizer, 1, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 12 );
wxBoxSizer* m_OptionsSizer;
m_OptionsSizer = new wxBoxSizer( wxHORIZONTAL );
wxString m_TextOrientChoices[] = { _("Right"), _("Up"), _("Left"), _("Down") };
int m_TextOrientNChoices = sizeof( m_TextOrientChoices ) / sizeof( wxString );
m_TextOrient = new wxRadioBox( this, wxID_ANY, _("O&rietation"), wxDefaultPosition, wxDefaultSize, m_TextOrientNChoices, m_TextOrientChoices, 1, wxRA_SPECIFY_COLS );
m_TextOrient->SetSelection( 0 );
m_OptionsSizer->Add( m_TextOrient, 1, wxRIGHT|wxTOP, 3 );
wxString m_TextStyleChoices[] = { _("Normal"), _("Italic"), _("Bold"), _("Bold Italic") };
int m_TextStyleNChoices = sizeof( m_TextStyleChoices ) / sizeof( wxString );
m_TextStyle = new wxRadioBox( this, wxID_ANY, _("St&yle"), wxDefaultPosition, wxDefaultSize, m_TextStyleNChoices, m_TextStyleChoices, 1, wxRA_SPECIFY_COLS );
m_TextStyle->SetSelection( 0 );
m_OptionsSizer->Add( m_TextStyle, 1, wxLEFT|wxRIGHT|wxTOP, 3 );
wxString m_TextShapeChoices[] = { _("Input"), _("Output"), _("Bidirectional"), _("Tri-State"), _("Passive") };
int m_TextShapeNChoices = sizeof( m_TextShapeChoices ) / sizeof( wxString );
m_TextShape = new wxRadioBox( this, wxID_ANY, _("S&hape"), wxDefaultPosition, wxDefaultSize, m_TextShapeNChoices, m_TextShapeChoices, 1, wxRA_SPECIFY_COLS );
m_TextShape->SetSelection( 2 );
m_OptionsSizer->Add( m_TextShape, 1, wxALL|wxLEFT|wxTOP, 3 );
bMainSizer->Add( m_OptionsSizer, 0, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 12 );
m_sdbSizer1 = new wxStdDialogButtonSizer();
m_sdbSizer1OK = new wxButton( this, wxID_OK );
m_sdbSizer1->AddButton( m_sdbSizer1OK );
m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL );
m_sdbSizer1->AddButton( m_sdbSizer1Cancel );
m_sdbSizer1->Realize();
bMainSizer->Add( m_sdbSizer1, 0, wxALL|wxEXPAND, 12 );
this->SetSizer( bMainSizer );
this->Layout();
// Connect Events
m_textLabelSingleLine->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DialogLabelEditor_Base::OnEnterKey ), NULL, this );
m_textLabelMultiLine->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DialogLabelEditor_Base::OnEnterKey ), NULL, this );
m_sdbSizer1Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogLabelEditor_Base::OnCancelClick ), NULL, this );
m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogLabelEditor_Base::OnOkClick ), NULL, this );
}
DialogLabelEditor_Base::~DialogLabelEditor_Base()
{
// Disconnect Events
m_textLabelSingleLine->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DialogLabelEditor_Base::OnEnterKey ), NULL, this );
m_textLabelMultiLine->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DialogLabelEditor_Base::OnEnterKey ), NULL, this );
m_sdbSizer1Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogLabelEditor_Base::OnCancelClick ), NULL, this );
m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogLabelEditor_Base::OnOkClick ), NULL, this );
}
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Apr 16 2008)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#include "dialog_edit_label_base.h"
///////////////////////////////////////////////////////////////////////////
DialogLabelEditor_Base::DialogLabelEditor_Base( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
this->SetSizeHints( wxDefaultSize, wxDefaultSize );
wxBoxSizer* bMainSizer;
bMainSizer = new wxBoxSizer( wxVERTICAL );
m_textControlSizer = new wxFlexGridSizer( 2, 2, 3, 3 );
m_textControlSizer->AddGrowableCol( 1 );
m_textControlSizer->AddGrowableRow( 0 );
m_textControlSizer->SetFlexibleDirection( wxBOTH );
m_textControlSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
m_staticText1 = new wxStaticText( this, wxID_ANY, _("&Text:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText1->Wrap( -1 );
m_staticText1->SetToolTip( _("Enter the text to be used within the schematic") );
m_textControlSizer->Add( m_staticText1, 0, wxRIGHT, 3 );
wxBoxSizer* bSizeText;
bSizeText = new wxBoxSizer( wxVERTICAL );
m_textLabelSingleLine = new wxTextCtrl( this, wxID_VALUESINGLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
bSizeText->Add( m_textLabelSingleLine, 0, wxEXPAND|wxLEFT, 3 );
m_textLabelMultiLine = new wxTextCtrl( this, wxID_VALUEMULTI, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_PROCESS_ENTER );
m_textLabelMultiLine->SetMinSize( wxSize( -1,60 ) );
bSizeText->Add( m_textLabelMultiLine, 1, wxEXPAND|wxLEFT, 3 );
m_textControlSizer->Add( bSizeText, 1, wxEXPAND, 3 );
m_SizeTitle = new wxStaticText( this, wxID_ANY, _("&Size:"), wxDefaultPosition, wxDefaultSize, 0 );
m_SizeTitle->Wrap( -1 );
m_textControlSizer->Add( m_SizeTitle, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 3 );
wxBoxSizer* bSizeCtrlSizer;
bSizeCtrlSizer = new wxBoxSizer( wxHORIZONTAL );
m_TextSize = new wxTextCtrl( this, wxID_SIZE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
bSizeCtrlSizer->Add( m_TextSize, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT, 3 );
m_staticSizeUnits = new wxStaticText( this, wxID_ANY, _("units"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticSizeUnits->Wrap( -1 );
bSizeCtrlSizer->Add( m_staticSizeUnits, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 3 );
m_textControlSizer->Add( bSizeCtrlSizer, 1, wxEXPAND, 3 );
bMainSizer->Add( m_textControlSizer, 1, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 12 );
wxBoxSizer* m_OptionsSizer;
m_OptionsSizer = new wxBoxSizer( wxHORIZONTAL );
wxString m_TextOrientChoices[] = { _("Right"), _("Up"), _("Left"), _("Down") };
int m_TextOrientNChoices = sizeof( m_TextOrientChoices ) / sizeof( wxString );
m_TextOrient = new wxRadioBox( this, wxID_ANY, _("O&rientation"), wxDefaultPosition, wxDefaultSize, m_TextOrientNChoices, m_TextOrientChoices, 1, wxRA_SPECIFY_COLS );
m_TextOrient->SetSelection( 0 );
m_OptionsSizer->Add( m_TextOrient, 1, wxRIGHT|wxTOP, 3 );
wxString m_TextStyleChoices[] = { _("Normal"), _("Italic"), _("Bold"), _("Bold Italic") };
int m_TextStyleNChoices = sizeof( m_TextStyleChoices ) / sizeof( wxString );
m_TextStyle = new wxRadioBox( this, wxID_ANY, _("St&yle"), wxDefaultPosition, wxDefaultSize, m_TextStyleNChoices, m_TextStyleChoices, 1, wxRA_SPECIFY_COLS );
m_TextStyle->SetSelection( 0 );
m_OptionsSizer->Add( m_TextStyle, 1, wxLEFT|wxRIGHT|wxTOP, 3 );
wxString m_TextShapeChoices[] = { _("Input"), _("Output"), _("Bidirectional"), _("Tri-State"), _("Passive") };
int m_TextShapeNChoices = sizeof( m_TextShapeChoices ) / sizeof( wxString );
m_TextShape = new wxRadioBox( this, wxID_ANY, _("S&hape"), wxDefaultPosition, wxDefaultSize, m_TextShapeNChoices, m_TextShapeChoices, 1, wxRA_SPECIFY_COLS );
m_TextShape->SetSelection( 0 );
m_OptionsSizer->Add( m_TextShape, 1, wxALL|wxLEFT|wxTOP, 3 );
bMainSizer->Add( m_OptionsSizer, 0, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 12 );
m_sdbSizer1 = new wxStdDialogButtonSizer();
m_sdbSizer1OK = new wxButton( this, wxID_OK );
m_sdbSizer1->AddButton( m_sdbSizer1OK );
m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL );
m_sdbSizer1->AddButton( m_sdbSizer1Cancel );
m_sdbSizer1->Realize();
bMainSizer->Add( m_sdbSizer1, 0, wxALL|wxEXPAND, 12 );
this->SetSizer( bMainSizer );
this->Layout();
// Connect Events
m_textLabelSingleLine->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DialogLabelEditor_Base::OnEnterKey ), NULL, this );
m_textLabelMultiLine->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DialogLabelEditor_Base::OnEnterKey ), NULL, this );
m_sdbSizer1Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogLabelEditor_Base::OnCancelClick ), NULL, this );
m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogLabelEditor_Base::OnOkClick ), NULL, this );
}
DialogLabelEditor_Base::~DialogLabelEditor_Base()
{
// Disconnect Events
m_textLabelSingleLine->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DialogLabelEditor_Base::OnEnterKey ), NULL, this );
m_textLabelMultiLine->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DialogLabelEditor_Base::OnEnterKey ), NULL, this );
m_sdbSizer1Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogLabelEditor_Base::OnCancelClick ), NULL, this );
m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogLabelEditor_Base::OnOkClick ), NULL, this );
}

File diff suppressed because it is too large Load Diff

View File

@ -1,68 +1,68 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Apr 16 2008)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#ifndef __dialog_edit_label_base__
#define __dialog_edit_label_base__
#include <wx/intl.h>
#include <wx/string.h>
#include <wx/stattext.h>
#include <wx/gdicmn.h>
#include <wx/font.h>
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/textctrl.h>
#include <wx/sizer.h>
#include <wx/radiobox.h>
#include <wx/button.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/// Class DialogLabelEditor_Base
///////////////////////////////////////////////////////////////////////////////
class DialogLabelEditor_Base : public wxDialog
{
private:
protected:
enum
{
wxID_VALUESINGLE = 1000,
wxID_VALUEMULTI,
wxID_SIZE,
};
wxFlexGridSizer* m_textControlSizer;
wxStaticText* m_staticText1;
wxTextCtrl* m_textLabelSingleLine;
wxTextCtrl* m_textLabelMultiLine;
wxStaticText* m_SizeTitle;
wxTextCtrl* m_TextSize;
wxStaticText* m_staticSizeUnits;
wxRadioBox* m_TextOrient;
wxRadioBox* m_TextStyle;
wxRadioBox* m_TextShape;
wxStdDialogButtonSizer* m_sdbSizer1;
wxButton* m_sdbSizer1OK;
wxButton* m_sdbSizer1Cancel;
// Virtual event handlers, overide them in your derived class
virtual void OnEnterKey( wxCommandEvent& event ){ event.Skip(); }
virtual void OnCancelClick( wxCommandEvent& event ){ event.Skip(); }
virtual void OnOkClick( wxCommandEvent& event ){ event.Skip(); }
public:
DialogLabelEditor_Base( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Text Editor"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 359,347 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~DialogLabelEditor_Base();
};
#endif //__dialog_edit_label_base__
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Apr 16 2008)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#ifndef __dialog_edit_label_base__
#define __dialog_edit_label_base__
#include <wx/intl.h>
#include <wx/string.h>
#include <wx/stattext.h>
#include <wx/gdicmn.h>
#include <wx/font.h>
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/textctrl.h>
#include <wx/sizer.h>
#include <wx/radiobox.h>
#include <wx/button.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/// Class DialogLabelEditor_Base
///////////////////////////////////////////////////////////////////////////////
class DialogLabelEditor_Base : public wxDialog
{
private:
protected:
enum
{
wxID_VALUESINGLE = 1000,
wxID_VALUEMULTI,
wxID_SIZE,
};
wxFlexGridSizer* m_textControlSizer;
wxStaticText* m_staticText1;
wxTextCtrl* m_textLabelSingleLine;
wxTextCtrl* m_textLabelMultiLine;
wxStaticText* m_SizeTitle;
wxTextCtrl* m_TextSize;
wxStaticText* m_staticSizeUnits;
wxRadioBox* m_TextOrient;
wxRadioBox* m_TextStyle;
wxRadioBox* m_TextShape;
wxStdDialogButtonSizer* m_sdbSizer1;
wxButton* m_sdbSizer1OK;
wxButton* m_sdbSizer1Cancel;
// Virtual event handlers, overide them in your derived class
virtual void OnEnterKey( wxCommandEvent& event ){ event.Skip(); }
virtual void OnCancelClick( wxCommandEvent& event ){ event.Skip(); }
virtual void OnOkClick( wxCommandEvent& event ){ event.Skip(); }
public:
DialogLabelEditor_Base( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Text Editor"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 359,347 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~DialogLabelEditor_Base();
};
#endif //__dialog_edit_label_base__

View File

@ -21,7 +21,7 @@
// Global variables
int g_OptNetListUseNames; /* TRUE to use names rather than net
bool g_OptNetListUseNames; /* TRUE to use names rather than net
* The numbers (PSPICE netlist only) */
SCH_ITEM* g_ItemToRepeat; /* Pointer to the last structure
* for duplicatation by the repeat command.

View File

@ -4,7 +4,6 @@
#include "fctsys.h"
#include "appl_wxstruct.h"
#include "gr_basic.h"
#include "common.h"
#include "eeschema_id.h"
#include "class_drawpanel.h"
@ -12,6 +11,7 @@
#include "gestfich.h"
#include "program.h"
#include "general.h"
#include "netlist.h"
#include "protos.h"
#include "libeditframe.h"
#include "eeschema_config.h"
@ -363,11 +363,6 @@ PARAM_CFG_ARRAY& WinEDA_SchematicFrame::GetProjectFileParameters( void )
m_projectFileParams.push_back( new PARAM_CFG_INT( wxT( "RptLab" ),
&g_RepeatDeltaLabel,
1, -10, +10 ) );
m_projectFileParams.push_back( new PARAM_CFG_WXSTRING( wxT( "SimCmd" ),
&g_SimulatorCommandLine ) );
m_projectFileParams.push_back( new PARAM_CFG_INT( wxT( "UseNetN" ),
&g_OptNetListUseNames,
0, 0, 1 ) );
m_projectFileParams.push_back( new PARAM_CFG_INT( wxT( "LabSize" ),
&g_DefaultTextLabelSize,
DEFAULT_SIZE_TEXT, 0,
@ -473,6 +468,8 @@ static const wxString ReplaceStringEntry( wxT( "LastReplaceString" ) );
static const wxString FindStringHistoryEntry( wxT( "FindStringHistoryList%d" ) );
static const wxString ReplaceStringHistoryEntry( wxT( "ReplaceStringHistoryList%d" ) );
static const wxString FieldNamesEntry( wxT( "FieldNames" ) );
static const wxString SpiceNetNamesEntry( wxT( "SpiceUseNetNames" ) );
static const wxString SimulatorCommandEntry( wxT( "SimCmdLine" ) );
/*
* Return the EESchema applications settings list.
@ -496,7 +493,7 @@ PARAM_CFG_ARRAY& WinEDA_SchematicFrame::GetConfigurationSettings( void )
return m_configSettings;
m_configSettings.push_back( new PARAM_CFG_INT( wxT( "Unite" ),
(int*)&g_UserUnit, 0 ) );
(int*)&g_UserUnit, 0 ) );
m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColWire" ),
&g_LayerDescr.LayerColor[LAYER_WIRE],
GREEN ) );
@ -615,6 +612,10 @@ void WinEDA_SchematicFrame::LoadSettings()
cfg->Read( PrintDialogHeightEntry, &tmp, -1 );
m_printDialogSize.SetHeight( (int) tmp );
// Load netlists options:
cfg->Read( SpiceNetNamesEntry, &g_OptNetListUseNames, false );
cfg->Read( SimulatorCommandEntry, &g_SimulatorCommandLine );
/* Load find dialog session setting. */
cfg->Read( FindDialogPositionXEntry, &tmp, -1 );
m_findDialogPosition.x = (int) tmp;
@ -668,6 +669,7 @@ void WinEDA_SchematicFrame::LoadSettings()
CONV_TO_UTF8(e.errorText) );)
}
}
}
@ -700,6 +702,10 @@ void WinEDA_SchematicFrame::SaveSettings()
cfg->Write( PrintDialogWidthEntry, m_printDialogSize.GetWidth() );
cfg->Write( PrintDialogHeightEntry, m_printDialogSize.GetHeight() );
// Save netlists options:
cfg->Write( SpiceNetNamesEntry, g_OptNetListUseNames );
cfg->Write( SimulatorCommandEntry, g_SimulatorCommandLine );
/* Save find dialog session setting. */
cfg->Write( FindDialogPositionXEntry, m_findDialogPosition.x );
cfg->Write( FindDialogPositionYEntry, m_findDialogPosition.y );

View File

@ -249,14 +249,3 @@ void WinEDA_SchematicFrame::SaveProject()
LibArchive( this, fn.GetFullPath() );
}
/**
* Return the number of components in the schematic.
*
* Power components are not included.
*/
int CountCmpNumber()
{
return g_RootSheet->ComponentCount();
}

View File

@ -95,9 +95,6 @@ typedef enum
} FileSaveType;
extern int g_OptNetListUseNames; /* TRUE to use names rather than
* net numbers (PSPICE netlist
* only) */
extern SCH_ITEM* g_ItemToRepeat; /* Pointer to the last structure used
* by the repeat command. NULL if no
* item to repeat */

View File

@ -54,52 +54,60 @@ static NETLIST_OBJECT_LIST s_SortedComponentPinList;
static wxArrayString s_ReferencesAlreadyFound;
/* Create the netlist file ( Format is given by frame->m_NetlistFormat )
* bool use_netnames is used only for Spice netlist
/** function WriteNetListFile
* Create the netlist file. Netlist info must be existing
* @param aFormat = netlist format (NET_TYPE_PCBNEW ...)
* @param aFullFileName = full netlist file name
* @param aUse_netnames = bool. if true, use net names from labels in schematic
* if false, use net numbers (net codes)
* bool aUse_netnames is used only for Spice netlist
* @return true if success.
*/
void WriteNetList( WinEDA_SchematicFrame* frame, const wxString& FileNameNL,
bool use_netnames )
bool WinEDA_SchematicFrame::WriteNetListFile( int aFormat, const wxString& aFullFileName,
bool aUse_netnames )
{
FILE* f = NULL;
if( frame->m_NetlistFormat < NET_TYPE_CUSTOM1 )
if( aFormat < NET_TYPE_CUSTOM1 )
{
if( ( f = wxFopen( FileNameNL, wxT( "wt" ) ) ) == NULL )
if( ( f = wxFopen( aFullFileName, wxT( "wt" ) ) ) == NULL )
{
wxString msg = _( "Failed to create file " ) + FileNameNL;
DisplayError( frame, msg );
return;
wxString msg = _( "Failed to create file " ) + aFullFileName;
DisplayError( this, msg );
return false;
}
}
wxBusyCursor Busy;
switch( frame->m_NetlistFormat )
switch( aFormat )
{
case NET_TYPE_PCBNEW:
WriteNetListPCBNEW( frame, f, TRUE );
WriteNetListPCBNEW( this, f, TRUE );
fclose( f );
break;
case NET_TYPE_ORCADPCB2:
WriteNetListPCBNEW( frame, f, FALSE );
WriteNetListPCBNEW( this, f, FALSE );
fclose( f );
break;
case NET_TYPE_CADSTAR:
WriteNetListCADSTAR( frame, f );
WriteNetListCADSTAR( this, f );
fclose( f );
break;
case NET_TYPE_SPICE:
WriteNetListPspice( frame, f, use_netnames );
WriteNetListPspice( this, f, aUse_netnames );
fclose( f );
break;
default:
Write_GENERIC_NetList( frame, FileNameNL );
Write_GENERIC_NetList( this, aFullFileName );
break;
}
return true;
}
@ -179,8 +187,8 @@ static SCH_COMPONENT* FindNextComponentAndCreatPinList( EDA_BaseStruct* DrawList
AddPinToComponentPinList( Component, sheet, Pin );
}
}
else // Multiple parts per package: Collect all parts ans pins for
// this reference
else // Multiple parts per package: Collect all parts ans pins for
// this reference
FindAllsInstancesOfComponent( Component, Entry, sheet );
/* Sort Pins in s_SortedComponentPinList by pin number */
@ -218,7 +226,8 @@ static wxString ReturnPinNetName( NETLIST_OBJECT* Pin, const wxString& DefaultFo
if( !NetName.IsEmpty() )
{
// prefix non global labels names by the sheet path, to avoid names collisions
if( netref->m_Type != NET_PINLABEL )
if( ( netref->m_Type != NET_PINLABEL )
&& ( netref->m_Type != NET_GLOBLABEL ) )
{
wxString lnet = NetName;
NetName = netref->m_SheetList.PathHumanReadable();
@ -387,12 +396,12 @@ static void WriteNetListPspice( WinEDA_SchematicFrame* frame, FILE* f, bool use_
SCH_SHEET_LIST SheetList;
for( sheet = SheetList.GetFirst();
sheet != NULL;
sheet = SheetList.GetNext() )
sheet != NULL;
sheet = SheetList.GetNext() )
{
for( DrawList = sheet->LastDrawList();
DrawList != NULL;
DrawList = DrawList->Next() )
DrawList != NULL;
DrawList = DrawList->Next() )
{
wxChar ident;
if( DrawList->Type() != TYPE_SCH_TEXT )
@ -418,6 +427,7 @@ static void WriteNetListPspice( WinEDA_SchematicFrame* frame, FILE* f, bool use_
}
text = DRAWTEXT->m_Text.AfterFirst( ' ' );
// First BUFYPOS_LEN char are the Y position.
msg.Printf( wxT( "%s %s" ), bufnum, text.GetData() );
if( ident == '+' )
@ -464,7 +474,7 @@ static void WriteNetListPspice( WinEDA_SchematicFrame* frame, FILE* f, bool use_
NETLIST_OBJECT* Pin = s_SortedComponentPinList[ii];
if( !Pin )
continue;
wxString NetName = ReturnPinNetName( Pin, wxT( "N-%.6d" ) );
wxString NetName = ReturnPinNetName( Pin, wxT( "N-%.6d" ) );
if( NetName.IsEmpty() )
NetName = wxT( "?" );
if( use_netnames )
@ -481,7 +491,7 @@ static void WriteNetListPspice( WinEDA_SchematicFrame* frame, FILE* f, bool use_
}
fprintf( f, " %s\n",
CONV_TO_UTF8( Component->GetField( VALUE )->m_Text ) );
CONV_TO_UTF8( Component->GetField( VALUE )->m_Text ) );
}
}
@ -518,7 +528,7 @@ static void WriteNetListPCBNEW( WinEDA_SchematicFrame* frame, FILE* f, bool with
char Buf[256];
SCH_SHEET_PATH* sheet;
EDA_BaseStruct* DrawList;
SCH_COMPONENT* Component;
SCH_COMPONENT* Component;
OBJ_CMP_TO_LIST* CmpList = NULL;
int CmpListCount = 0, CmpListSize = 1000;
@ -560,14 +570,14 @@ static void WriteNetListPCBNEW( WinEDA_SchematicFrame* frame, FILE* f, bool with
if( CmpListCount >= CmpListSize )
{
CmpListSize += 1000;
CmpList =
CmpList =
(OBJ_CMP_TO_LIST*) realloc( CmpList,
sizeof(OBJ_CMP_TO_LIST)
* CmpListSize );
}
CmpList[CmpListCount].m_RootCmp = Component;
strcpy( CmpList[CmpListCount].m_Reference,
Component->GetRef( sheet ).mb_str() );
Component->GetRef( sheet ).mb_str() );
CmpListCount++;
}
}
@ -582,8 +592,8 @@ static void WriteNetListPCBNEW( WinEDA_SchematicFrame* frame, FILE* f, bool with
Line = Component->GetRef( sheet );
fprintf( f, " ( %s %s",
CONV_TO_UTF8( Component->GetPath( sheet ) ),
CONV_TO_UTF8( FootprintName ) );
CONV_TO_UTF8( Component->GetPath( sheet ) ),
CONV_TO_UTF8( FootprintName ) );
fprintf( f, " %s", CONV_TO_UTF8( Line ) );
Line = Component->GetField( VALUE )->m_Text;
@ -610,7 +620,7 @@ static void WriteNetListPCBNEW( WinEDA_SchematicFrame* frame, FILE* f, bool with
netname.Replace( wxT( " " ), wxT( "_" ) );
fprintf( f, " ( %4.4s %s )\n", (char*) &Pin->m_PinNum,
CONV_TO_UTF8( netname ) );
CONV_TO_UTF8( netname ) );
}
fprintf( f, " )\n" );
@ -629,7 +639,7 @@ static void WriteNetListPCBNEW( WinEDA_SchematicFrame* frame, FILE* f, bool with
for( int ii = 0; ii < CmpListCount; ii++ )
{
Component = CmpList[ii].m_RootCmp;
Entry = CMP_LIBRARY::FindLibraryComponent( Component->m_ChipName );
Entry = CMP_LIBRARY::FindLibraryComponent( Component->m_ChipName );
//Line.Printf(_("%s"), CmpList[ii].m_Ref);
//Line.Replace( wxT( " " ), wxT( "_" ) );
@ -647,7 +657,7 @@ static void WriteNetListPCBNEW( WinEDA_SchematicFrame* frame, FILE* f, bool with
for( unsigned jj = 0; jj < Entry->m_FootprintList.GetCount(); jj++ )
{
fprintf( f, " %s\n",
CONV_TO_UTF8( Entry->m_FootprintList[jj] ) );
CONV_TO_UTF8( Entry->m_FootprintList[jj] ) );
}
fprintf( f, "$endlist\n" );
@ -736,6 +746,7 @@ static void EraseDuplicatePins( NETLIST_OBJECT_LIST& aPinList )
{
if( aPinList[jj] == NULL ) // Already removed
continue;
// other pin num end of duplicate list.
if( aPinList[idxref]->m_PinNum != aPinList[jj]->m_PinNum )
break;
@ -860,7 +871,8 @@ static void WriteGENERICListOfNets( FILE* f, NETLIST_OBJECT_LIST& aObjectsList )
NetcodeName += wxT( "\"" );
if( !NetName.IsEmpty() )
{
if( netref->m_Type != NET_PINLABEL )
if( ( netref->m_Type != NET_PINLABEL )
&& ( netref->m_Type != NET_GLOBLABEL ) )
{
// usual net name, prefix it by the sheet path
NetcodeName += netref->m_SheetList.PathHumanReadable();
@ -1037,7 +1049,8 @@ static void WriteListOfNetsCADSTAR( FILE* f, NETLIST_OBJECT_LIST& aObjectsList )
NetcodeName = wxT( "\"" );
if( !NetName.IsEmpty() )
{
if( netref->m_Type != NET_PINLABEL )
if( ( netref->m_Type != NET_PINLABEL )
&& ( netref->m_Type != NET_GLOBLABEL ) )
{
// usual net name, prefix it by the sheet path
NetcodeName +=
@ -1074,10 +1087,10 @@ static void WriteListOfNetsCADSTAR( FILE* f, NETLIST_OBJECT_LIST& aObjectsList )
buf[4] = 0;
str_pinnum = CONV_FROM_UTF8( buf );
InitNetDescLine.Printf( wxT( "\n%s %s %.4s %s" ),
GetChars(InitNetDesc),
GetChars(refstr),
GetChars(str_pinnum),
GetChars(NetcodeName) );
GetChars( InitNetDesc ),
GetChars( refstr ),
GetChars( str_pinnum ),
GetChars( NetcodeName ) );
}
print_ter++;
break;

View File

@ -342,6 +342,7 @@ void FindBestNetNameForEachNet( NETLIST_OBJECT_LIST& aNetItemBuffer )
case NET_HIERLABEL:
case NET_LABEL:
case NET_PINLABEL:
case NET_GLOBLABEL:
candidates.push_back( item );
break;
@ -368,8 +369,22 @@ static NETLIST_OBJECT* FindBestNetName( NETLIST_OBJECT_LIST& aLabelItemBuffer )
if( aLabelItemBuffer.size() == 0 )
return NULL;
int priority_order[4] =
{ NET_LABEL, NET_HIERLABEL, NET_PINLABEL, NET_GLOBLABEL };
NETLIST_OBJECT*item = aLabelItemBuffer[0];
// Calculate item priority
int item_priority = 0;
for( unsigned ii = 0; ii < 4; ii++ )
{
if ( item->m_Type == priority_order[ii] )
{
item_priority = ii;
break;
}
}
for( unsigned ii = 1; ii < aLabelItemBuffer.size(); ii++ )
{
NETLIST_OBJECT* candidate = aLabelItemBuffer[ii];
@ -378,38 +393,23 @@ static NETLIST_OBJECT* FindBestNetName( NETLIST_OBJECT_LIST& aLabelItemBuffer )
item = candidate;
continue;
}
switch ( item->m_Type )
// Calculate candidate priority
int candidate_priority = 0;
for( unsigned ii = 0; ii < 4; ii++ )
{
case NET_HIERLABEL:
if( candidate->m_Type == NET_PINLABEL )
item = candidate;
else if( candidate->m_Type == NET_HIERLABEL )
{
if( candidate->m_Label.Cmp( item->m_Label ) < 0 )
item = candidate;
}
if ( candidate->m_Type == priority_order[ii] )
{
candidate_priority = ii;
break;
case NET_LABEL:
if( candidate->m_Type == NET_LABEL )
{
if( candidate->m_Label.Cmp( item->m_Label ) < 0 )
item = candidate;
}
else
item = candidate;
break;
case NET_PINLABEL:
if( candidate->m_Type != NET_PINLABEL )
break;
if( candidate->m_Label.Cmp( item->m_Label ) < 0 )
item = candidate;
break;
default: // Should not occur.
break;
}
}
}
if( candidate_priority > item_priority )
item = candidate;
else if( candidate_priority == item_priority )
{
if( candidate->m_Label.Cmp( item->m_Label ) < 0 )
item = candidate;
}
}
return item;
}

View File

@ -49,7 +49,7 @@ public:
SCH_COMPONENT* m_RootCmp; // the component in schematic
LIB_COMPONENT* m_Entry; // the source component in library
int m_Unit; /* Selected part (For multi parts per
* package) depending on sheet path */
* package) depending on sheet path */
SCH_SHEET_PATH m_SheetPath; /* the sheet path for this component */
unsigned long m_TimeStamp; /* unique identification number
* depending on sheet path */
@ -104,11 +104,11 @@ public:
typedef std::vector <NETLIST_OBJECT*> NETLIST_OBJECT_LIST;
extern NETLIST_OBJECT_LIST g_NetObjectslist;
extern bool g_OptNetListUseNames; /* TRUE to use names rather than
* net numbers. SPICE netlist only
*/
/* Prototypes: */
void WriteNetList( WinEDA_SchematicFrame* frame,
const wxString& FileNameNL,
bool use_netnames );
void FreeNetObjectsList( std::vector <NETLIST_OBJECT*>& aNetObjectslist );
/** Function ReturnUserNetlistTypeName

View File

@ -25,7 +25,7 @@
#include "netlist_control.h"
//Imported function:
int TestDuplicateSheetNames(bool aCreateMarker);
int TestDuplicateSheetNames( bool aCreateMarker );
// ID for configuration:
#define CUSTOM_NETLIST_TITLE wxT( "CustomNetlistTitle" )
@ -62,14 +62,14 @@ wxString ReturnUserNetlistTypeName( bool first_item )
BEGIN_EVENT_TABLE( WinEDA_NetlistFrame, wxDialog )
EVT_BUTTON( wxID_CANCEL, WinEDA_NetlistFrame::OnCancelClick )
EVT_BUTTON( ID_CREATE_NETLIST, WinEDA_NetlistFrame::GenNetlist )
EVT_BUTTON( ID_SETUP_PLUGIN, WinEDA_NetlistFrame::SetupPluginData )
EVT_BUTTON( ID_DELETE_PLUGIN, WinEDA_NetlistFrame::DeletePluginPanel )
EVT_BUTTON( ID_VALIDATE_PLUGIN, WinEDA_NetlistFrame::ValidatePluginPanel )
EVT_CHECKBOX( ID_CURRENT_FORMAT_IS_DEFAULT,
WinEDA_NetlistFrame::SelectNetlistType )
EVT_BUTTON( ID_RUN_SIMULATOR, WinEDA_NetlistFrame::RunSimulator )
EVT_BUTTON( wxID_CANCEL, WinEDA_NetlistFrame::OnCancelClick )
EVT_BUTTON( ID_CREATE_NETLIST, WinEDA_NetlistFrame::GenNetlist )
EVT_BUTTON( ID_SETUP_PLUGIN, WinEDA_NetlistFrame::SetupPluginData )
EVT_BUTTON( ID_DELETE_PLUGIN, WinEDA_NetlistFrame::DeletePluginPanel )
EVT_BUTTON( ID_VALIDATE_PLUGIN, WinEDA_NetlistFrame::ValidatePluginPanel )
EVT_CHECKBOX( ID_CURRENT_FORMAT_IS_DEFAULT,
WinEDA_NetlistFrame::SelectNetlistType )
EVT_BUTTON( ID_RUN_SIMULATOR, WinEDA_NetlistFrame::RunSimulator )
END_EVENT_TABLE()
@ -185,8 +185,6 @@ WinEDA_NetlistFrame::WinEDA_NetlistFrame( WinEDA_SchematicFrame* parent ) :
m_PanelNetType[ii] = NULL;
}
Centre();
wxBoxSizer* GeneralBoxSizer = new wxBoxSizer( wxVERTICAL );
SetSizer( GeneralBoxSizer );
@ -231,6 +229,7 @@ WinEDA_NetlistFrame::WinEDA_NetlistFrame( WinEDA_SchematicFrame* parent ) :
GetSizer()->Fit( this );
GetSizer()->SetSizeHints( this );
Centre();
}
@ -245,15 +244,15 @@ void WinEDA_NetlistFrame::InstallPageSpice()
EDA_NoteBookPage* page;
page = m_PanelNetType[PANELSPICE] =
new EDA_NoteBookPage( m_NoteBook,
wxT( "Spice" ),
NET_TYPE_SPICE,
0, 0,
m_Parent->m_NetlistFormat == NET_TYPE_SPICE );
new EDA_NoteBookPage( m_NoteBook,
wxT( "Spice" ),
NET_TYPE_SPICE,
0, 0,
m_Parent->m_NetlistFormat == NET_TYPE_SPICE );
page->m_IsCurrentFormat =
new wxCheckBox( page, ID_CURRENT_FORMAT_IS_DEFAULT,
_( "Default format" ) );
_( "Default format" ) );
page->m_IsCurrentFormat->SetValue( m_Parent->m_NetlistFormat == NET_TYPE_SPICE );
page->m_LeftBoxSizer->Add( page->m_IsCurrentFormat, 0, wxGROW | wxALL, 5 );
@ -291,8 +290,8 @@ void WinEDA_NetlistFrame::InstallCustomPages()
/* create the pages for custom netlist format selection:
*/
{
bool selected;
int ii, CustomCount;
bool selected;
int ii, CustomCount;
wxString title, previoustitle, msg;
EDA_NoteBookPage* CurrPage;
@ -381,8 +380,8 @@ void WinEDA_NetlistFrame::SetupPluginData( wxCommandEvent& event )
wxString title = CurrPage->m_TitleStringCtrl->GetValue();
if( title.IsEmpty() )
DisplayInfoMessage( this,
_( "Do not forget to choose a title for this \
netlist control page" ) );
_( "Do not forget to choose a title for this \
netlist control page" ) );
}
@ -444,21 +443,18 @@ void WinEDA_NetlistFrame::GenNetlist( wxCommandEvent& event )
*/
{
wxFileName fn;
wxString FileWildcard, FileExt;
wxString msg, Command;
int netformat_tmp = m_Parent->m_NetlistFormat;
wxString FileWildcard, FileExt;
wxString msg, Command;
NetlistUpdateOpt();
EDA_NoteBookPage* CurrPage;
CurrPage = (EDA_NoteBookPage*) m_NoteBook->GetCurrentPage();
m_Parent->m_NetlistFormat = CurrPage->m_IdNetType;
CurrPage = (EDA_NoteBookPage*) m_NoteBook->GetCurrentPage();
/* Calculate the netlist filename */
fn = g_RootSheet->m_AssociatedScreen->m_FileName;
switch( m_Parent->m_NetlistFormat )
switch( CurrPage->m_IdNetType )
{
case NET_TYPE_SPICE:
FileExt = wxT( "cir" );
@ -480,25 +476,55 @@ void WinEDA_NetlistFrame::GenNetlist( wxCommandEvent& event )
wxFileDialog dlg( this, _( "Save Netlist Files" ), fn.GetPath(),
fn.GetFullName(), FileWildcard,
wxFD_SAVE /*| wxFD_OVERWRITE_PROMPT*/ );
wxFD_SAVE );
if( dlg.ShowModal() == wxID_CANCEL )
return;
m_Parent->ClearMsgPanel();
if( CurrPage->m_CommandStringCtrl )
g_NetListerCommandLine = CurrPage->m_CommandStringCtrl->GetValue();
else
g_NetListerCommandLine.Empty();
m_Parent->CreateNetlist( CurrPage->m_IdNetType, dlg.GetPath(), g_OptNetListUseNames );
WriteCurrentNetlistSetup();
EndModal( NET_OK );
}
/** Function CreateNetlist
* Create a netlist file:
* build netlist info
* test issues
* create file
* @param aFormat = netlist format (NET_TYPE_PCBNEW ...)
* @param aFullFileName = full netlist file name
* @param aUse_netnames = bool. if true, use net names from labels in schematic
* if false, use net numbers (net codes)
* bool aUse_netnames is used only for Spice netlist
* @return true if success.
*/
bool WinEDA_SchematicFrame::CreateNetlist( int aFormat, const wxString& aFullFileName,
bool aUse_netnames )
{
ReAnnotatePowerSymbolsOnly();
if( m_Parent->CheckAnnotate( NULL, 0 ) )
// Performs some controls:
if( CheckAnnotate( NULL, 0 ) )
{
if( !IsOK( this, _( "Must be Annotated, Continue ?" ) ) )
return;
if( !IsOK( NULL, _( "Must be Annotated, Continue ?" ) ) )
return false;
}
// Test duplicate sheet names:
if( TestDuplicateSheetNames(false ) > 0 )
if( TestDuplicateSheetNames( false ) > 0 )
{
if( !IsOK( this, _( "Error: duplicate sheet names. Continue?" ) ) )
return;
if( !IsOK( NULL, _( "Error: duplicate sheet names. Continue?" ) ) )
return false;
}
/* Cleanup the entire hierarchy */
@ -516,35 +542,10 @@ void WinEDA_NetlistFrame::GenNetlist( wxCommandEvent& event )
screen->ClearUndoRedoList();
}
m_Parent->BuildNetListBase();
if( CurrPage->m_CommandStringCtrl )
g_NetListerCommandLine = CurrPage->m_CommandStringCtrl->GetValue();
else
g_NetListerCommandLine.Empty();
BuildNetListBase();
bool success = WriteNetListFile( aFormat, aFullFileName, g_OptNetListUseNames );
switch( m_Parent->m_NetlistFormat )
{
default:
WriteNetList( m_Parent, dlg.GetPath(), TRUE );
break;
case NET_TYPE_CADSTAR:
case NET_TYPE_ORCADPCB2:
WriteNetList( m_Parent, dlg.GetPath(), FALSE );
case NET_TYPE_SPICE:
g_OptNetListUseNames = TRUE; // Used for pspice, gnucap
if( m_UseNetNamesInNetlist->GetSelection() == 1 )
g_OptNetListUseNames = FALSE;
WriteNetList( m_Parent, dlg.GetPath(), g_OptNetListUseNames );
break;
}
m_Parent->m_NetlistFormat = netformat_tmp;
WriteCurrentNetlistSetup();
EndModal( NET_OK );
return success;
}
@ -561,7 +562,7 @@ void WinEDA_NetlistFrame::RunSimulator( wxCommandEvent& event )
/***********************************************************/
{
wxFileName fn;
wxString ExecFile, CommandLine;
wxString ExecFile, CommandLine;
g_SimulatorCommandLine =
m_PanelNetType[PANELSPICE]->m_CommandStringCtrl->GetValue();
@ -576,6 +577,13 @@ void WinEDA_NetlistFrame::RunSimulator( wxCommandEvent& event )
fn.SetExt( wxT( "cir" ) );
CommandLine += wxT( " \"" ) + fn.GetFullPath() + wxT( "\"" );
g_OptNetListUseNames = m_UseNetNamesInNetlist->GetSelection() == 0;
EDA_NoteBookPage* CurrPage;
CurrPage = (EDA_NoteBookPage*) m_NoteBook->GetCurrentPage();
if( ! m_Parent->CreateNetlist( CurrPage->m_IdNetType, fn.GetFullPath(), g_OptNetListUseNames ) )
return;
ExecuteFile( this, ExecFile, CommandLine );
}
@ -588,7 +596,7 @@ void WinEDA_NetlistFrame::WriteCurrentNetlistSetup( void )
* Write the current netlist options setup in the configuration
*/
{
wxString msg, Command;
wxString msg, Command;
wxConfig* config = wxGetApp().m_EDA_Config;
NetlistUpdateOpt();

View File

@ -171,11 +171,6 @@ EDA_Colors ReturnLayerColor( int Layer );
void DisplayColorSetupFrame( WinEDA_DrawFrame* parent,
const wxPoint& pos );
/*************/
/* EELOAD.CPP */
/*************/
int CountCmpNumber();
/***************/
/* EECONFIG.CPP */
/***************/

View File

@ -563,8 +563,6 @@ void WinEDA_SchematicFrame::OnUpdateSelectCursor( wxUpdateUIEvent& event )
void WinEDA_SchematicFrame::OnUpdateUnits( wxUpdateUIEvent& event )
{
bool is_metric = ( g_UserUnit == MILLIMETRES ) ? true : false;
m_OptionsToolBar->ToggleTool( ID_TB_OPTIONS_SELECT_UNIT_MM, g_UserUnit == MILLIMETRES );
m_OptionsToolBar->ToggleTool( ID_TB_OPTIONS_SELECT_UNIT_INCH, g_UserUnit == INCHES );
DisplayUnitsMsg();

View File

@ -39,17 +39,16 @@ class wxFindReplaceData;
/* enum used in RotationMiroir() */
enum fl_rot_cmp
{
CMP_NORMAL, // Normal orientation, no rotation or mirror
CMP_ROTATE_CLOCKWISE, // Rotate -90
CMP_ROTATE_COUNTERCLOCKWISE, // Rotate +90
CMP_ORIENT_0, // No rotation and no mirror id CMP_NORMAL
CMP_ORIENT_90, // Rotate 90, no mirror
CMP_ORIENT_180, // Rotate 180, no mirror
CMP_ORIENT_270, // Rotate -90, no mirror
CMP_MIRROR_X = 0x100, // Mirror around X axis
CMP_MIRROR_Y = 0x200 // Mirror around Y axis
enum fl_rot_cmp {
CMP_NORMAL, // Normal orientation, no rotation or mirror
CMP_ROTATE_CLOCKWISE, // Rotate -90
CMP_ROTATE_COUNTERCLOCKWISE, // Rotate +90
CMP_ORIENT_0, // No rotation and no mirror id CMP_NORMAL
CMP_ORIENT_90, // Rotate 90, no mirror
CMP_ORIENT_180, // Rotate 180, no mirror
CMP_ORIENT_270, // Rotate -90, no mirror
CMP_MIRROR_X = 0x100, // Mirror around X axis
CMP_MIRROR_Y = 0x200 // Mirror around Y axis
};
@ -61,8 +60,8 @@ class WinEDA_SchematicFrame : public WinEDA_DrawFrame
public:
WinEDAChoiceBox* m_SelPartBox;
SCH_SHEET_PATH* m_CurrentSheet; ///< which sheet we are presently working on.
int m_Multiflag;
int m_NetlistFormat;
int m_Multiflag;
int m_NetlistFormat;
bool m_ShowAllPins;
wxPoint m_OldPos;
WinEDA_LibeditFrame* m_LibeditFrame;
@ -76,7 +75,7 @@ protected:
private:
wxString m_DefaultSchematicFileName;
SCH_FIELD* m_CurrentField;
int m_TextFieldSize;
int m_TextFieldSize;
bool m_ShowGrid;
PARAM_CFG_ARRAY m_projectFileParams;
PARAM_CFG_ARRAY m_configSettings;
@ -102,15 +101,15 @@ public:
~WinEDA_SchematicFrame();
void OnCloseWindow( wxCloseEvent& Event );
void Process_Special_Functions( wxCommandEvent& event );
void Process_Config( wxCommandEvent& event );
void OnCloseWindow( wxCloseEvent& Event );
void Process_Special_Functions( wxCommandEvent& event );
void Process_Config( wxCommandEvent& event );
void GeneralControle( wxDC* DC, wxPoint MousePositionInPixels );
void GeneralControle( wxDC* DC, wxPoint MousePositionInPixels );
PARAM_CFG_ARRAY& GetProjectFileParameters( void );
void SaveProjectFile( wxWindow* displayframe, bool askoverwrite = true );
bool LoadProjectFile( const wxString& CfgFileName, bool ForceRereadConfig );
void SaveProjectFile( wxWindow* displayframe, bool askoverwrite = true );
bool LoadProjectFile( const wxString& CfgFileName, bool ForceRereadConfig );
/**
* Function GetDefaultFieldName
@ -118,7 +117,7 @@ public:
* These fieldnames are not modifiable, but template fieldnames are.
* @param aFieldNdx The field number index
*/
static wxString GetDefaultFieldName( int aFieldNdx );
static wxString GetDefaultFieldName( int aFieldNdx );
/**
@ -137,6 +136,7 @@ public:
return m_TemplateFieldNames.AddTemplateFieldName( aFieldName );
}
/**
* Function GetTemplateFieldName
* returns a template fieldnames list for read only access.
@ -146,6 +146,7 @@ public:
return m_TemplateFieldNames.GetTemplateFieldNames();
}
/**
* Function DeleteAllTemplateFieldNames
* removes all template fieldnames.
@ -155,34 +156,36 @@ public:
m_TemplateFieldNames.DeleteAllTemplateFieldNames();
}
PARAM_CFG_ARRAY& GetConfigurationSettings( void );
void LoadSettings();
void SaveSettings();
void LoadSettings();
void SaveSettings();
void RedrawActiveWindow( wxDC* DC, bool EraseBg );
void RedrawActiveWindow( wxDC* DC, bool EraseBg );
void CreateScreens();
void ReCreateHToolbar();
void ReCreateVToolbar();
void ReCreateOptToolbar();
void ReCreateMenuBar();
void OnHotKey( wxDC* DC,
int hotkey,
EDA_BaseStruct* DrawStruct );
void CreateScreens();
void ReCreateHToolbar();
void ReCreateVToolbar();
void ReCreateOptToolbar();
void ReCreateMenuBar();
void OnHotKey( wxDC* DC,
int hotkey,
EDA_BaseStruct* DrawStruct );
SCH_FIELD* GetCurrentField() { return m_CurrentField; }
SCH_FIELD* GetCurrentField() { return m_CurrentField; }
void SetCurrentField( SCH_FIELD* aCurrentField )
{
m_CurrentField = aCurrentField;
}
/** Function OnModify()
* Must be called after a schematic change
* in order to set the "modify" flag of the current screen
* and update the date in frame reference
*/
void OnModify( );
void OnModify();
SCH_SHEET_PATH* GetSheet();
@ -202,7 +205,7 @@ public:
SCH_ITEM* SchematicGeneralLocateAndDisplay( bool IncludePin = TRUE );
SCH_ITEM* SchematicGeneralLocateAndDisplay( const wxPoint& refpoint,
bool IncludePin );
bool IncludePin );
/**
* Function FillFootprintFieldForAllInstancesofComponent
@ -219,22 +222,51 @@ public:
* components) the search is not stopped when a reference is found
* (all instances must be found).
*/
bool FillFootprintFieldForAllInstancesofComponent( const wxString& aReference,
const wxString& aFootPrint,
bool aSetVisible );
bool FillFootprintFieldForAllInstancesofComponent( const wxString& aReference,
const wxString& aFootPrint,
bool aSetVisible );
SCH_ITEM* FindComponentAndItem( const wxString& component_reference,
bool Find_in_hierarchy,
int SearchType,
const wxString& text_to_find,
bool mouseWarp );
SCH_ITEM* FindComponentAndItem( const wxString& component_reference,
bool Find_in_hierarchy,
int SearchType,
const wxString& text_to_find,
bool mouseWarp );
/* Cross probing with pcbnew */
void SendMessageToPCBNEW( EDA_BaseStruct* objectToSync,
SCH_COMPONENT* LibItem );
void SendMessageToPCBNEW( EDA_BaseStruct* objectToSync,
SCH_COMPONENT* LibItem );
/* netlist generation */
void BuildNetListBase();
void BuildNetListBase();
/** Function CreateNetlist
* Create a netlist file:
* build netlist info
* test issues
* create file
* @param aFormat = netlist format (NET_TYPE_PCBNEW ...)
* @param aFullFileName = full netlist file name
* @param aUse_netnames = bool. if true, use net names from labels in schematic
* if false, use net numbers (net codes)
* bool aUse_netnames is used only for Spice netlist
* @return true if success.
*/
bool CreateNetlist( int aFormat,
const wxString& aFullFileName,
bool aUse_netnames );
/** function WriteNetListFile
* Create the netlist file. Netlist info must be existing
* @param aFormat = netlist format (NET_TYPE_PCBNEW ...)
* @param aFullFileName = full netlist file name
* @param aUse_netnames = bool. if true, use net names from labels in schematic
* if false, use net numbers (net codes)
* bool aUse_netnames is used only for Spice netlist
* @return true if success.
*/
bool WriteNetListFile( int aFormat,
const wxString& aFullFileName,
bool aUse_netnames );
/**
* Function DeleteAnnotation
@ -244,11 +276,11 @@ public:
* sheet only
* @param aRedraw : true to refresh display
*/
void DeleteAnnotation( bool aCurrentSheetOnly, bool aRedraw );
void DeleteAnnotation( bool aCurrentSheetOnly, bool aRedraw );
// Functions used for hierarchy handling
void InstallPreviousSheet();
void InstallNextScreen( SCH_SHEET* Sheet );
void InstallPreviousSheet();
void InstallNextScreen( SCH_SHEET* Sheet );
/** Function GetUniqueFilenameForCurrentSheet
* @return a filename that can be used in plot and print functions
@ -261,7 +293,7 @@ public:
* and has no extension.
* However if filename is too long name is <sheet filename>-<sheet number>
*/
wxString GetUniqueFilenameForCurrentSheet();
wxString GetUniqueFilenameForCurrentSheet();
/**
* Function SetSheetNumberAndCount
@ -269,7 +301,7 @@ public:
* must be called after a delete or add sheet command, and when entering
* a sheet
*/
void SetSheetNumberAndCount();
void SetSheetNumberAndCount();
/** Virtual function PrintPage
* used to print a page
@ -281,27 +313,30 @@ public:
* @param aData = a pointer on an auxiliary data (not always used, NULL if not used)
*/
virtual void PrintPage( wxDC* aDC, bool aPrint_Sheet_Ref,
int aPrintMask, bool aPrintMirrorMode,
void * aData = NULL);
int aPrintMask, bool aPrintMirrorMode,
void* aData = NULL );
/**
* Show the print dialog
*/
void OnPrint( wxCommandEvent& event );
void OnPrint( wxCommandEvent& event );
wxPageSetupDialogData& GetPageSetupData() { return m_pageSetupData; }
void SetPreviewPosition( const wxPoint& aPoint ) { m_previewPosition = aPoint; }
void SetPreviewSize( const wxSize& aSize ) { m_previewSize = aSize; }
const wxPoint& GetPreviewPosition() { return m_previewPosition; }
const wxSize& GetPreviewSize() { return m_previewSize; }
const wxPoint& GetPreviewPosition() { return m_previewPosition; }
const wxSize& GetPreviewSize() { return m_previewSize; }
void SetPrintDialogPosition( const wxPoint& aPoint )
{
m_printDialogPosition = aPoint;
}
void SetPrintDialogSize( const wxSize& aSize ) { m_printDialogSize = aSize; }
const wxPoint& GetPrintDialogPosition() { return m_printDialogPosition; }
const wxSize& GetPrintDialogSize() { return m_printDialogSize; }
const wxPoint& GetPrintDialogPosition() { return m_printDialogPosition; }
const wxSize& GetPrintDialogSize() { return m_printDialogSize; }
bool GetPrintMonochrome() { return m_printMonochrome; }
void SetPrintMonochrome( bool aMonochrome ) { m_printMonochrome = aMonochrome; }
@ -309,172 +344,172 @@ public:
void SetShowSheetReference( bool aShow ) { m_showSheetReference = aShow; }
// Plot functions:
void ToPlot_PS( wxCommandEvent& event );
void ToPlot_HPGL( wxCommandEvent& event );
void ToPlot_DXF( wxCommandEvent& event );
void ToPostProcess( wxCommandEvent& event );
void ToPlot_PS( wxCommandEvent& event );
void ToPlot_HPGL( wxCommandEvent& event );
void ToPlot_DXF( wxCommandEvent& event );
void ToPostProcess( wxCommandEvent& event );
// read and save files
void Save_File( wxCommandEvent& event );
void SaveProject();
bool LoadOneEEProject( const wxString& FileName, bool IsNew );
bool LoadOneEEFile( SCH_SCREEN* screen,
const wxString& FullFileName );
bool ReadInputStuffFile();
void Save_File( wxCommandEvent& event );
void SaveProject();
bool LoadOneEEProject( const wxString& FileName, bool IsNew );
bool LoadOneEEFile( SCH_SCREEN* screen,
const wxString& FullFileName );
bool ReadInputStuffFile();
/**
* Function ProcessStuffFile
* gets footprint info from each line in the Stuff File by Ref Desg
* @param aFilename The file to read from.
* @param aSetFielsAttributeToVisible = true to set the footprint field
flag to visible
* flag to visible
* @return bool - true if success, else true.
*/
bool ProcessStuffFile( FILE* aFilename,
bool aSetFielsAttributeToVisible );
bool ProcessStuffFile( FILE* aFilename,
bool aSetFielsAttributeToVisible );
bool SaveEEFile( SCH_SCREEN* screen, int FileSave );
bool SaveEEFile( SCH_SCREEN* screen, int FileSave );
// General search:
private:
void Process_Move_Item( SCH_ITEM* DrawStruct, wxDC* DC );
void OnExit( wxCommandEvent& event );
void OnAnnotate( wxCommandEvent& event );
void OnErc( wxCommandEvent& event );
void OnCreateNetlist( wxCommandEvent& event );
void OnCreateBillOfMaterials( wxCommandEvent& event );
void OnFindItems( wxCommandEvent& event );
void OnFindDialogClose( wxFindDialogEvent& event );
void OnFindDrcMarker( wxFindDialogEvent& event );
void OnFindCompnentInLib( wxFindDialogEvent& event );
void OnFindSchematicItem( wxFindDialogEvent& event );
void OnLoadFile( wxCommandEvent& event );
void OnLoadStuffFile( wxCommandEvent& event );
void OnNewProject( wxCommandEvent& event );
void OnLoadProject( wxCommandEvent& event );
void OnOpenPcbnew( wxCommandEvent& event );
void OnOpenCvpcb( wxCommandEvent& event );
void OnOpenLibraryViewer( wxCommandEvent& event );
void OnOpenLibraryEditor( wxCommandEvent& event );
void OnSetOptions( wxCommandEvent& event );
void Process_Move_Item( SCH_ITEM* DrawStruct, wxDC* DC );
void OnExit( wxCommandEvent& event );
void OnAnnotate( wxCommandEvent& event );
void OnErc( wxCommandEvent& event );
void OnCreateNetlist( wxCommandEvent& event );
void OnCreateBillOfMaterials( wxCommandEvent& event );
void OnFindItems( wxCommandEvent& event );
void OnFindDialogClose( wxFindDialogEvent& event );
void OnFindDrcMarker( wxFindDialogEvent& event );
void OnFindCompnentInLib( wxFindDialogEvent& event );
void OnFindSchematicItem( wxFindDialogEvent& event );
void OnLoadFile( wxCommandEvent& event );
void OnLoadStuffFile( wxCommandEvent& event );
void OnNewProject( wxCommandEvent& event );
void OnLoadProject( wxCommandEvent& event );
void OnOpenPcbnew( wxCommandEvent& event );
void OnOpenCvpcb( wxCommandEvent& event );
void OnOpenLibraryViewer( wxCommandEvent& event );
void OnOpenLibraryEditor( wxCommandEvent& event );
void OnSetOptions( wxCommandEvent& event );
/* edition events functions */
void OnCopySchematicItemRequest( wxCommandEvent& event );
void OnCopySchematicItemRequest( wxCommandEvent& event );
/* User interface update event handlers. */
void OnUpdateBlockSelected( wxUpdateUIEvent& event );
void OnUpdatePaste( wxUpdateUIEvent& event );
void OnUpdateSchematicUndo( wxUpdateUIEvent& event );
void OnUpdateSchematicRedo( wxUpdateUIEvent& event );
void OnUpdateGrid( wxUpdateUIEvent& event );
void OnUpdateUnits( wxUpdateUIEvent& event );
void OnUpdateSelectCursor( wxUpdateUIEvent& event );
void OnUpdateHiddenPins( wxUpdateUIEvent& event );
void OnUpdateBusOrientation( wxUpdateUIEvent& event );
void OnUpdateBlockSelected( wxUpdateUIEvent& event );
void OnUpdatePaste( wxUpdateUIEvent& event );
void OnUpdateSchematicUndo( wxUpdateUIEvent& event );
void OnUpdateSchematicRedo( wxUpdateUIEvent& event );
void OnUpdateGrid( wxUpdateUIEvent& event );
void OnUpdateUnits( wxUpdateUIEvent& event );
void OnUpdateSelectCursor( wxUpdateUIEvent& event );
void OnUpdateHiddenPins( wxUpdateUIEvent& event );
void OnUpdateBusOrientation( wxUpdateUIEvent& event );
/** function SetLanguage
* called on a language menu selection
*/
void SetLanguage( wxCommandEvent& event );
void SetLanguage( wxCommandEvent& event );
// Bus Entry
SCH_BUS_ENTRY* CreateBusEntry( wxDC* DC, int entry_type );
void SetBusEntryShape( wxDC* DC,
SCH_BUS_ENTRY* BusEntry,
int entry_type );
int GetBusEntryShape( SCH_BUS_ENTRY* BusEntry );
void StartMoveBusEntry( SCH_BUS_ENTRY* DrawLibItem,
wxDC* DC );
SCH_BUS_ENTRY* CreateBusEntry( wxDC* DC, int entry_type );
void SetBusEntryShape( wxDC* DC,
SCH_BUS_ENTRY* BusEntry,
int entry_type );
int GetBusEntryShape( SCH_BUS_ENTRY* BusEntry );
void StartMoveBusEntry( SCH_BUS_ENTRY* DrawLibItem,
wxDC* DC );
// NoConnect
SCH_NO_CONNECT* CreateNewNoConnectStruct( wxDC* DC );
SCH_NO_CONNECT* CreateNewNoConnectStruct( wxDC* DC );
// Junction
SCH_JUNCTION* CreateNewJunctionStruct( wxDC* DC,
const wxPoint& pos,
bool PutInUndoList = FALSE );
SCH_JUNCTION* CreateNewJunctionStruct( wxDC* DC,
const wxPoint& pos,
bool PutInUndoList = FALSE );
// Text ,label, glabel
SCH_TEXT* CreateNewText( wxDC* DC, int type );
void EditSchematicText( SCH_TEXT* TextStruct );
void ChangeTextOrient( SCH_TEXT* TextStruct, wxDC* DC );
void StartMoveTexte( SCH_TEXT* TextStruct, wxDC* DC );
void ConvertTextType( SCH_TEXT* Text, wxDC* DC, int newtype );
SCH_TEXT* CreateNewText( wxDC* DC, int type );
void EditSchematicText( SCH_TEXT* TextStruct );
void ChangeTextOrient( SCH_TEXT* TextStruct, wxDC* DC );
void StartMoveTexte( SCH_TEXT* TextStruct, wxDC* DC );
void ConvertTextType( SCH_TEXT* Text, wxDC* DC, int newtype );
// Wire, Bus
void BeginSegment( wxDC* DC, int type );
void EndSegment( wxDC* DC );
void DeleteCurrentSegment( wxDC* DC );
void DeleteConnection( bool DeleteFullConnection );
void BeginSegment( wxDC* DC, int type );
void EndSegment( wxDC* DC );
void DeleteCurrentSegment( wxDC* DC );
void DeleteConnection( bool DeleteFullConnection );
// graphic lines
void Delete_Segment_Edge( DRAWSEGMENT* Segment, wxDC* DC );
void Drawing_SetNewWidth( DRAWSEGMENT* DrawSegm, wxDC* DC );
void Delete_Drawings_All_Layer( DRAWSEGMENT* Segment, wxDC* DC );
DRAWSEGMENT* Begin_Edge( DRAWSEGMENT* Segment, wxDC* DC );
void Delete_Segment_Edge( DRAWSEGMENT* Segment, wxDC* DC );
void Drawing_SetNewWidth( DRAWSEGMENT* DrawSegm, wxDC* DC );
void Delete_Drawings_All_Layer( DRAWSEGMENT* Segment, wxDC* DC );
DRAWSEGMENT* Begin_Edge( DRAWSEGMENT* Segment, wxDC* DC );
// Hierarchical Sheet & PinSheet
void InstallHierarchyFrame( wxDC* DC, wxPoint& pos );
SCH_SHEET* CreateSheet( wxDC* DC );
void ReSizeSheet( SCH_SHEET* Sheet, wxDC* DC );
void InstallHierarchyFrame( wxDC* DC, wxPoint& pos );
SCH_SHEET* CreateSheet( wxDC* DC );
void ReSizeSheet( SCH_SHEET* Sheet, wxDC* DC );
/**
* Use the component viewer to select component to import into schematic.
*/
wxString SelectFromLibBrowser( void );
wxString SelectFromLibBrowser( void );
public:
bool EditSheet( SCH_SHEET* Sheet, wxDC* DC );
bool EditSheet( SCH_SHEET* Sheet, wxDC* DC );
/** Function UpdateSheetNumberAndDate
* Set a sheet number, the sheet count for sheets in the whole schematic
* and update the date in all screens
*/
void UpdateSheetNumberAndDate();
void UpdateSheetNumberAndDate();
private:
void StartMoveSheet( SCH_SHEET* sheet, wxDC* DC );
SCH_SHEET_PIN* Create_PinSheet( SCH_SHEET* Sheet, wxDC* DC );
int Edit_PinSheet( SCH_SHEET_PIN* SheetLabel, wxDC* DC );
void StartMove_PinSheet( SCH_SHEET_PIN* SheetLabel,
wxDC* DC );
void Place_PinSheet( SCH_SHEET_PIN* SheetLabel,
wxDC* DC );
SCH_SHEET_PIN* Import_PinSheet( SCH_SHEET* Sheet, wxDC* DC );
void StartMoveSheet( SCH_SHEET* sheet, wxDC* DC );
SCH_SHEET_PIN* Create_PinSheet( SCH_SHEET* Sheet, wxDC* DC );
int Edit_PinSheet( SCH_SHEET_PIN* SheetLabel, wxDC* DC );
void StartMove_PinSheet( SCH_SHEET_PIN* SheetLabel,
wxDC* DC );
void Place_PinSheet( SCH_SHEET_PIN* SheetLabel,
wxDC* DC );
SCH_SHEET_PIN* Import_PinSheet( SCH_SHEET* Sheet, wxDC* DC );
public:
void DeleteSheetLabel( bool aRedraw,
SCH_SHEET_PIN* aSheetLabelToDel );
void DeleteSheetLabel( bool aRedraw,
SCH_SHEET_PIN* aSheetLabelToDel );
private:
// Component
SCH_COMPONENT* Load_Component( wxDC* DC,
const wxString& libname,
wxArrayString& List,
bool UseLibBrowser );
void StartMovePart( SCH_COMPONENT* DrawLibItem, wxDC* DC );
SCH_COMPONENT* Load_Component( wxDC* DC,
const wxString& libname,
wxArrayString& List,
bool UseLibBrowser );
void StartMovePart( SCH_COMPONENT* DrawLibItem, wxDC* DC );
public:
void CmpRotationMiroir( SCH_COMPONENT* DrawComponent,
wxDC* DC, int type_rotate );
void CmpRotationMiroir( SCH_COMPONENT* DrawComponent,
wxDC* DC, int type_rotate );
private:
void SelPartUnit( SCH_COMPONENT* DrawComponent,
int unit, wxDC* DC );
void ConvertPart( SCH_COMPONENT* DrawComponent, wxDC* DC );
void SetInitCmp( SCH_COMPONENT* DrawComponent, wxDC* DC );
void EditComponentReference( SCH_COMPONENT* DrawLibItem,
wxDC* DC );
void EditComponentValue( SCH_COMPONENT* DrawLibItem, wxDC* DC );
void EditComponentFootprint( SCH_COMPONENT* DrawLibItem,
wxDC* DC );
void StartMoveCmpField( SCH_FIELD* Field, wxDC* DC );
void EditCmpFieldText( SCH_FIELD* Field, wxDC* DC );
void RotateCmpField( SCH_FIELD* Field, wxDC* DC );
void SelPartUnit( SCH_COMPONENT* DrawComponent,
int unit, wxDC* DC );
void ConvertPart( SCH_COMPONENT* DrawComponent, wxDC* DC );
void SetInitCmp( SCH_COMPONENT* DrawComponent, wxDC* DC );
void EditComponentReference( SCH_COMPONENT* DrawLibItem,
wxDC* DC );
void EditComponentValue( SCH_COMPONENT* DrawLibItem, wxDC* DC );
void EditComponentFootprint( SCH_COMPONENT* DrawLibItem,
wxDC* DC );
void StartMoveCmpField( SCH_FIELD* Field, wxDC* DC );
void EditCmpFieldText( SCH_FIELD* Field, wxDC* DC );
void RotateCmpField( SCH_FIELD* Field, wxDC* DC );
void PasteListOfItems( wxDC* DC );
void PasteListOfItems( wxDC* DC );
/* Undo - redo */
public:
@ -488,8 +523,8 @@ public:
* for commands like move
*/
void SaveCopyInUndoList( SCH_ITEM* aItemToCopy,
UndoRedoOpType aTypeCommand,
const wxPoint& aTransformPoint = wxPoint( 0, 0 ) );
UndoRedoOpType aTypeCommand,
const wxPoint& aTransformPoint = wxPoint( 0, 0 ) );
/** Function SaveCopyInUndoList (overloaded).
* Creates a new entry in undo list of commands.
@ -500,10 +535,11 @@ public:
* for commands like move
*/
void SaveCopyInUndoList( PICKED_ITEMS_LIST& aItemsList,
UndoRedoOpType aTypeCommand,
const wxPoint& aTransformPoint = wxPoint( 0, 0 ) );
UndoRedoOpType aTypeCommand,
const wxPoint& aTransformPoint = wxPoint( 0, 0 ) );
private:
/** Function PutDataInPreviousState()
* Used in undo or redo command.
* Put data pointed by List in the previous state, i.e. the state
@ -512,7 +548,7 @@ private:
* undo/redo
* @param aRedoCommand = a bool: true for redo, false for undo
*/
void PutDataInPreviousState( PICKED_ITEMS_LIST* aList, bool aRedoCommand );
void PutDataInPreviousState( PICKED_ITEMS_LIST* aList, bool aRedoCommand );
/** Function GetSchematicFromRedoList
* Redo the last edition:
@ -520,7 +556,7 @@ private:
* - Get an old version of the schematic from Redo list
* @return none
*/
void GetSchematicFromRedoList(wxCommandEvent& event);
void GetSchematicFromRedoList( wxCommandEvent& event );
/** Function GetSchematicFromUndoList
* Undo the last edition:
@ -528,25 +564,26 @@ private:
* - Get an old version of the schematic from Undo list
* @return none
*/
void GetSchematicFromUndoList(wxCommandEvent& event);
void GetSchematicFromUndoList( wxCommandEvent& event );
public:
void Key( wxDC* DC, int hotkey, EDA_BaseStruct* DrawStruct );
void Key( wxDC* DC, int hotkey, EDA_BaseStruct* DrawStruct );
/* Block operations. */
int ReturnBlockCommand( int key );
void InitBlockPasteInfos();
void HandleBlockPlace( wxDC* DC );
int HandleBlockEnd( wxDC* DC );
void HandleBlockEndByPopUp( int Command, wxDC* DC );
int ReturnBlockCommand( int key );
void InitBlockPasteInfos();
void HandleBlockPlace( wxDC* DC );
int HandleBlockEnd( wxDC* DC );
void HandleBlockEndByPopUp( int Command, wxDC* DC );
void RepeatDrawItem( wxDC* DC );
void RepeatDrawItem( wxDC* DC );
void TestDanglingEnds( SCH_ITEM* DrawList, wxDC* DC );
LIB_PIN* LocatePinEnd( SCH_ITEM* DrawList, const wxPoint& pos );
void TestDanglingEnds( SCH_ITEM* DrawList, wxDC* DC );
LIB_PIN* LocatePinEnd( SCH_ITEM* DrawList, const wxPoint& pos );
// ERC:
/**
* Function CheckAnnotate
* Check errors relatives to annotation:
@ -561,12 +598,12 @@ public:
* @param aOneSheetOnly : true = search is made only in the current sheet
* false = search in whole hierarchy (usual search).
*/
int CheckAnnotate( wxArrayString * aMessageList, bool aOneSheetOnly );
int CheckAnnotate( wxArrayString* aMessageList, bool aOneSheetOnly );
/**
* Load component libraries defined in project file.
*/
void LoadLibraries( void );
void LoadLibraries( void );
DECLARE_EVENT_TABLE()

View File

@ -215,8 +215,8 @@ BEGIN_EVENT_TABLE( WinEDA_PcbFrame, WinEDA_BasePcbFrame )
EVT_TOOL_RANGE( ID_PCB_MUWAVE_START_CMD, ID_PCB_MUWAVE_END_CMD,
WinEDA_PcbFrame::ProcessMuWaveFunctions )
EVT_TOOL( ID_PCB_PLACE_GRID_COORD_BUTT,
WinEDA_PcbFrame::Process_Special_Functions )
EVT_TOOL( ID_PCB_PLACE_GRID_COORD_BUTT,
WinEDA_PcbFrame::Process_Special_Functions )
EVT_TOOL_RCLICKED( ID_TRACK_BUTT, WinEDA_PcbFrame::ToolOnRightClick )
EVT_TOOL_RCLICKED( ID_PCB_CIRCLE_BUTT, WinEDA_PcbFrame::ToolOnRightClick )

View File

@ -14,25 +14,25 @@
#include "dialog_set_grid_base.h"
class DIALOG_SET_GRID: public DIALOG_SET_GRID_BASE
class DIALOG_SET_GRID : public DIALOG_SET_GRID_BASE
{
public:
int m_internalUnits;
public:
int m_internalUnits;
public:
DIALOG_SET_GRID( wxWindow* parent, const wxPoint& pos );
~DIALOG_SET_GRID() { }
void SetGridSize( const wxRealPoint& grid );
wxRealPoint GetGridSize();
void SetGridUnits( int units );
int GetGridUnits();
void SetGridOrigin( const wxPoint& grid );
wxPoint GetGridOrigin();
public:
DIALOG_SET_GRID( wxWindow* parent, const wxPoint& pos );
~DIALOG_SET_GRID() { }
void SetGridSize( const wxRealPoint& grid );
wxRealPoint GetGridSize();
void SetGridUnits( int units );
int GetGridUnits();
void SetGridOrigin( const wxPoint& grid );
wxPoint GetGridOrigin();
private:
void OnResetGridOrgClick( wxCommandEvent& event );
void OnCancelClick( wxCommandEvent& event );
void OnOkClick( wxCommandEvent& event );
private:
void OnResetGridOrgClick( wxCommandEvent& event );
void OnCancelClick( wxCommandEvent& event );
void OnOkClick( wxCommandEvent& event );
};
void WinEDA_BasePcbFrame::InstallGridFrame( const wxPoint& pos )
@ -47,9 +47,9 @@ void WinEDA_BasePcbFrame::InstallGridFrame( const wxPoint& pos )
if( dlg.ShowModal() == wxID_CANCEL )
return;
m_UserGridSize = dlg.GetGridSize();
m_UserGridUnit = (UserUnitType)dlg.GetGridUnits();
GetScreen()->m_GridOrigin = dlg.GetGridOrigin( );
m_UserGridSize = dlg.GetGridSize();
m_UserGridUnit = (UserUnitType) dlg.GetGridUnits();
GetScreen()->m_GridOrigin = dlg.GetGridOrigin();
GetScreen()->AddGrid( m_UserGridSize, m_UserGridUnit, ID_POPUP_GRID_USER );
@ -62,14 +62,16 @@ void WinEDA_BasePcbFrame::InstallGridFrame( const wxPoint& pos )
}
DIALOG_SET_GRID::DIALOG_SET_GRID( wxWindow* parent, const wxPoint& pos )
: DIALOG_SET_GRID_BASE( parent )
DIALOG_SET_GRID::DIALOG_SET_GRID( wxWindow* parent, const wxPoint& pos ) :
DIALOG_SET_GRID_BASE( parent )
{
SetFocus();
m_TextPosXUnits->SetLabel( GetUnitsLabel( g_UserUnit ) );
m_TextPosYUnits->SetLabel( GetUnitsLabel( g_UserUnit ) );
GetSizer()->SetSizeHints( this );
Centre( );
Centre();
}
@ -103,47 +105,51 @@ void DIALOG_SET_GRID::SetGridUnits( int units )
m_UnitGrid->SetSelection( 1 );
}
int DIALOG_SET_GRID::GetGridUnits()
{
return m_UnitGrid->GetSelection();
}
wxPoint DIALOG_SET_GRID::GetGridOrigin()
{
wxPoint grid;
/* TODO: Some error checking here would be a good thing. */
grid.x = ReturnValueFromTextCtrl( *m_GridOriginXCtrl, m_internalUnits );
grid.y = ReturnValueFromTextCtrl( *m_GridOriginYCtrl, m_internalUnits );
grid.x = ReturnValueFromTextCtrl( *m_GridOriginXCtrl, m_internalUnits );
grid.y = ReturnValueFromTextCtrl( *m_GridOriginYCtrl, m_internalUnits );
return grid;
}
void DIALOG_SET_GRID::SetGridOrigin( const wxPoint& grid )
{
wxString msg;
PutValueInLocalUnits( *m_GridOriginXCtrl, grid.x, m_internalUnits );
PutValueInLocalUnits( *m_GridOriginYCtrl, grid.y, m_internalUnits );
}
void DIALOG_SET_GRID::OnResetGridOrgClick(wxCommandEvent& event)
void DIALOG_SET_GRID::OnResetGridOrgClick( wxCommandEvent& event )
{
wxString msg(_("0") );
m_GridOriginXCtrl->SetValue(msg);
m_GridOriginYCtrl->SetValue(msg);
SetGridOrigin( wxPoint(0,0) );
}
/*****************************************************************/
void DIALOG_SET_GRID::OnCancelClick( wxCommandEvent& event )
/*****************************************************************/
{
EndModal(wxID_CANCEL);
EndModal( wxID_CANCEL );
}
/*************************************************************************/
void DIALOG_SET_GRID::OnOkClick(wxCommandEvent& event)
void DIALOG_SET_GRID::OnOkClick( wxCommandEvent& event )
/*************************************************************************/
{
EndModal(wxID_OK);
EndModal( wxID_OK );
}

View File

@ -18,8 +18,6 @@ void WinEDA_PcbFrame::ToolOnRightClick( wxCommandEvent& event )
int id = event.GetSelection();
wxGetMousePosition( &pos.x, &pos.y );
pos.x -= 400;
pos.y -= 30;
switch( id )
{