RTV forum PL | NewsGroups PL

Eagle: Skrypt do przypisania skrótu klawiszowego do przełączania warstw

Eagle - wyświetlanie warstw (DISPLAY)

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Eagle: Skrypt do przypisania skrótu klawiszowego do przełączania warstw

Adam Jurkiewicz
Guest

Wed Oct 06, 2004 12:37 pm   



Witam,

Ma ktoś może skrypt albo jakiś przykład jak przypisać sobie do skrótu
klawiszowego włączanie i wyłączanie warstwy (toggle) bo to klikanie
myszkOM doprowadza mnie do szału?

Chodzi o to, żeby pozbyć się tej kretyńskiej funkcji (z helpa do Eagle'a):

"If tPlace or bPlace is selected, t/bNames, t/bValues, t/bOrigins
and t/bDocu are automatically selected, too."

Pozdrawiam,
sword

--
e-mail: sword@NA_DRZEWO_ajpic.zonk.pl
www: http://ajpic.zonk.pl/
gg#: 1781804

Adam Jurkiewicz
Guest

Thu Oct 07, 2004 8:09 am   



Dnia 10/7/2004 7:37 PM, Użytkownik Górski Adam napisał:

Quote:
Np. display none top vias pads
Aby zobaczyc tylko gorna warstwe.
Np. display -vias -pads
Aby wylaczyc tylko pady i przelotki

To znam ale chodzi konkretnie o warstwe t/bplace, chcę miec możliwość
włączania i wyłączania tylko tej jednej, a ona jest połączona z kilkoma
innymi. Niestety to strasznie upierdliwy 'ficzer' i próbuję się go jakoś
pozbyć.

pozdrawiam,
sword

--
e-mail: sword@NA_DRZEWO_ajpic.zonk.pl
www: http://ajpic.zonk.pl/
gg#: 1781804

Górski Adam
Guest

Thu Oct 07, 2004 9:40 am   



Użytkownik Adam Jurkiewicz napisał:
Quote:

Witam,

Ma ktoś może skrypt albo jakiś przykład jak przypisać sobie do skrótu
klawiszowego włączanie i wyłączanie warstwy (toggle) bo to klikanie
myszkOM doprowadza mnie do szału?

Chodzi o to, żeby pozbyć się tej kretyńskiej funkcji (z helpa do Eagle'a):

"If tPlace or bPlace is selected, t/bNames, t/bValues, t/bOrigins
and t/bDocu are automatically selected, too."



Np. display none top vias pads

Aby zobaczyc tylko gorna warstwe.

Np. display -vias -pads

Aby wylaczyc tylko pady i przelotki


Adam Górski

Górski Adam
Guest

Thu Oct 07, 2004 1:10 pm   



Użytkownik Adam Jurkiewicz napisał:

Quote:
Dnia 10/7/2004 7:37 PM, Użytkownik Górski Adam napisał:

Np. display none top vias pads
Aby zobaczyc tylko gorna warstwe.
Np. display -vias -pads
Aby wylaczyc tylko pady i przelotki


To znam ale chodzi konkretnie o warstwe t/bplace, chcę miec możliwość
włączania i wyłączania tylko tej jednej, a ona jest połączona z kilkoma
innymi. Niestety to strasznie upierdliwy 'ficzer' i próbuję się go jakoś
pozbyć.

Nie widze problemu

Np. Pod jeden klawisz włączanie display tplace -tdocu
a pod drugi wyłączanie display -tplace

Górski Adam
Guest

Thu Oct 07, 2004 4:40 pm   



Użytkownik Adam Jurkiewicz napisał:
Quote:
Dnia 10/7/2004 7:37 PM, Użytkownik Górski Adam napisał:

Np. display none top vias pads
Aby zobaczyc tylko gorna warstwe.
Np. display -vias -pads
Aby wylaczyc tylko pady i przelotki


To znam ale chodzi konkretnie o warstwe t/bplace, chcę miec możliwość
włączania i wyłączania tylko tej jednej, a ona jest połączona z kilkoma
innymi. Niestety to strasznie upierdliwy 'ficzer' i próbuję się go jakoś
pozbyć.

pozdrawiam,
sword

Można też to zrobić pod jednym klawiszem w stylu włącz /wyłącz,ale to

troche wiecej zabawy.

BTW ja mam pod jednym klawiszem

:)

Adam

Adam Jurkiewicz
Guest

Fri Oct 08, 2004 6:01 am   



Quote:
Np. Pod jeden klawisz włączanie display tplace -tdocu
a pod drugi wyłączanie display -tplace

No tak ale jeszcze się włączają dodatkowo, Origins, Names i Values
i jak zrobię włącz/wyłącz to stracę te warstwy, które były pokazane.
Dlatego właśnie myślę o skrypcie, który by zapamiętał wyświetlone
warstwy wyłączył/włączył Place i ustawił pozostałe jak były.

Quote:
Można też to zrobić pod jednym klawiszem w stylu włącz /wyłącz,ale to
troche wiecej zabawy. BTW ja mam pod jednym klawiszem

No właśnie o to mi chodzi, mógłbyś się podzielić jak to masz zrobione (priv)?
Miałbym przynajmniej punkt zaczepienia jak się za to zabrać, jeszcze się
w skrypty nie bawiłem ale powoli do tego zmierzam.

Mam jeszcze takie pytanie może będziesz wiedział. Podmontowałem sobie wszystkie
funkcje pod skróty klawiszowe lewy Alt + klawisz, ale to jeszcze w wersji 4.09.
Teraza pracuję na wersji 4.11 no te skróty chodzą teraz nieciekawie bo pod Alt
coś tam sami podmontowali i muszę naciskać ten skrót dwa razy, żeby wywołać
funkcję. Czy da się jakoś wyłączyć te wewnętrzne przypisania eagla, żeby Alt
był wolny i moje skróty chodziły normalnie? Już się do nich przyzwyczaiłem
i nie chciał bym ich zmieniać.

pozdrawiam,
sword

--
e-mail: sword@NA_DRZEWO_ajpic.zonk.pl
www: http://ajpic.zonk.pl/
gg#: 1781804

Adam Jurkiewicz
Guest

Fri Oct 08, 2004 9:00 am   



Dnia 10/8/2004 10:29 AM, Użytkownik Jan Dubiec napisał:

Quote:
Zwykłym skryptem tego nie zrobisz. Myślałem żeby zrobić to przy pomocy ULP,
ale natknąłęm się na problem - do pola obiektu nie można przypisać wartości!.
Np.
[.....]
UL_LAYER l;
l.visible = 0; <- tutaj wyskakuje parse error
[.....]
Wygląda tak, jakby obiekty były read-only. Kurna, ale w helpie nic na ten
temat nie widziałem.

Spokojnie można to zrobić poprzez kombinację ULP-a i skryptu: ULP otczytuje
aktualny stan warstw i generuje odpowiedni skrypt który zostaje zapisany np.
w pliku dupa.scr. I jeśli nasz ULP znalduje się np. w pliku dupa.ulp, to
podpięcie pod jakiś klawisz sekwencji komend "run dupa.ulp; script dupa.scr;"
powinno dać oczekiwany efekt. Problem w tym że jest to IMO mało eleganckie
rozwiązanie.

Wow, pomysł czadowy Smile ciekawe jak by się rozkładało czasowo takie wywołanie.
Jak się przegryzę przez te skrypty to może spróbuje.

Quote:
AFAIR podpieli pod Alt-a chwilowe przełączanie się na alternatywną siatkę.

No faktycznie jest coś takiego, nawet mi to działa. Jak się prowadzi ścieżkę
to po przytrzymaniu Alt chodzisz z drugim gridem przy czym grid wizualny
pozostaje bez zmian.

Quote:
Przy czym u mnie pod Linuksem nigdy to nie działało, a gdy bawiłem się przez
chwilę wersją pod Win, to ten ficzer też jakoś nie chciał działać. Inna sprawa
że nigdy tego nie potrzebowałem. W każdym bądź razie nie zauważyłem problemu
o którym piszesz.

Poszukam, może da się ten ficzer wyłączyć albo przenieść pod inny klawisz.
Tez z tego nie korzystam bo zmianę gridu mam podmontowaną pod osobne klawisze.

sword

--
e-mail: sword@NA_DRZEWO_ajpic.zonk.pl
www: http://ajpic.zonk.pl/
gg#: 1781804

Jan Dubiec
Guest

Fri Oct 08, 2004 9:29 am   



Adam Jurkiewicz wrote on Fri, 08 Oct 2004 09:01:38 +0200:
Quote:

Np. Pod jeden klawisz włączanie display tplace -tdocu
a pod drugi wyłączanie display -tplace

No tak ale jeszcze się włączają dodatkowo, Origins, Names i Values
i jak zrobię włącz/wyłącz to stracę te warstwy, które były pokazane.
Dlatego właśnie myślę o skrypcie, który by zapamiętał wyświetlone
warstwy wyłączył/włączył Place i ustawił pozostałe jak były.
Zwykłym skryptem tego nie zrobisz. Myślałem żeby zrobić to przy pomocy ULP,

ale natknąłęm się na problem - do pola obiektu nie można przypisać wartości!.
Np.
[.....]
UL_LAYER l;
l.visible = 0; <- tutaj wyskakuje parse error
[.....]
Wygląda tak, jakby obiekty były read-only. Kurna, ale w helpie nic na ten
temat nie widziałem.

Spokojnie można to zrobić poprzez kombinację ULP-a i skryptu: ULP otczytuje
aktualny stan warstw i generuje odpowiedni skrypt który zostaje zapisany np.
w pliku dupa.scr. I jeśli nasz ULP znalduje się np. w pliku dupa.ulp, to
podpięcie pod jakiś klawisz sekwencji komend "run dupa.ulp; script dupa.scr;"
powinno dać oczekiwany efekt. Problem w tym że jest to IMO mało eleganckie
rozwiązanie.

Quote:
Mam jeszcze takie pytanie może będziesz wiedział. Podmontowałem sobie wszystkie
funkcje pod skróty klawiszowe lewy Alt + klawisz, ale to jeszcze w wersji 4.09.
Teraza pracuję na wersji 4.11 no te skróty chodzą teraz nieciekawie bo pod Alt
coś tam sami podmontowali i muszę naciskać ten skrót dwa razy, żeby wywołać
funkcję. Czy da się jakoś wyłączyć te wewnętrzne przypisania eagla, żeby Alt
był wolny i moje skróty chodziły normalnie? Już się do nich przyzwyczaiłem
i nie chciał bym ich zmieniać.
AFAIR podpieli pod Alt-a chwilowe przełączanie się na alternatywną siatkę.

Przy czym u mnie pod Linuksem nigdy to nie działało, a gdy bawiłem się przez
chwilę wersją pod Win, to ten ficzer też jakoś nie chciał działać. Inna sprawa
że nigdy tego nie potrzebowałem. W każdym bądź razie nie zauważyłem problemu
o którym piszesz.

Regards,
/J.D.

Adam Jurkiewicz
Guest

Fri Oct 08, 2004 12:06 pm   



Dnia 10/8/2004 2:11 PM, Użytkownik Jan Dubiec napisał:

Quote:
W przypływie weny twórczej napisałem małego ULP-a który tworzy skrypt
w pamięci, tzn. nie ma potrzeby użycia dodatatkowego pliku na dysku na ciało
skryptu. ULP włącza/wyłącza warstwę tPlace zachowując przy tym aktualny stan
warstw tOrigins, tNames, tValues i tDocu.


Dzięki wielkie GURU Smile i o to chodziło, działa piknie.

Śmiesznie się ta pętlę robi w tym ulpie ale już załapałem jak,
teraz sobie porobię toggle na resztę warstw :)

pozdrawiam,
sword

--
e-mail: sword@NA_DRZEWO_ajpic.zonk.pl
www: http://ajpic.zonk.pl/
gg#: 1781804

Jan Dubiec
Guest

Fri Oct 08, 2004 12:15 pm   



Adam Jurkiewicz wrote on Fri, 08 Oct 2004 12:00:16 +0200:
Quote:

Dnia 10/8/2004 10:29 AM, Użytkownik Jan Dubiec napisał:
[.....]
Spokojnie można to zrobić poprzez kombinację ULP-a i skryptu: ULP otczytuje
aktualny stan warstw i generuje odpowiedni skrypt który zostaje zapisany np.
w pliku dupa.scr. I jeśli nasz ULP znalduje się np. w pliku dupa.ulp, to
podpięcie pod jakiś klawisz sekwencji komend "run dupa.ulp; script dupa.scr;"
powinno dać oczekiwany efekt. Problem w tym że jest to IMO mało eleganckie
rozwiązanie.

Wow, pomysł czadowy Smile
Ja wiem czy czadowy? Sporo ULPów działa w ten sposób - najpierw tworzy skrypt

a później go wykonuje.

Quote:
ciekawe jak by się rozkładało czasowo takie wywołanie.
Tzn. czy działałoby szybko? Tak, w takim prostym przypadku będzie działać

szybko.

[.....]
Quote:
przy czym grid wizualny pozostaje bez zmian.
Hehe, chyba wiem dlaczego mi nie działało. Smile


Regards,
/J.D.

Jan Dubiec
Guest

Fri Oct 08, 2004 1:11 pm   



Jan Dubiec wrote on Fri, 8 Oct 2004 11:15:35 +0000 (UTC):
Quote:
Adam Jurkiewicz wrote on Fri, 08 Oct 2004 12:00:16 +0200:

Dnia 10/8/2004 10:29 AM, Użytkownik Jan Dubiec napisał:
[.....]
Spokojnie można to zrobić poprzez kombinację ULP-a i skryptu: ULP otczytuje
aktualny stan warstw i generuje odpowiedni skrypt który zostaje zapisany np.
w pliku dupa.scr. I jeśli nasz ULP znalduje się np. w pliku dupa.ulp, to
podpięcie pod jakiś klawisz sekwencji komend "run dupa.ulp; script dupa.scr;"
powinno dać oczekiwany efekt. Problem w tym że jest to IMO mało eleganckie
rozwiązanie.

Wow, pomysł czadowy Smile
Ja wiem czy czadowy? Sporo ULPów działa w ten sposób - najpierw tworzy skrypt
a później go wykonuje.
W przypływie weny twórczej napisałem małego ULP-a który tworzy skrypt

