Fórum témák

» Több friss téma
Fórum » Eagle 3D segítség, POV-Ray
Lapozás: OK   25 / 42
(#) niedziela válasza Attila86 hozzászólására (») Márc 10, 2009 /
 
Akkor úgy is jól van
(#) MPi-c válasza Attila86 hozzászólására (») Márc 10, 2009 /
 
Üdv! Olvasom mit tervezel
Ahogy visszaemlékszem az ulp-re, magának, az adatok beállítására szolgáló párbeszédablaknak az elkészítése nem olyan bonyolult, az adatok átadása már érdekeseb lesz. Úgy rémlik - és a beemelt LED-es rész alapján is így látom -, hogy azokkal a sprintf és printf utasításokkal magát a pov fájlt készíti az ulp. Ott azt kellene pontosan tudni, hogy melyik változó, mit jelent, de ez gondolom az ulp elején a deklarációknál megjegyzésben le van írja és egy pov fájl tanulmányozása is segíthet az azonosításban.
Ezt valóban jobban meg kellene néznem, de csak megint otthon... (Tegnap is így volt, aztán mire hazaértem, már megoldottad. )
(#) Attila86 válasza MPi-c hozzászólására (») Márc 10, 2009 /
 
Nos igen...
Azt nem tudom megcsinálni, hogy beteszek egy legördülő menüt és az ott kiválasztott értéket 'kivigye' a makróba. Jobban sajnos nem tudom megfogalmazni.
Például van ez a két sor:
  1. dlgCell(3,0,3,1) dlgLabel(lang[147]);
  2. dlgCell(3,2,3,3) dlgRealEdit(led_height,0,40);

A "dlgCell" után lévő zárójelben a négy szám azt jelenti, hogy a cucc az ablak melyik részében legyen. Például a "(3,0,3,1)" azt jelenti, hogy a harmadik sor legelejétől (0-tól) a harmadik sor 1. részéig írja ki a cuccot. (Mintha tabulátor lenne.)
A "dlgLabel" utáni zárólejben lévő cuccot egyszerűen kiírja. A "lang[147]" gyakorlatilag egy hivatkozás a nyelvi fájlok 147. sorára. Ha magyarra van állítva az Eagle3D, akkor a 147. sor ez: "Távolság a paneltöl:"
A következő sorban a "dlgRealEdit" egy beíró ablakot jelent, amibe számot lehet beírni. Ez után a zárójelben három érték van. A második a beírható szám minimuma, a harmadik érték pedig a beírható szám maximuma. A zárójel első része, a "led_height" nem tudom hogy pontosan mi. Szerintem ezen a néven definiálódik el a beírt szám az OK-gombra való kattintás után.
A gond csak az, hogy nem tudom hogy ez az érték hogyan jut el a LED makrójába. Ráadásul a LED makróját ha megnézi az ember, abban nem "led_height" név van definiálva, hanem csak "height".
Szóval nem értem...
(#) niedziela válasza Attila86 hozzászólására (») Márc 10, 2009 /
 
Idézet:
„LED makróját ha megnézi az ember, abban nem "led_height" név van definiálva,”


Azért mert a "led_height" egy változó.

dlgRealEdit(real &érték, real Min, real Max)

Ha az érték kezdetben a tartományon kívül van, meghatároz egy Min és Max értéket

Ezután jön a sprintf() függvény még...stb

(#) Attila86 válasza niedziela hozzászólására (») Márc 10, 2009 /
 
Idézet:
„Azért mert a "led_height" egy változó.”


Oké, de a LED makrójában is van egy változó, ami a LED paneltól mért távolságát hivatott beállítani. De ez a makróban "height" néven van megadva. Tehát a makróban is változó, csak más a neve.

Idézet:
„Ezután jön a sprintf() függvény még...stb”

Azt a részt nem értem sajnos. Tehát hogy ez mit csinál:
  1. sprintf(pov_pack,"%s%f,",pov_pack,led_height)


Szerintem ez a "pov_pack" lesz a dolog nyitja, de nem tudok rájönni hogy mit jelent.
(#) niedziela válasza Attila86 hozzászólására (») Márc 10, 2009 /
 
Formázott adatátviteli művelet egyik fele a sprintf() függvény ami a formázott stringbe való kiírást valósítja meg.

Az, hogy mi az a pov_pack valójában nem tudom, mert csak annyit látok amennyit ide másoltál

(#) Attila86 válasza niedziela hozzászólására (») Márc 10, 2009 /
 
Idézet:
„Az, hogy mi az a pov_pack valójában nem tudom, mert csak annyit látok amennyit ide másoltál”


Megtaláltam neten a 3d41.ulp-t:
Bővebben: Link
Itt az 1847. sortól ír a LED-ek tulajdonságait beállító ablakról.
(#) Frankye válasza niedziela hozzászólására (») Márc 10, 2009 /
 
Bocsánat, hogy "belevaú", nem is értek annyira hozzá, ezért lehet, hogy marhaság is amit írok, de...
Attila egy félmondata szöget ütött a fejemben, miszerint lehet, hogy ebben a titokzatos "pov-pack"-ban vannak letárolva olyan, előre definiált szövegdobozok, mint amilyenek a Visual Basic-ben pl. a mentésnél-megnyitásnál használatos mappakiválasztó (tallózó) ablak, és hasonlók. Simán el tudom képzelni, hogy ez is valami ilyesféle.
(#) MPi-c válasza Attila86 hozzászólására (») Márc 10, 2009 /
 
Üdv!
Idézet:
„Megtaláltam neten a 3d41.ulp-t:”

Nem látom, hogy ez több lenne, mint az 3DEagle könyvtárban rendelkezésre álló.

pov_pack-ról (mint jeleztem) az ulp eljen van információ:
"string_pack //Hier werden alle Packages reingeschrieben landet in .pov und .mpd" (Én a németet nem értem Frankye is előnyben. )

A lényeg, hogy az ulp a beállításoknak megfelelően a panelről beolvasott adatok (ezt nem néztem, hogy csinálja ) , a párbeszédablakban kapott paraméterek alapján sprintf függvényekkel állítja össze a pov fájlt, ami egy szövegfájl. Ha megnézed pl. az alkatrészeket leíró rész: (Pl.: #ifndef(pack_C3) #declare global_pack_C3=yes; object {CAP_DIS_CERAMIC_25MM_50MM(...) bizonyos része szöveges formában ott van az ulp-ben egy sprintf utasításban. Az ilyen részt megkeresve pl. vissza lehetne fejteni, hogy az általad is mutatott sprintf utasításban melyik "paraméter", mit jelent, abból hogy lesz az alkatrész makrójának neve, paramétere a pov fájl-ban. Segítségül c-ben a sprintf-ben maga a kiirásra kerülő rész az idézőjelek közé kerül. Ide kerülnek a %-lel kezdődő ún. formátumspecifikáció, ami típuskarakterekkel zárul. Pl. az 's' karakterláncot, az 'f' lebegőpontos paramétert jelöl (tizedes tört alakban) Az idézőjelek után vesszővel elválasztva a kiírásra kerülő változók kerülnek felsorolásra, amik a formátumspecifikációnak megfelelően a típuskarakterek helyére kerül. (remélem érthető) Az idézőjeleken belül vezérlőkarakterek is lehetnek. Ilyen a '\n', ami új sort jelent.
(#) Attila86 válasza MPi-c hozzászólására (») Márc 10, 2009 /
 
Üdv.!

Idézet:
„Nem látom, hogy ez több lenne, mint az 3DEagle könyvtárban rendelkezésre álló.”


Csak azért linkeltem be, hogy Niedziela-nak segítsek.

Idézet:
„...
Az ilyen részt megkeresve pl. vissza lehetne fejteni, hogy az általad ismutatott sprintf utasításban melyik "paraméter", mit jelent, abból hogy lesz az alkatrész makrójának neve, paramétere a pov fájl-ban.
...”


Ez nekem sajnos nem megy. Már ez is csoda hogy ennyire sikerült rájönnöm zéró programozói tudással.


Amit még nem írtam az az, hogy ha van például ez a sor:
  1. dlgCell(3,2,3,3) dlgRealEdit(led_height,0,40);

Itt a "led_height"-et átírom valami másra, például "belso_atmero"-re és így futtatom le a 3d41-ulp-t az Eagle-ben, akkor az Eagle3D ablaka nem jelenik meg, hanem feldob egy hubaüzenetet az Eagle, melyben ezt írja:

Idézet:
„C:/Program Files/EAGLE-4.15/ulp/Eagle3D/3d41.ulp(2016)

parse error”


(A "2016" a fájlnak azt a sorát jelöli, amelyiket átírtam.)
(#) MPi-c válasza Attila86 hozzászólására (») Márc 10, 2009 /
 
Legördülő menű: dlgComboBox(megjelenítendő karakterek tömbben, az a változó, ami tárolja a kiválasztott értéket);

A karakter tömb létrehozása így:
string irany[] = {"Jobbra","Balra", "Fel", "Le"};
(#) MPi-c válasza Attila86 hozzászólására (») Márc 10, 2009 /
 
Kapásbol arra gondolok, hogy az általad megadott "belso_atmero" nevű változót nem deklaráltad Ha megnézed a led_height ott van: real led_height =0; Itt egyből nulla értéket is kapott. (Azt én sem tudom, hogy a real milyen típus.)
(#) MPi-c válasza Attila86 hozzászólására (») Márc 10, 2009 /
 
Ha küldesz valami kiindulási alapot megpróbálhatok segíteni.
Üdv!

3deagle_1.png
    
(#) Attila86 válasza MPi-c hozzászólására (») Márc 10, 2009 /
 
Basszus, idáig jutottam most el én is!
A gond most azzal van, hogy a létrehozott .pov fájlt a POV-Ray nem tudja renderelni mert valami hibát jelez.
Mindjárt összeszedem a dolgokat és feltöltöm ide.
Úgy néz ki ma is későn lesz alvás.
(#) Attila86 válasza MPi-c hozzászólására (») Márc 10, 2009 /
 
Itt vannak azok amikkel most operálok:
3d41.ulp
3dlang_hu.dat
user.inc
valtozo21proba.pov
A 3dpack.dat (vagy a 3dusrpack.dat) fájl végére ezt kell beírni:
  1. TJ5-U2_PROBA:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:TJ5_U2_PROBA(:


Azt hiszem mindent odaadtam ami kell hozzá. Ha mégsem, akkor majd szólsz.
(#) MPi-c válasza Attila86 hozzászólására (») Márc 10, 2009 /
 
Szóval, akkor csak ennyi jellemző: Gyűrű adatai: Belsőátmérő, Éleinek sugara,Szín;
Tekercs adatai: Huzalvastagság, Menetszám, Szín?
És azok a korlátozások jók a jellemzőkre, amik az ulp-ben vannak?
Színre ugyanaz, legördülő menüben, mint a lednél jó? Közben látom, hogy az ulp-ben benne van!
(#) Attila86 válasza MPi-c hozzászólására (») Márc 10, 2009 /
 
Igen, az ulp-be igyekeztem beleírni mindent amit tudok.
Pár sor előtt azért van "//" jel, mert ha azokat a jeleket kiveszem, akkor nem fut le az ulp (hibaüzenet).

A gyűrű külső átmérőjét és a vastagságát azért hagytam ki, mert felesleges. Ugyanis ez a makróban szerepel és 'összhangban van' a tokozás rajzával. Tehát felesleges a pov-fájl generálásakor megadni, mivel az alkatrész lerakásakor a felhasználó úgyis azt teszi le ami neki kell (a boardban).

A huzal színénél jó lenne ha más színek (is) lennének mint amiket az Eagle3D alapból tud. De lehet hogy ezt nehéz lenne megvalósítani, ezért egyenlőre ezt a problémát hagyhatjuk.

Amit viszont mindenképpen szeretnék az az, hogy a menetszám csak egész szám lehessen. A makrót nem 'készítettem fel' arra hogy a menetszám tizedes tört, valószínűleg szétesne tőle a 3D-s alakzat.
(#) MPi-c válasza Attila86 hozzászólására (») Márc 10, 2009 /
 
A huzal színét majd később lőjjük be. Itt az ulp a működő párbeszédpanellal. Ez még nem rakja össze a pov fájlt.

3d41.ulp
    
(#) MPi-c válasza Attila86 hozzászólására (») Márc 10, 2009 /
 
Kellene a makró, hogy lássam a szükséges paramétereket. Ha nem akarod ide feltenni, küld mail-ben.
(#) Attila86 válasza MPi-c hozzászólására (») Márc 10, 2009 /
 
Eddig szuper!
Pont így gondoltam az ablakot. Most arra próbálok rájönni hogy hogyan lehetne 'kijuttatni' ezeket az adatokat a pov fájlba. Az a baj, hogy a pov fájl hibaüzenetet ír ki még mindig. Nálad is?
(#) Attila86 válasza MPi-c hozzászólására (») Márc 10, 2009 /
 
Feltettem azt is! Az user.inc-ben van.
Nem titkolom, egyszer úgyis publikussá teszem az egészet.
(#) MPi-c válasza Attila86 hozzászólására (») Márc 10, 2009 /
 
Persze Fáradok Még nem kezdtem el a pov fájlt, majd most.
(#) MPi-c válasza Attila86 hozzászólására (») Márc 10, 2009 /
 
Ez a makró : #macro TJ5_U2_PROBA() !
Nincsennek paraméterek "fogadásához" a változók megadva a zárójelek között!
(#) MPi-c válasza MPi-c hozzászólására (») Márc 10, 2009 /
 
Azt hiszem így kellene:
#macro TJ5_U2_PROBA (,dbelso,,,gyleke,gyszin,menetsz,dhuzal,hszin). Így már összerak valami hosszabb pov fájlt.
(#) Attila86 válasza MPi-c hozzászólására (») Márc 10, 2009 /
 
Én is erre a következtetésre jutottam, de így sem jó sajnos.
  1. #macro TJ5_U2_PROBA(dbelso,gyleker,gyszin,menetsz,dhuzal,hszin)

Így most azok a változók szerepelnek a zárójelben amiket a 3d41.ulp-be írtunk.
(#) Attila86 válasza Attila86 hozzászólására (») Márc 10, 2009 /
 
Ezt nem hiszem el...
Vergődésemben próbaképp beírtam a zárójelbe még ezt "abcd". Csak úgy. Tehát ez lett belőle:
  1. #macro TJ5_U2_PROBA(abcd,dbelso,gyleker,gyszin,menetsz,dhuzal,hszin)

Így már nem ír ki hibaüzenetet a POV-Ray és megrajzolja a gyűrűt! De az értékek nem azok amiket beállítunk a generáláskor.
Ha az objektum hívásának sorában is átírom a zárójelben lévő értéket, mondjuk a menetszámot meghatározó "14"-et "menetsz"-ra, akkor is megrajzolja a gyűrűt, de tekercs nélkül.
Tehát ha ezt:
  1. object{GYURU_PROBA_GRND(1,9.5,24,10,1,Blue,[b]14[/b],1.2,New_Brass)}

Ezzé írom át:
  1. object{GYURU_PROBA_GRND(1,9.5,24,10,1,Blue,[b]menetsz[/b],1.2,New_Brass)}
(#) Attila86 hozzászólása Márc 10, 2009 /
 
MPi-c! SIKERÜLT!!!

A beállított értékek igenis átkerülnek a makróba!! Pontosabban eddig még csak a huzalvastagsággal próbálkoztam, de az gyönyörűen működik!

Itt van az ulp:
3d41_felig_mukodo.ulp
(#) Attila86 válasza Attila86 hozzászólására (») Márc 10, 2009 /
 
Így juttattam ki az adatokat:
  1. sprintf(pov_pack,"%s%f,",pov_pack,dbelso);
  2. sprintf(pov_pack,"%s%f,",pov_pack,gyleker);
  3. sprintf(pov_pack,"%s%f,",pov_pack,gyszin);
  4. sprintf(pov_pack,"%s%f,",pov_pack,dhuzal);
  5. sprintf(pov_pack,[color=red]"%s%f,"[/color],pov_pack,menetsz);
  6. sprintf(pov_pack,"%s%f,",pov_pack,hszin);

A menetszám értékét 'kiküldő' sor elejére tettem két per jelet, mert az a sor nem tetszik az Eagle3D-nak. Azt a részét kifogásolja amelyiket pirossal kiemeltem.

Illetve szerintem a színek tuti hogy nem fognak így kikerülni mint a számszerű értékek.
(#) MPi-c válasza Attila86 hozzászólására (») Márc 10, 2009 /
 
OK! Akkor ez már összejön. Én most kiszálltam :unalmas:
(#) Attila86 válasza MPi-c hozzászólására (») Márc 10, 2009 /
 
Én is. Majd holnap folytatom. :yes:
Következő: »»   25 / 42
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem