Things I hate with kicad:
- Can't use $PWD as working path for library files. I always have to enter that manually.
- When the file has changed, I can't reload the file. (resizing is not possible afterwards)
- Generating netlist-file from scheme file at commandline not possible.
If this is still the case in later versions, one day, I will write a script to generate the netlist file myself!
Most other trouble I've solved the usual way.
Pcbnew / Kicad
-
- Location: Stockhom, Sweden
- Main keyboard: Symmetric Stagger Board
- Main mouse: Kinzu
- Favorite switch: Topre
- DT Pro Member: -
Last big thing they did was to add ".pretty"-libraries for footprints. That's was a big step forward. Not to mention the move to the new .kicad_mod file type. Now the footprints are actually readable, and fun and easy to modify by hand... The globbed mod-files never made much sense. Most improvements have been to pcbnew, eeschema still needs a lot of work done to it.
Code: Select all
(module MX_plate_visible (layer F.Cu)
(at 0 0)
(fp_text reference SW (at 0 3.7) (layer F.SilkS) (effects (font (size 1.2 1.5) (thickness 0.24))))
(fp_text value VAL** (at 0 3.7) (layer B.SilkS) hide (effects (font (size 1.2 1.5) (thickness 0.24))))
(fp_line (start -6.5 -6.5) (end -4.5 -6.5) (layer F.SilkS) (width 0.4))
(fp_line (start 4.5 -6.5) (end 6.5 -6.5) (layer F.SilkS) (width 0.4))
(fp_line (start 6.5 -6.5) (end 6.5 -4.5) (layer F.SilkS) (width 0.4))
(fp_line (start 6.5 4.5) (end 6.5 6.5) (layer F.SilkS) (width 0.4))
(fp_line (start 6.5 6.5) (end 4.5 6.5) (layer F.SilkS) (width 0.4))
(fp_line (start -4.5 6.5) (end -6.5 6.5) (layer F.SilkS) (width 0.4))
(fp_line (start -6.5 6.5) (end -6.5 4.5) (layer F.SilkS) (width 0.4))
(fp_line (start -6.5 -4.5) (end -6.5 -6.5) (layer F.SilkS) (width 0.4))
(fp_line (start -6.5 -6.5) (end 6.5 -6.5) (layer Cmts.User) (width 0.16))
(fp_line (start 6.5 -6.5) (end 6.5 6.5) (layer Cmts.User) (width 0.16))
(fp_line (start 6.5 6.5) (end -6.5 6.5) (layer Cmts.User) (width 0.16))
(fp_line (start -6.5 6.5) (end -6.5 -6.5) (layer Cmts.User) (width 0.16))
(pad 1 thru_hole circle (at 2.54 -5.08) (size 2.3 2.3) (drill 1.5) (layers *.Cu B.Mask))
(pad 2 thru_hole circle (at -3.81 -2.54) (size 2.3 2.3) (drill 1.5) (layers *.Cu B.Mask))
(pad HOLE thru_hole circle (at 0 0) (size 4 4) (drill 4) (layers *.Cu))
)
- 7bit
- Location: Berlin, DE
- Main keyboard: Tipro / IBM 3270 emulator
- Main mouse: Logitech granite for SGI
- Favorite switch: MX Lock
- DT Pro Member: 0001
Does it still support old files?
I ask, because the footprints are all generated by a script, so changes here, don't make sense at all.
Also, I don't like that dataformat. ^^^ looks complicated, but is quite easy to handle.
I ask, because the footprints are all generated by a script, so changes here, don't make sense at all.
Also, I don't like that dataformat.
Code: Select all
$MODULE CHERRYMX150x192x0
Po 0 0 0 15 4FDE2BFA 00000000 ~~
Li CHERRYMX150x192x0
Sc 0
AR
Op 0 0 0
T0 0 1250 400 600 0 80 N V 21 N "0"
T1 0 0 100 100 0 20 N V 22 N "MX"
T2 0 1250 400 600 0 80 M V 20 N "0"
DS -5575 -3700 5575 -3700 60 24
DS 5575 -3700 5575 3700 60 24
DS 5575 3700 -5575 3700 60 24
DS -5575 3700 -5575 -3700 60 24
DS -3437 -2500 2500 -2500 60 25
DS 2500 -2500 2500 2500 60 25
DS 2500 2500 -3437 2500 60 25
DS -3437 2500 -3437 -2500 60 25
DS -3437 -2500 -2737 -2500 150 21
DS 1800 -2500 2500 -2500 150 21
DS 2500 -2500 2500 -1800 150 21
DS 2500 1800 2500 2500 150 21
DS 2500 2500 1800 2500 150 21
DS -2737 2500 -3437 2500 150 21
DS -3437 2500 -3437 1800 150 21
DS -3437 -1800 -3437 -2500 150 21
$PAD
Sh "1" C 900 900 0 0 0
Dr 590 0 0
At STD N 00F0FFFF
Ne 0 ""
Po 63 -2000
$EndPAD
$PAD
Sh "2" C 900 900 0 0 0
Dr 590 0 0
At STD N 00F0FFFF
Ne 0 ""
Po -2437 -1000
$EndPAD
$PAD
Sh "" C 1575 1575 0 0 0
Dr 1575 0 0
At HOLE N 0000FFFF
Ne 0 ""
Po -937 0
$EndPAD
$PAD
Sh "" C 669 669 0 0 0
Dr 669 0 0
At HOLE N 0000FFFF
Ne 0 ""
Po 1063 0
$EndPAD
$PAD
Sh "" C 669 669 0 0 0
Dr 669 0 0
At HOLE N 0000FFFF
Ne 0 ""
Po -2937 0
$EndPAD
$PAD
Sh "" C 1200 1200 0 0 0
Dr 1200 0 0
At HOLE N 0000FFFF
Ne 0 ""
Po 0 0
$EndPAD
$PAD
Sh "" C 1575 1575 0 0 0
Dr 1575 0 0
At HOLE N 0000FFFF
Ne 0 ""
Po 0 0
$EndPAD
$PAD
Sh "" C 1200 1200 0 0 0
Dr 1200 0 0
At HOLE N 0000FFFF
Ne 0 ""
Po 0 0
$EndPAD
$PAD
Sh "" C 1575 1575 0 0 0
Dr 1575 0 0
At HOLE N 0000FFFF
Ne 0 ""
Po 0 0
$EndPAD
$PAD
Sh "1" C 900 900 0 0 0
Dr 590 0 0
At STD N 00F0FFFF
Ne 0 ""
Po 1000 -2000
$EndPAD
$PAD
Sh "2" C 900 900 0 0 0
Dr 590 0 0
At STD N 00F0FFFF
Ne 0 ""
Po -1500 -1000
$EndPAD
$PAD
Sh "" C 1575 1575 0 0 0
Dr 1575 0 0
At HOLE N 0000FFFF
Ne 0 ""
Po 0 0
$EndPAD
$PAD
Sh "" C 669 669 0 0 0
Dr 669 0 0
At HOLE N 0000FFFF
Ne 0 ""
Po 2000 0
$EndPAD
$PAD
Sh "" C 669 669 0 0 0
Dr 669 0 0
At HOLE N 0000FFFF
Ne 0 ""
Po -2000 0
$EndPAD
$PAD
Sh "" C 1200 1200 0 0 0
Dr 1200 0 0
At HOLE N 0000FFFF
Ne 0 ""
Po 0 0
$EndPAD
$PAD
Sh "" C 1575 1575 0 0 0
Dr 1575 0 0
At HOLE N 0000FFFF
Ne 0 ""
Po 0 0
$EndPAD
$PAD
Sh "" C 1200 1200 0 0 0
Dr 1200 0 0
At HOLE N 0000FFFF
Ne 0 ""
Po 0 0
$EndPAD
$PAD
Sh "" C 1575 1575 0 0 0
Dr 1575 0 0
At HOLE N 0000FFFF
Ne 0 ""
Po 0 0
$EndPAD
DS -3687 -2750 2750 -2750 60 27
DS 2750 -2750 2750 -2250 60 27
DS 2750 -2250 3100 -2250 60 27
DS 3100 -2250 3100 -1000 60 27
DS 3100 -1000 2750 -1000 60 27
DS 2750 -1000 2750 1000 60 27
DS 2750 1000 3100 1000 60 27
DS 3100 1000 3100 2250 60 27
DS 3100 2250 2750 2250 60 27
DS 2750 2250 2750 2750 60 27
DS 2750 2750 -3687 2750 60 27
DS -3687 -2750 -3687 -2250 60 27
DS -3687 -2250 -4037 -2250 60 27
DS -4037 -2250 -4037 -1000 60 27
DS -4037 -1000 -3687 -1000 60 27
DS -3687 -1000 -3687 1000 60 27
DS -3687 1000 -4037 1000 60 27
DS -4037 1000 -4037 2250 60 27
DS -4037 2250 -3687 2250 60 27
DS -3687 2250 -3687 2750 60 27
$EndMODULE CHERRYMX150x192x0
-
- Location: Stockhom, Sweden
- Main keyboard: Symmetric Stagger Board
- Main mouse: Kinzu
- Favorite switch: Topre
- DT Pro Member: -
An other huge thing was the move to metric millimeters down to 8 decimal places. Enough to split an inch in all sort of ways. No more rounding on switch locations =)
To me the new format is quite script readable. There are more string constants in my script, but on the other hand I understand what they do... Even if I am new to perl =D
To me the new format is quite script readable. There are more string constants in my script, but on the other hand I understand what they do... Even if I am new to perl =D
Code: Select all
#!/usr/bin/perl
$scale = $ARGV[0];
foreach (<STDIN>) {
s/\(xy (-*[0-9.]+) (-*[0-9.]+)\)/"(xy ".sprintf("%.6f", $1*$scale)." ".sprintf("%.6f", $2*$scale).")"/ge;
print;
}
- 7bit
- Location: Berlin, DE
- Main keyboard: Tipro / IBM 3270 emulator
- Main mouse: Logitech granite for SGI
- Favorite switch: MX Lock
- DT Pro Member: 0001
Yes, it is possible to generate that be scripts, too. Just annoying if I need to start from scratch because they change their data format from time to time. One more reason for me to stick with what I have and not change the software. I want to design the PCBs and not chase new data formats.
- DiodeHead
- Location: Spain
- Favorite switch: Gateron white
- DT Pro Member: -
Did you guys use the development brach of kicad? they added a dxf importer in pcbnew, that makes really nice to import a plate and make the pcb to align with that plate. I just discovered a couple of days ago but it has some time now, i post it in case someone missed it like me.7bit wrote: ↑I want to design the PCBs and not chase new data formats.
I´ll try to post tonight and explain myself a little more with pictures and how it worked for me.
hope it helps
-
- Location: Stockhom, Sweden
- Main keyboard: Symmetric Stagger Board
- Main mouse: Kinzu
- Favorite switch: Topre
- DT Pro Member: -
I have always generated my plate dxf's from KiCAD =D I can see the point, but I am much more familiar with KiCAD. Some time ago now they added the nano meter as the base unit instead of thousands of inches. This allows to set switches at exact positions in 16th's of 3/4's of inches withuot any rounding errors. (Due to one of my bug reports!) Someone also fixed the grid dimensions to allow for full nm support. This way the custom grid can be set to suitable parts of 3/4". I use (3/4)*(1/16)=0.046875" to place components and (3/4)*(1/60)=0.0125" for traces and small stuff.
- DiodeHead
- Location: Spain
- Favorite switch: Gateron white
- DT Pro Member: -
I see, it even makes more sense to start from kicad, so you make your plate acording to your component layout, the good thing is now you can plot to dxf work on a mechanical cad ( in case you need more drawing tools ) and come back to check that still everything lines up.
-
- Location: Stockhom, Sweden
- Main keyboard: Symmetric Stagger Board
- Main mouse: Kinzu
- Favorite switch: Topre
- DT Pro Member: -
Yeah, I'm not trying to say it isn't useful. But the times I have designed plates they haven't included any features I didn't already have coded into my KiCAD footprints or very simple outlines and holes. I use the Drawings layer or some other extra layer to keep all the plate information. Then I plot it to dxf and be done with it =) Only some checking up in LibreCAD to see that everything looks good.