so how do I change the layer in the code?
--- In [email protected], "raoulduke_esq" <raoulduke_...@...> wrote:
>
> I'm not sure how that would end up looking but if you want to try it and see
> how it looks, I'd like to know how it comes out. I believe the order of
> layers is silkscreen, solder mask, copper, then board, for both sides. The
> list of layers is in:
>
> /usr/local/share/doc/kicad/help/file_formats/file_formats.pdf
>
> Or where ever the KiCAD documentation files are stored on your system. I
> picked layer 21, the component side silk screen layer; layer 20 is the copper
> side. Remember that the silkscreen and solder mask tolerances are much
> greater than the copper traces.
>
> raoul
>
> --- In [email protected], "josh_eeg" <josheeg@> wrote:
> >
> > it worked great in ubuntu linux how would you do the same with different
> > layers? so if I had a pic and wanted it on the copper layer then to put
> > this silkscreen over it. that way I would have 3 tones. Or absence of
> > solder mask would give me 4.
> >
> > --- In [email protected], "raoulduke_esq" <raoulduke_esq@> wrote:
> > >
> > > I'm sorry, I didn't mean to be cryptic. Below is the latest version of
> > > my awk script. For non-Unix/Linux people, "awk" is a scripting language
> > > written many, many years ago and named for the initials of the three guys
> > > who initially developed it (Aho, Weinberger and Kernighan - names that
> > > should be familiar to old CS types).
> > >
> > > Awk is part of the base user installation for Unix & Linux, of pretty
> > > much all flavors. I can't speak for OS/X but I'd guess that if you have
> > > a shell in a window, you've got awk. For the Windows crowd, I guess your
> > > best option is to install Cygwin and make sure you get awk with it.
> > >
> > > The addition of the first line is just an old Unix/Linux trick based on
> > > the concept of a "magic number" which is a signature in the first few
> > > bytes used to identify the contents of files. Note that this concept is
> > > foreign to MS where the file name extension (after the '.') is supposed
> > > to provide all the information about the file type. Since this is prone
> > > to error, and really ineffective at documenting file contents, I prefer
> > > the Unix/Linux "magic number" route. In this case, the magic number is
> > > "#!" ("shebang") which indicates that it is a script file, followed by
> > > the program to be used to interpret the script file. By marking the file
> > > as executable you can execute it from the command line. When you try to
> > > run the script, the loader first checks the magic number to determine
> > > what kind of executable it is (for example, it will fail to load a binary
> > > program compiled for a different computer or operating system), it sees
> > > the signature for the script and executes the specified interpreter
> > > instead (in this case /usr/bin/awk), passing the script to it.
> > >
> > > What does this long winded historical explanation mean? I was just
> > > trying to save you from having to type:
> > >
> > > awk -f reformat.awk logo.bmp > logo.tmp
> > >
> > > and reduce it to:
> > >
> > > ./reformat.awk logo.bmp > logo.tmp
> > >
> > > (For the observant, the "./" in front of the script is because we all
> > > know that you never include "." in your PATH environment variable - to
> > > avoid this, place the script in a convenient directory where you keep
> > > your other executables).
> > >
> > > I'll attach my latest version below, which includes a few changes to deal
> > > with extra whitespace allowed by the informal specification of PNG files.
> > > I hope that this is able to help a few people. I've been plinking away
> > > at a Perl script but my Perl is far more rusty than my awk. Sorry about
> > > End Of Line (EOL) problems - it's not something that I worry about since
> > > I left Windoze far, far behind me.
> > >
> > > raoul
> > >
> > > --- In [email protected], "josh_eeg" <josheeg@> wrote:
> > > >
> > > > I am confused now... does that make things run with less user input or
> > > > make it output the logo correctly?
> > > > If it is a working script could it be uploaded here or somewhere for
> > > > others?
> > > >
> > > > Do I run that line in the command prompt?
> > > >
> > > > --- In [email protected], "raoulduke_esq" <raoulduke_esq@>
> > > > wrote:
> > > > >
> > > > > For fun, make the first line of the awk script:
> > > > >
> > > > > #!/usr/bin/awk -f
> > > > >
> > > > > (obviously use the path to your awk). Change the (I call it
> > > > > reformat.awk) script mode to executable and you can now:
> > > > >
> > > > > >./reformat.awk logo.pbm >> logo.mod
> > > > >
> > > > > And you're half way there - just edit to move the DS lines before
> > > > > $EndMODULE and you're done.
> > > > >
> > > > >
> > > > > raoul
> > >
> > > ---------------------------- Cut Here -------------------------
> > > #!/usr/bin/awk -f
> > > # This script will take an ASCII (also called "plain") PBM image file and
> > > # convert it to a series of "DS" (Draw Segment) statements in PCBNEW
> > > syntax.
> > > # The X & Y axis step size is defined in "step" which is in uints of 1/10
> > > # mil (from the PCBNEW spec). The PCB layer for the DS segments is
> > > currently
> > > # set to 21, the component layer silkscreen but you can change that. You
> > > # can also swap bg & fg based on whether black or white is the foreground.
> > > #
> > > # State 0 : look for magic number - must be P1 (can be P4 for raw file)
> > > # State 1 : look for height & width
> > > # State 2 : process data
> > > # State 3 : done with data - skip the rest
> > > #
> > > BEGIN { state = 0; step = 40; layer = 21; fg = "1"; bg = "0"; }
> > > {if (NR == 1) {
> > > state = 1;
> > > if ($1 != "P1") {
> > > printf("Must supply an ASCII PBM image file\n");
> > > exit 1
> > > }
> > > next;
> > > }
> > > }
> > > /^#/ { next } # Comment line, skip it
> > > {if (state == 1) {
> > > if (NF < 2) next; # Skip empty lines too
> > > width = $1;
> > > height = $2;
> > > if ((width < 1) || (height < 1)) {
> > > printf("Invalid width or height\n");
> > > exit 1
> > > }
> > > buff = "";
> > > state = 2;
> > > Y = - ((step * height) / 2);
> > > initX = - ((step * width) / 2);
> > > next;
> > > }
> > > }
> > > {if (state == 2) {
> > > gsub( "[[:space:]]", "" );
> > > buff = buff $0;
> > > if (length( buff ) >= width) {
> > > scanline = substr( buff, 1, width );
> > > buff = substr( buff, width + 1 );
> > > Y += step;
> > > X = initX;
> > > while ( Z1 = index( scanline, fg )) {
> > > scanline = substr( scanline, Z1 );
> > > Z2 = index( scanline, bg );
> > > if (Z2 == 0)
> > > Z2 = length( scanline ) + 1;
> > > scanline = substr( scanline, Z2 );
> > > Z1 = step * Z1 + X;
> > > Z2 = step * Z2 + Z1 - 2 * step;
> > > X = Z2;
> > > printf( "DS %d %d %d %d %d %d\n", Z1, Y, Z2, Y, step,
> > > layer );
> > > }
> > > height--;
> > > if (height == 0)
> > > state = 3;
> > > }
> > > }
> > > }
> > > {if (state == 3) { nextfile; }}
> > > ---------------------------- Cut Here -------------------------
> > >
> >
>