www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Eagle - slika v ozadju

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Programska oprema
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
bpavsic
Član
Član



Pridružen-a: Pet 03 Apr 2009 20:45
Prispevkov: 354
Aktiv.: 1.79
Kraj: Maribor

PrispevekObjavljeno: Ned Nov 11, 2012 5:25 pm    Naslov sporočila:  Eagle - slika v ozadju Odgovori s citatom

Pozdravljeni,

zanima me ali je možno pri risanju PCBja v ozadje postavit sliko?

V temi sem načel opis projekta. Prvo ploščico sem narisal, sedaj pa sem se spravil na naslednjo. Ta bo kopija obstoječe (po obliki, ne pa funkcionalnosti). Kot se vidi na sliki, bodo največji problem rotacijski enkoderji (oz. kakorkoli se pač reče tem krogcem). Sam lahko razstavim en oddajnik in ga skeniram ali kako drugače spravim do računalnika, kjer ga spravim v natančne dimenzije (popravim perspektivo, če bi npr. slikal). Nato pa bi to sliko dal v ozadje Eagle-a in po njej narisal novo ploščico.

Tule je še slikica zadnje strani originalne ploščice.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
ule
Član
Član



Pridružen-a: Tor 13 Jan 2004 20:32
Prispevkov: 1583
Aktiv.: 6.66
Kraj: Babno Polje

PrispevekObjavljeno: Ned Nov 11, 2012 5:32 pm    Naslov sporočila:   Odgovori s citatom

Za eagla nisem čisto prepričan (ali pač ne znam) če to omogoča, zna pa to program Sprint layout.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
bpavsic
Član
Član



Pridružen-a: Pet 03 Apr 2009 20:45
Prispevkov: 354
Aktiv.: 1.79
Kraj: Maribor

PrispevekObjavljeno: Ned Nov 11, 2012 5:45 pm    Naslov sporočila:   Odgovori s citatom

No, v bistvu sem našel neko varianto s skripto "import-bmp.ulp" ampak bi raje kaj bolj normalnega.

Glede programa je pa tak... Eagle še najbolj poznam in bi zaenkrat ostal pri tem.

Sem preveril skripto. V bistvu deluje tako, da ustvari do 16 layerjev (vsak svoje barve), potem pa glede na pixle v sliki generira poligone v ustreznem layerju.

Si bom napisal programček, da mi zgenerira poligone za te krožne pad-e, in jih bom imenoval isto kot signali... Bi moralo špilat.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
ule
Član
Član



Pridružen-a: Tor 13 Jan 2004 20:32
Prispevkov: 1583
Aktiv.: 6.66
Kraj: Babno Polje

PrispevekObjavljeno: Ned Nov 11, 2012 6:19 pm    Naslov sporočila:   Odgovori s citatom

Sprint layout niti približno ni tako zahteven kot eagle. Tako da če dokaj dobro poznaš eagle, bi sprint layout osvojil v 20min. Obstaja na forumu nekje ena debata o tem pogramu.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
bpavsic
Član
Član



Pridružen-a: Pet 03 Apr 2009 20:45
Prispevkov: 354
Aktiv.: 1.79
Kraj: Maribor

PrispevekObjavljeno: Ned Nov 11, 2012 6:46 pm    Naslov sporočila:   Odgovori s citatom

V bistvu je bolj problem v tem, da imam že par ploščic narisanih, za katere sem moral narediti nove elemente. Ni mi tega postopka ponavljat še v drugem programu.

Glede na to, da sem sedaj ugotovil, kako se delajo skripte, bom kar v excelu naredil skripto, ki mi bo narisala poligone za ta dva enkoderja.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9407
Aktiv.: 39.59
Kraj: Kranj - struževo

PrispevekObjavljeno: Ned Nov 11, 2012 6:54 pm    Naslov sporočila:   Odgovori s citatom

Mnogo bolje kot copy-paste po sliki (sploh če nimaš vezja skeniranega) je merjenje premerov in izračun pozicij kontaktov.

Vezje lahko skeniraš, naviješ kontrast, znižaš barvno globino slike in potem uvoziš v kakšen program za vektoriziranje, recimo coreldraw, mogoče tudi inkscape zna. Potem pa izvoziš v formatu, ki ga program za vezja pozna, za p-cad vem da DXF brez težav uvozi.

Tretja rešitev pa je uporaba alternativnega tipa enkoderja, ki ti ga lahko jaz zrihtam - klik

_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
bpavsic
Član
Član



Pridružen-a: Pet 03 Apr 2009 20:45
Prispevkov: 354
Aktiv.: 1.79
Kraj: Maribor

PrispevekObjavljeno: Ned Nov 11, 2012 7:18 pm    Naslov sporočila:   Odgovori s citatom

@aly

Ni problem v copy-paste. Koordinate posameznih pad-ov je trivialno izračunat (polarne koordinate - tudi eagle jih podpira v skripti). Potem pač zgeneriraš poligone. Bolj me muči notranji krog oz. kolobar.
Ali ga naj sestavim iz več segmentov (trapezov) ali pa uporabim ukaz CIRCLE pa potem delam z restrict layerjem... ne vem pa kaj potem to dalje prinese za izdelavo vezja... Bom zdaj do konca napisal skripto, pa da vidim rezultat.

Alternative pa ni. Rad bi samo zamenjal ploščico iz originalnega pilota, tako da lahko vsak trenutek menjam nazaj na original.

Ok, ravnokar sem ugotovil, da CIRCLE in RECT odpadeta, ker jih ne moreš povezat s signali. Torej ostane POLYGON, ki je lahko tudi "cutout".
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
bpavsic
Član
Član



Pridružen-a: Pet 03 Apr 2009 20:45
Prispevkov: 354
Aktiv.: 1.79
Kraj: Maribor

PrispevekObjavljeno: Ned Nov 11, 2012 8:26 pm    Naslov sporočila:   Odgovori s citatom

Ok, problem rešen.
"votli" poligoni
"pobarvani" poligoni

Generirani so kot POLYGON v eagle-u. V bistvu bi lahko naredil vse skupaj direkt v eagleu s skripto. Zdaj sem si napisal program v C# in rezultat skopiral v eaglovo ukazno vrstico.
Če je tema zanimiva, lahko tudi naštudiram Eaglove ULP skripte in naredim to isto stvar tam.

Moram edino zmerit točne podatke pa zdaj nimam originalne ploščice pri roki...

Koda:

        private void P2R(double r, double a, out double x, out double y)
        {
            x = r * Math.Cos(a);
            y = r * Math.Sin(a);
        }

        // name = ime segmenta,
        // locX, locY = lokacija središča,
        // segCnt = število segmentov,
        // rMin, rMax = notranji in zunanji radij,
        // aOfs = zamik (rotacijski) v radianih
        // ratio = razmerje med polnim in praznim delom segmenta (1 = cel polni)
        private string GenSeg(string name, double locX, double locY, int segCnt, double rMin, double rMax, double aOfs, double ratio)
        {
            double aSeg = 2 * Math.PI / segCnt;
            StringBuilder res = new StringBuilder();
            for (int i = 0; i < segCnt; i ++)
            {
                res.Append("POLYGON \"" + name + "\" ");

                double aSeg1 = aSeg * i + aOfs;
                double aSeg2 = aSeg * (i + ratio) + aOfs;

                double x, y;

                P2R(rMin, aSeg1, out x, out y); x += locX; y += locY;
                res.Append(String.Format(System.Globalization.CultureInfo.GetCultureInfo("en-US"), "({0:0.00000000} {1:0.00000000}) ", x, y));

                P2R(rMax, aSeg1, out x, out y); x += locX; y += locY;
                res.Append(String.Format(System.Globalization.CultureInfo.GetCultureInfo("en-US"), "({0:0.00000000} {1:0.00000000}) ", x, y));

                P2R(rMax, aSeg2, out x, out y); x += locX; y += locY;
                res.Append(String.Format(System.Globalization.CultureInfo.GetCultureInfo("en-US"), "({0:0.00000000} {1:0.00000000}) ", x, y));

                P2R(rMin, aSeg2, out x, out y); x += locX; y += locY;
                res.Append(String.Format(System.Globalization.CultureInfo.GetCultureInfo("en-US"), "({0:0.00000000} {1:0.00000000}) ", x, y));

                P2R(rMin, aSeg1, out x, out y); x += locX; y += locY;
                res.AppendLine(String.Format(System.Globalization.CultureInfo.GetCultureInfo("en-US"), "({0:0.00000000} {1:0.00000000});", x, y));
            }

            return res.ToString();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Text =
                GenSeg("VCC", 0.85, 1.85, 40, 0.3, 0.38, 0, 1) +
                GenSeg("A1", 0.85, 1.85, 21, 0.4, 0.48, -2 * Math.PI / 21 / 2 + 2 * Math.PI / 21 / 4, 0.5) +
                GenSeg("B1", 0.85, 1.85, 21, 0.5, 0.58, -2 * Math.PI / 21 / 2, 0.5) +
                GenSeg("VCC", 2.80, 1.85, 40, 0.3, 0.38, 0, 1) +
                GenSeg("A1", 2.80, 1.85, 21, 0.4, 0.48, -2 * Math.PI / 21 / 2 + 2 * Math.PI / 21 / 4, 0.5) +
                GenSeg("B1", 2.80, 1.85, 21, 0.5, 0.58, -2 * Math.PI / 21 / 2, 0.5);
        }
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Programska oprema Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 10 dni


Powered by phpBB © 2001, 2005 phpBB Group