From f45c260a00cea5d909caeca947961cc123e53c44 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Wed, 14 Jul 2010 15:24:36 +0200 Subject: [PATCH] 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 naming this net. --- demos/interf_u/image.emp | 453 ------ demos/interf_u/image.mod | 432 ++++++ .../{pspice.cache.lib => pspice-cache.lib} | 201 ++- demos/pspice/pspice.cir | 62 +- demos/pspice/pspice.sch | 789 +++++----- eeschema/dialog_edit_label_base.cpp | 221 ++- eeschema/dialog_edit_label_base.fbp | 1276 ++++++++--------- eeschema/dialog_edit_label_base.h | 136 +- eeschema/eeschema.cpp | 2 +- eeschema/eeschema_config.cpp | 20 +- eeschema/files-io.cpp | 11 - eeschema/general.h | 3 - eeschema/netform.cpp | 89 +- eeschema/netlist.cpp | 60 +- eeschema/netlist.h | 8 +- eeschema/netlist_control.cpp | 138 +- eeschema/protos.h | 5 - eeschema/schframe.cpp | 2 - include/wxEeschemaStruct.h | 399 +++--- pcbnew/pcbframe.cpp | 4 +- pcbnew/set_grid.cpp | 68 +- pcbnew/tool_onrightclick.cpp | 2 - 22 files changed, 2206 insertions(+), 2175 deletions(-) delete mode 100644 demos/interf_u/image.emp create mode 100644 demos/interf_u/image.mod rename demos/pspice/{pspice.cache.lib => pspice-cache.lib} (66%) diff --git a/demos/interf_u/image.emp b/demos/interf_u/image.emp deleted file mode 100644 index 76c436679e..0000000000 --- a/demos/interf_u/image.emp +++ /dev/null @@ -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 diff --git a/demos/interf_u/image.mod b/demos/interf_u/image.mod new file mode 100644 index 0000000000..e4012b5eab --- /dev/null +++ b/demos/interf_u/image.mod @@ -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 diff --git a/demos/pspice/pspice.cache.lib b/demos/pspice/pspice-cache.lib similarity index 66% rename from demos/pspice/pspice.cache.lib rename to demos/pspice/pspice-cache.lib index d8507ab27d..2f6be086e5 100644 --- a/demos/pspice/pspice.cache.lib +++ b/demos/pspice/pspice-cache.lib @@ -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 diff --git a/demos/pspice/pspice.cir b/demos/pspice/pspice.cir index 8c3e6e51ef..8dbfd20384 100644 --- a/demos/pspice/pspice.cir +++ b/demos/pspice/pspice.cir @@ -1,31 +1,31 @@ -* 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 14:49:50 + + +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 > x.txt +.save all + +.end diff --git a/demos/pspice/pspice.sch b/demos/pspice/pspice.sch index 5abb6691dd..f5af9ef9b5 100644 --- a/demos/pspice/pspice.sch +++ b/demos/pspice/pspice.sch @@ -1,391 +1,398 @@ -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 15:02:09 +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 GLabel 4700 2600 0 60 Input ~ 0 +VIN +Wire Wire Line + 4700 2600 5100 2600 +Connection ~ 5100 2600 +Text Label 8650 2100 0 60 ~ 0 +VOUT +Text GLabel 9550 2100 2 60 Input ~ 0 +VOUT +Connection ~ 9200 2100 +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 2100 9200 1500 +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 + 7700 2100 9550 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 > x.txt\n.save all\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 diff --git a/eeschema/dialog_edit_label_base.cpp b/eeschema/dialog_edit_label_base.cpp index 72b08435b6..b373a075bb 100644 --- a/eeschema/dialog_edit_label_base.cpp +++ b/eeschema/dialog_edit_label_base.cpp @@ -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 ); +} diff --git a/eeschema/dialog_edit_label_base.fbp b/eeschema/dialog_edit_label_base.fbp index ef0de52a9b..c77af14713 100644 --- a/eeschema/dialog_edit_label_base.fbp +++ b/eeschema/dialog_edit_label_base.fbp @@ -1,638 +1,638 @@ - - - - - - C++ - 1 - UTF-8 - connect - dialog_edit_label_base - 1000 - none - 1 - dialog_edit_label_base - - . - - 1 - 1 - 0 - - - - - 1 - - - - 0 - wxID_ANY - - - DialogLabelEditor_Base - - 359,347 - wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER - - Text Editor - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bMainSizer - wxVERTICAL - none - - 12 - wxEXPAND|wxLEFT|wxRIGHT|wxTOP - 1 - - 2 - wxBOTH - 1 - 0 - 3 - - m_textControlSizer - wxFLEX_GROWMODE_SPECIFIED - protected - 2 - 3 - - 3 - wxRIGHT - 0 - - - - 1 - - - 0 - wxID_ANY - &Text: - - - m_staticText1 - protected - - - - - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxEXPAND - 1 - - - bSizeText - wxVERTICAL - none - - 3 - wxEXPAND|wxLEFT - 0 - - - - 1 - - - 0 - wxID_VALUESINGLE - - 0 - - m_textLabelSingleLine - protected - - - wxTE_PROCESS_ENTER - - Enter the text to be used within the schematic - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnEnterKey - - - - - - - 3 - wxEXPAND|wxLEFT - 1 - - - - 1 - - - 0 - wxID_VALUEMULTI - - 0 - -1,60 - m_textLabelMultiLine - protected - - - wxTE_MULTILINE|wxTE_PROCESS_ENTER - - Enter the text to be used within the schematic - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnEnterKey - - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - - - 1 - - - 0 - wxID_ANY - &Size: - - - m_SizeTitle - protected - - - - - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxEXPAND - 1 - - - bSizeCtrlSizer - wxHORIZONTAL - none - - 3 - wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT - 0 - - - - 1 - - - 0 - wxID_SIZE - - 0 - - m_TextSize - protected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxLEFT - 0 - - - - 1 - - - 0 - wxID_ANY - units - - - m_staticSizeUnits - protected - - - - - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 12 - wxEXPAND|wxLEFT|wxRIGHT|wxTOP - 0 - - - m_OptionsSizer - wxHORIZONTAL - none - - 3 - wxRIGHT|wxTOP - 1 - - - "Right" "Up" "Left" "Down" - - 1 - - - 0 - wxID_ANY - O&rietation - 1 - - - m_TextOrient - protected - - 0 - - wxRA_SPECIFY_COLS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxLEFT|wxRIGHT|wxTOP - 1 - - - "Normal" "Italic" "Bold" "Bold Italic" - - 1 - - - 0 - wxID_ANY - St&yle - 1 - - - m_TextStyle - protected - - 0 - - wxRA_SPECIFY_COLS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALL|wxLEFT|wxTOP - 1 - - - "Input" "Output" "Bidirectional" "Tri-State" "Passive" - - 1 - - - 0 - wxID_ANY - S&hape - 1 - - - m_TextShape - protected - - 2 - - wxRA_SPECIFY_COLS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 12 - wxALL|wxEXPAND - 0 - - 0 - 1 - 0 - 0 - 0 - 1 - 0 - 0 - - m_sdbSizer1 - protected - - OnCancelClick - - - - OnOkClick - - - - - - - - + + + + + + C++ + 1 + UTF-8 + connect + dialog_edit_label_base + 1000 + none + 1 + dialog_edit_label_base + + . + + 1 + 1 + 0 + + + + + 1 + + + + 0 + wxID_ANY + + + DialogLabelEditor_Base + + 359,347 + wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER + + Text Editor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bMainSizer + wxVERTICAL + none + + 12 + wxEXPAND|wxLEFT|wxRIGHT|wxTOP + 1 + + 2 + wxBOTH + 1 + 0 + 3 + + m_textControlSizer + wxFLEX_GROWMODE_SPECIFIED + protected + 2 + 3 + + 3 + wxRIGHT + 0 + + + + 1 + + + 0 + wxID_ANY + &Text: + + + m_staticText1 + protected + + + + + Enter the text to be used within the schematic + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxEXPAND + 1 + + + bSizeText + wxVERTICAL + none + + 3 + wxEXPAND|wxLEFT + 0 + + + + 1 + + + 0 + wxID_VALUESINGLE + + 0 + + m_textLabelSingleLine + protected + + + wxTE_PROCESS_ENTER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnEnterKey + + + + + + + 3 + wxEXPAND|wxLEFT + 1 + + + + 1 + + + 0 + wxID_VALUEMULTI + + 0 + -1,60 + m_textLabelMultiLine + protected + + + wxTE_MULTILINE|wxTE_PROCESS_ENTER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnEnterKey + + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxRIGHT + 0 + + + + 1 + + + 0 + wxID_ANY + &Size: + + + m_SizeTitle + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxEXPAND + 1 + + + bSizeCtrlSizer + wxHORIZONTAL + none + + 3 + wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT + 0 + + + + 1 + + + 0 + wxID_SIZE + + 0 + + m_TextSize + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + units + + + m_staticSizeUnits + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 12 + wxEXPAND|wxLEFT|wxRIGHT|wxTOP + 0 + + + m_OptionsSizer + wxHORIZONTAL + none + + 3 + wxRIGHT|wxTOP + 1 + + + "Right" "Up" "Left" "Down" + + 1 + + + 0 + wxID_ANY + O&rientation + 1 + + + m_TextOrient + protected + + 0 + + wxRA_SPECIFY_COLS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxLEFT|wxRIGHT|wxTOP + 1 + + + "Normal" "Italic" "Bold" "Bold Italic" + + 1 + + + 0 + wxID_ANY + St&yle + 1 + + + m_TextStyle + protected + + 0 + + wxRA_SPECIFY_COLS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALL|wxLEFT|wxTOP + 1 + + + "Input" "Output" "Bidirectional" "Tri-State" "Passive" + + 1 + + + 0 + wxID_ANY + S&hape + 1 + + + m_TextShape + protected + + 0 + + wxRA_SPECIFY_COLS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 12 + wxALL|wxEXPAND + 0 + + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + + m_sdbSizer1 + protected + + OnCancelClick + + + + OnOkClick + + + + + + + + diff --git a/eeschema/dialog_edit_label_base.h b/eeschema/dialog_edit_label_base.h index 74fe3ac917..914fb24d35 100644 --- a/eeschema/dialog_edit_label_base.h +++ b/eeschema/dialog_edit_label_base.h @@ -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 - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////////////// -/// 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 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + +/////////////////////////////////////////////////////////////////////////////// +/// 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__ diff --git a/eeschema/eeschema.cpp b/eeschema/eeschema.cpp index 8e4af9c905..21b260e8d0 100644 --- a/eeschema/eeschema.cpp +++ b/eeschema/eeschema.cpp @@ -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. diff --git a/eeschema/eeschema_config.cpp b/eeschema/eeschema_config.cpp index 9248fcaca4..e0cb490c0e 100644 --- a/eeschema/eeschema_config.cpp +++ b/eeschema/eeschema_config.cpp @@ -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 ); diff --git a/eeschema/files-io.cpp b/eeschema/files-io.cpp index 02e9958c1a..5cfe5f3454 100644 --- a/eeschema/files-io.cpp +++ b/eeschema/files-io.cpp @@ -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(); -} diff --git a/eeschema/general.h b/eeschema/general.h index dc3a77bca8..487e423c89 100644 --- a/eeschema/general.h +++ b/eeschema/general.h @@ -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 */ diff --git a/eeschema/netform.cpp b/eeschema/netform.cpp index cf23debc86..38e6008b72 100644 --- a/eeschema/netform.cpp +++ b/eeschema/netform.cpp @@ -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; diff --git a/eeschema/netlist.cpp b/eeschema/netlist.cpp index c8dab63ddc..597da6604b 100644 --- a/eeschema/netlist.cpp +++ b/eeschema/netlist.cpp @@ -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; } diff --git a/eeschema/netlist.h b/eeschema/netlist.h index 3bd1b81aec..99204b4cbd 100644 --- a/eeschema/netlist.h +++ b/eeschema/netlist.h @@ -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_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 & aNetObjectslist ); /** Function ReturnUserNetlistTypeName diff --git a/eeschema/netlist_control.cpp b/eeschema/netlist_control.cpp index 67eb8e1f35..c20d7aa7b8 100644 --- a/eeschema/netlist_control.cpp +++ b/eeschema/netlist_control.cpp @@ -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(); diff --git a/eeschema/protos.h b/eeschema/protos.h index 227d8cf858..6ff40707dd 100644 --- a/eeschema/protos.h +++ b/eeschema/protos.h @@ -171,11 +171,6 @@ EDA_Colors ReturnLayerColor( int Layer ); void DisplayColorSetupFrame( WinEDA_DrawFrame* parent, const wxPoint& pos ); -/*************/ -/* EELOAD.CPP */ -/*************/ -int CountCmpNumber(); - /***************/ /* EECONFIG.CPP */ /***************/ diff --git a/eeschema/schframe.cpp b/eeschema/schframe.cpp index 83327e9531..91cc51f93b 100644 --- a/eeschema/schframe.cpp +++ b/eeschema/schframe.cpp @@ -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(); diff --git a/include/wxEeschemaStruct.h b/include/wxEeschemaStruct.h index 1f3f59a561..d6a49ba28e 100644 --- a/include/wxEeschemaStruct.h +++ b/include/wxEeschemaStruct.h @@ -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 - */ - 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() diff --git a/pcbnew/pcbframe.cpp b/pcbnew/pcbframe.cpp index b7e5169f52..b516f82b1d 100644 --- a/pcbnew/pcbframe.cpp +++ b/pcbnew/pcbframe.cpp @@ -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 ) diff --git a/pcbnew/set_grid.cpp b/pcbnew/set_grid.cpp index 8af541aae7..23d6180514 100644 --- a/pcbnew/set_grid.cpp +++ b/pcbnew/set_grid.cpp @@ -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 ); } diff --git a/pcbnew/tool_onrightclick.cpp b/pcbnew/tool_onrightclick.cpp index 88fe48e3c7..d4b8030e8c 100644 --- a/pcbnew/tool_onrightclick.cpp +++ b/pcbnew/tool_onrightclick.cpp @@ -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 ) {