Phil Frost: ... > XML and YAML are equally capable of being made unreadable. Either can be > made more readable by defining a reasonable schema and selecting a > clueful output library. > > Neither sed nor awk can process XML or YAML the right way in all cases > without reimplementing a libyaml or libxml in sed or awk.
Ack, one can make an file format unreadable, and one can make it reasonably readable. But that is only one side of the problem. I am also conserned with how easy it is to write it (e.g. footprint files). Currently I'm trying to learn to make footprint files (since I need them). And it seems that I almost always end up making a script making the needed files. For me, it means that the file format is not expressive enough. *** I would like the file format to be "programmable", at least at the footprint level. 1, A first step could be to allow variables in the files, e.g. to be able to write: pad_dims = "1.1mm 0.5mm 1.300mm" Pad [ -1.700mm -0.300mm -1.700mm 0.300mm $pad_dims "1" "1" "square"] Pad [ 1.700mm -0.300mm 1.700mm 0.300mm $pad_dims "1" "1" "square"] or x = 1.7mm y = 0.3mm pad_dims = "1.1mm 0.5mm 1.300mm" Pad [ -$x -$y -$x $y $pad_dims "1" "1" "square"] Pad [ $x -$y $x $y $pad_dims "1" "1" "square"] or pw = 1.1mm # pad width ph = 1.7mm # pad height pd = 2.3mm # pad distance x = $pd/2 + $pw/2 y = $ph/2 ... 2, Next step could be to allow "subroutines" in the native format, eg.: two_pads(pad_width, pad_heigth, pad_separation, component_width) { ... } 1206_reflow_soldered = two_pads( 0.9mm, 1.7mm, 2.0mm, 1.6mm ) 1206_wave_soldered = two_pads( 1.1mm, 1.7mm, 2.3mm, 1.6mm ) clearance = 0.5mm soler_mask_clearance = 0.3mm 1206_my_version = ... or (if you don't like positional parameters): 1206_wave = two_pads( pw=1.1mm, ph=1.7mm, pd=2.3mm, cw=1.6mm ) instead of file "1206_wave.fp": # Vishay D../CRCW.... e3 # http://www1.elfa.se/data1/wwwroot/assets/datasheets/flD-CRCW-e3_data_en.pdf Element ["" "" "" "" 0 0 -0.7mm -0.8mm 0 100 ""] ( Pad [ -1.700mm -0.300mm -1.700mm 0.300mm 1.1mm 0.5mm 1.300mm "1" "1" "square"] Pad [ 1.700mm -0.300mm 1.700mm 0.300mm 1.1mm 0.5mm 1.300mm "2" "2" "square"] ElementLine [ -2.510mm 1.110mm 2.510mm 1.110mm 0.32mm ] ElementLine [ 2.510mm 1.110mm 2.510mm -1.110mm 0.32mm ] ElementLine [ 2.510mm -1.110mm -2.510mm -1.110mm 0.32mm ] ElementLine [ -2.510mm -1.110mm -2.510mm 1.110mm 0.32mm ] ) file "1206_reflow.fp": etc.... 3, another possibility would be to use postscript or some other language as the "file format". /mm 72 25.4 div def mm mm scale 0.1 setlinewidth /pw 1.1 def /ph 1.7 def /pd 2.3 def /x pd 2 div pw 2 div add def /y ph 2 div def ... *** Would patches for something like this be accepted? Regards, /Karl Hammar --------- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 _______________________________________________ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user