w pamięci, tzn. nie ma potrzeby użycia dodatatkowego pliku na dysku na ciało
skryptu. ULP włącza/wyłącza warstwę tPlace zachowując przy tym aktualny stan
warstw tOrigins, tNames, tValues i tDocu.

Instrukcja obsługi:
1. Zapisujemy ULP-a do pliku, np. dupa.ulp i umieszczamy go gdzieś na ścieżce
ULP-ów tak aby Eagle go widział.
2. Dla jakiejś kombinacji klawiszy przypisujemy komendę "run dupa.ulp;"
3. Kolejne przyciśnięcia wybranej kombinacji powodują zmianę stanu warstwy
tPlace na przeciwny, tj. jeśli była ona włączona, to po wciśnięciu wybranej
kombinacji będzie wyłączona, itd.

A oto i ULP który może posłużyć jako baza do napisania czegoś bardziej
zaawansowanego:

board(B) {
string cmd = "display";
int tPlace_v, tOrigins_v, tNames_v, tValues_v, tDocu_v;

B.layers(L) {
switch (L.number) {
case LAYER_TPLACE:
tPlace_v = L.visible;
break;
case LAYER_TORIGINS:
tOrigins_v = L.visible;
break;
case LAYER_TNAMES:
tNames_v = L.visible;
break;
case LAYER_TVALUES:
tValues_v = L.visible;
break;
case LAYER_TDOCU:
tDocu_v = L.visible;
break;
}
}

if (tPlace_v == 1) {
cmd += " -tPlace";
} else {
cmd += " tPlace";
}

if (tOrigins_v == 1) {
cmd += " tOrigins";
} else {
cmd += " -tOrigins";
}

if (tNames_v == 1) {
cmd += " tNames";
} else {
cmd += " -tNames";
}

if (tValues_v == 1) {
cmd += " tValues";
} else {
cmd += " -tValues";
}

if (tDocu_v == 1) {
cmd += " tDocu;";
} else {
cmd += " -tDocu;";
}

exit(cmd);
}

Regards,
/J.D.

Adam Jurkiewicz
Guest

Sat Oct 09, 2004 2:55 pm   



Quote:
teraz sobie porobię toggle na resztę warstw Smile

No to jak rzekłem tak zrobiłem, zainspirowany wiedzą jaką otrzymałem
wygenerowałem coś takiego:


if (board) board(B)
{
string cmd = "display ";
string Layer_Toggle = strupr (argv[1]);

B.layers(L)
if (!strstr(strupr(L.name), Layer_Toggle))
{
if (L.visible) cmd += "-";
cmd += Layer_Toggle;
break;
}

exit (cmd);
}

Warstwa do zmiany stanu wyświetlania podawana jest jako parametr
linii poleceń (działają skróty nazw):

run toggle top

Nie jestem tylko w tym wypadku pewien czy muszę korzystać z pętli
do testowania aktualnego stanu warstwy czy można się jakoś odwołać
bezpośrednio(?)

sword

--
e-mail: sword@NA_DRZEWO_ajpic.zonk.pl
www: http://ajpic.zonk.pl/
gg#: 1781804

Jan Dubiec
Guest

Sun Oct 10, 2004 12:22 pm   



On Sat, 09 Oct 2004 17:55:38 +0200, Adam Jurkiewicz <sword@ajpic.zonk.pl> wrote:
[.....]
Quote:
Nie jestem tylko w tym wypadku pewien czy muszę korzystać z pętli
do testowania aktualnego stanu warstwy czy można się jakoś odwołać
bezpośrednio(?)
No niestety, AFAIK innej metody nie ma. Wogóle te loop members to mi tak

trochę programowaniem funkcyjnym "zalatują". :-)

Regards,
/J.D.
--
Jan Dubiec, jdx#slackware.pl, mobile: +48 506 790442

Głęboka wiara wymaga płytkiego rozumu i nikłej wiedzy.

Adam Jurkiewicz
Guest

Mon Oct 11, 2004 7:24 am   



Dnia 10/10/2004 3:22 PM, Użytkownik Jan Dubiec napisał:

Quote:
No niestety, AFAIK innej metody nie ma. Wogóle te loop members to mi tak
trochę programowaniem funkcyjnym "zalatują". Smile

Trzeba się przystosować, innej rady niema :)

Dzięki za naprowadzenie.

pozdrawiam,
sword

--
e-mail: sword@NA_DRZEWO_ajpic.zonk.pl
www: http://ajpic.zonk.pl/
gg#: 1781804

elektroda NewsGroups Forum Index - Elektronika Polska - Eagle: Skrypt do przypisania skrótu klawiszowego do przełączania warstw

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map