Fórum témák
» Több friss téma |
Fórum » Eagle 3D segítség, POV-Ray
Témaindító: Thomas10100, idő: Jún 5, 2006
Témakörök:
Nem értelek, vagy te nem értettél eddig.
A 3dpack.dat-ban vannak a társítások, hogy az adott Eagle-s tokhoz melyik POV-Ray-es makró tartozzon. De itt nem csak egyszerű társítás van, hanem közte van 30db változó, amiket át lehet irkálni. Ezeket a változókat az Eagle3D figyeli miközben lefut. Ha azt látja hogy a 7. változó 1-es, akkor feldobja a LED-ek színét megkérdező ablakot. Minden változó mást csinál. De a makrók nem itt vannak, hanem más fájlokban. Ott annyi változót deklarálok amennyit kedvem tartja. Ezekre az értékekre a 3D-s makrókban (szinte) bármikor hivatkozhatok, műveleteket hajthatok végre velük stb... Például a toroid gyűrűnél egy egész hosszú sornyi bonyolult képletet kellett írnom ilyen változókból, hogy kiszámolódjon egy marék adat. Például a menetszámmal elosztja a POV-Ray 360-at, így megkapom hogy 1-1 menet hány foknyira van egymástól, és ezzel az értékkel forgatom el a következő (n+1) menetet. Az Eagle3D program készítői által direkt szabadon hagyott 8-9 változót csak az Eagle3D-ben tudom felhasználni.
Kiderítettem, hogy én nem értettelek egészen.
Megnéztem kicsit jobban is. A 3dpack.dat adatai határozzák meg a makró futása közben felbukkanó ablakokat (vagy simán átadja őket a .pov fájlba, ha nem kell kézzel állítgatni), ha jól értelek és jól értettem a fájlokat is. A paraméterek száma majdnem adott, úgy láttam, mintha lenne a végén egy opcionális, aminek talán a nyelvi beállításhoz van köze (sajnos a C tudásom hiányos, sok függvényt nem ismerek). Arra tippelek, hogy ha a 299. sortól a 319. sorig lévő részben a 31, 32, 33 számokat feljebb veszed, akkor több változód lesz üresen. Ennek megfelelően nem a végére kell őket betenni, hanem a 30-as után (0-val kezdi, azaz a 31. után). A 31-es (ami a 32.) a makró neve, van még az object neve, majd a : ami után jönne a nyelves dolog. (Ez annyira nem érdekes. Félig értem, ahol a 32-es németül van, ott létezik a 33-as és abban angolul van a neve.) De mondom, nem vagyok annyira otthon C-ben (sem) és este is van, így kb. ezt hámoztam ki belőle. Illetve lehet, hogy még pár száz helyen kellene belejavítgatni, hogy menjen rendesen. Ha újabb userformokat szeretnél így használni, akkor szerintem biztos is, ha csak paraméter átadás a cél, akkor talán nem annyira. Az is lehet, hogy teljesen hülyeségeket írtam (de megpróbáltam ). A legjobbakat! Idézet: „A 3dpack.dat adatai határozzák meg a makró futása közben felbukkanó ablakokat (vagy simán átadja őket a .pov fájlba, ha nem kell kézzel állítgatni), ha jól értelek és jól értettem a fájlokat is.” Tulajdonképpen igen. Ezen kívül van más célja is 1-1 változónak, például az egyik azt határozza meg hogy az alkatrész értéke (pl.: 220k) kikerüljön-e a makróba vagy sem. Idézet: „Arra tippelek, hogy ha a 299. sortól a 319. sorig lévő részben a 31, 32, 33 számokat feljebb veszed, akkor több változód lesz üresen. Ennek megfelelően nem a végére kell őket betenni, hanem a 30-as után (0-val kezdi, azaz a 31. után).” Szerintem csakis kizárólag a legutolsó (33.) után tehetnék be új változókat. Egyrészt azért, mert ha a 1. és a 33. közé tennék be akkor az a betett változó utáni változók eltolódnának. Másrészt pedig akkor az összes társítást át kellene írni és mindegyikbe beszúrni az új változókat. De azt tényleg ki lehetne próbálni hogy a legutolsó gyári változó után teszek be még változó(ka)t. Így akármennyi ilyen felugró ablakot létre tudnék hozni. Vannak ám még ötleteim, például arra is gondoltam hogy LCD kijelzőnél be lehetne írni egy kis ablakba hogy mi jelenjen meg a kijelzőn. Idézet: „például arra is gondoltam hogy LCD kijelzőnél be lehetne írni egy kis ablakba hogy mi jelenjen meg a kijelzőn.” Nem akarsz kicsit sokat? Ezzel együtt el tudom képzelni, hogy további változókat is képes legyen fogadni. Kérdés, hogy a "fogadó" oldalon fel van-e készítve a szoftver arra, hogy az átküldött (további) változókat tudja fogadni. Idézet: „Kérdés, hogy a "fogadó" oldalon fel van-e készítve a szoftver arra, hogy az átküldött (további) változókat tudja fogadni.” Igen, ebben teljesen biztos vagyok. Annyi adatot küldhetek ki az Eagle3D-ből a makróba amennyit csak akarok. Szóval ezzel biztosan nincs gond, csak azt nem tudom hogy az Eagle3D tudja-e értelmezni azt hogyha beírok neki egy 34. változót. De mindjárt kipróbálom.
Hehe, ez működik!
Kipróbáltam, beírtam 50-ig változókat és gyönyörűen megtalálja hogy hol van 1-es. :yes: Most már végképp kiélhetem minden vágyam... Most azt kellene tudni, hogy hogyan tudom meghatározni hogy egy "dlgStringEdit" ablakban csak mondjuk 16 karaktert lehessen beírni. Mert ugyebár például a 2x16-os LCD modulok egy sorba csak 16 karaktert tudnak kiírni. Korábban ugye szóba jött hogy például a menetszám esetén csak egész számot lehessen beírni. Na, szerintem itt is ilyesmi 'formátum-meghatározó' dolog kellene.
Lehet, hogy hülyeség, amit írok, de...
A VB-ben a párbeszéd-ablakokban a szövegbeviteli mezők Tulajdonság lapján - ha jól emlékszem! - be lehet állítani, hogy mit fogadjon el (betű, szám, egész, lebegőpontos, mittudoménmi), illetve, hogy milyen hosszút (szám esetén min. és max.) lehessen beleírni. (Örülök, hogy végül sikerült!)
Igen, de ez nem VisualBasic, itt nincs ilyesmi grafikus felület hanem egyszerű Notepad++ -ban kell átírni a dolgokat.
Itt ilyen varázsigék vannak, mint például:
A multkor úgy emlékszem Niedziela segített ebben, talán most is tud majd. Ja és azt sem tudom hogy "int" vagy "real" vagy valami mást kell-e írni a dialóg-ablak elején.
Tudom én, hogy nem VB, csak eszembe jutott, hogy ott így működik. Gondoltam, tippadásnak hátha jó...
No de majd Niedziela biztos tudni fogja!
A típusok (amit megtaláltam, mert marha rég nem C-ztem):
int - egész string - szöveges real - valós ha a neve után []-t teszel, akkor tömb lesz: string color_lgtp[] = {"White","Red","Green","Blue","Yellow","Gray50","Gray25"}; Az értékadás nem kötelező deklarálásnál és egyszerre többet is lehet: real x_max,y_max,x_min,y_min; Úgy látom, hogy a beírtak elenőrzését csak az OK után tudod ellenőrizni, egyszerűen meg kell nézni a karaktersor hosszát, s ha túl sok, akkor újra feldobni az ablakot. Csak nem tudom, hogy megjegyzi-e majd az adatokat... if (strlen(szoveg) > 16) jelenjen_meg_ujra; (Az else ág lényegtelen, mert abban az esetben csak tovább kell mennie.)
Sziasztok!
kb. 2órája foglalkozom eagle3dben saját alkatrész létrehozásával. Nagyából már vágom a dolgot csak nem tudom felhasználni az eagleben! Szinte biztos vagyok benne, hogy elhangzott már a megoldás, de hát ennyit végig olvasni! Nekem elég az is, ha csak megmondjátok hányadik oldalon van, meg fogom érteni! Tudom, hogy ha egy alkatrészhez akarok társítani, eagle macrot akkor be kell pipálni a user assigned models négyzetet, de utána nem találom a listában. Gondolom azért mert nem is tettem semmit, hogy ott legyen! De mit kell tenni?
Sőt szerintem már azt is tudom, hogy, hogy kell,de még sincs a listában!
Én nem igazán értek ehhez, de ha jól értem amit írtál, akkor fordítva van, mint ahogy gondolod.
Nem a 3D alkatrészt használod az Eagle-ben, hanem az Eagle tokozás (neve) alapján a makró készít egy olyan fájlt, amit utána renderelhetsz és képként megjelenik. A makró annyit* csinál, hogy a tokozás neve alapján megadja, hogy mit kell rajzolni. Ez van a 3dpack.dat-ban, hogy milyen tokozáshoz melyik makró kell. A makró pedig egy POV-Ray sablon (.inc fájl) alapján saját hatáskörben megírja a .pov fájlt, ami már renderelhető is. Nem is a fájlt, annak egy részletét, nevezetesen a kérdéses alkatrészt. * Ez nem igaz, ennél sokkal többet, de a kérdés vonatkozásában ennyi lényegeset. Pl. a nevén kívül más is számít, de a neve alapján dől el, hogy melyik makró fogja megrajzolni.
Igen azt értem (tudom) amit mondasz, de hogy tudom hozzárendelni az adott tokozást, az adott 3d macrohoz?
Közben rájöttem, sikerült!
Azért köszönöm! Idézet: „Ez van a 3dpack.dat-ban, hogy milyen tokozáshoz melyik makró kell.” Idézet: „Igen azt értem (tudom) amit mondasz, de hogy tudom hozzárendelni az adott tokozást, az adott 3d macrohoz?” Idézet: „Közben rájöttem, sikerült!”
Köszönöm, így már működik tök jól a dolog.
Mármint az ablak megjelenik úgy ahogy azt kell, de az adatokat nem tudja kiküldeni az Eagle3D, mert nem tetszik neki az adat formátuma. Tehát ez helyett:
mit kellene beírni? És egy másik dolog: Idézet: „ha a neve után []-t teszel, akkor tömb lesz:” Ez nagyon izgalmasan hangzik! De mit értesz "tömb" alatt?
Nem csak várom a sült galambot mielőtt még azt írná valaki, hanem utánaolvastam a dolgoknak és tudom hogy c-betűt kellene odaírni mert az jelenti az ASCII karaktert. De nem tudom hogy hogyan. Próbáltam 5-6 variációt de egyik sem tetszett az Eagle3D-nek.
Idézet: „Ez nagyon izgalmasan hangzik! De mit értesz "tömb" alatt?” Képzelj el egy több rekeszes fiókot aminek meg vannak számozva a rekeszei 0....n -ig. Ebbe tehetsz a típusnak megfelelő dolgokat. Ez a tömb képletesen. A fiók rekeszeibe tehetsz, és ki is vehetsz, ha megmondod, melyik rekeszből akarod kivenni ami benne van. String doboz[]={"első_rekesz_elem","második_rekesz_elem"} első_rekesz_tartalma:= doboz[1] Akkor az "első_rekesz_tartalma" = "első_rekesz_elem" Idézet: „"%s%f,"” Erről lemaradtam, mi van ezzel ?
Közben a formátum problémáját megoldottam; ellestem a program más részeiből hogy ott hogyan van. Végülis így most kikerül a szöveges adat:
De most más gondom van. A generált pov fájlban ahol a kiküldött adatok vannak, onnan valamiért lespórol egy nyit zárójelet és emiatt nem fut le a renderelés. Ha beírom a zárójelet én magam, akkor szépen lefut és az a szöveg is megjelenik amit az Eagle3D-ben beírtam. Most arra kell rájönnöm hogy miért felejti el azt a nyitó zárójelet...
Megoldottam a problémát, most már hibátlanul működik a dolog, ki tudok küldeni szöveges adatot az Eagle3D-ből a makróba.
A kérdésem az, hogy hogyan szokás a (például 2x16-os) LCD modulokat az alatta lévő nyákhoz csatlakoztatni? Én nem szoktam LCD modulokat használni mert nem értek a mikrokontrollerekhez. Egy induktivitás-mérőt építettem csak, ott wire-wrap-es hüvelysoroknak a lábai néznek lefelé és az alsó nyákon lévő hüvelysorokba csatlakoznak. De el tudok képzelni olyan megoldást is, hogy normál hüvelysorok néznek az LCD-panelról lefelé és az alsó nyákon pedig tüskesorok vannak. Szóval hogyan szokás ezt a kapcsolatot megoldani? Azért nem OFF a dolog, mert ez az LCD kijelző makrójának megírásához kellene.
Hello!
Ilyesmire gondolsz: Bővebben: Link ? Én személy szerint mindig úgy csinálom, hogy a tüske sor az LCD-n van, de kinek hogy..... Egyébként INNEN van.
Még valami; milyen színű háttérvilágítású 2x16-os LCD modulok léteznek? Zölden és kéken kívül van másmilyen is?
Eddig így néz ki a dolog:
Bővebben: Monitorkép A csatlakozók még nincsenek megírva a makróban, de azokat egyszerűen csak meg kell hívni és a megfelelő helyre tenni.
Hallottam már - látni még nem volt szerencsém! - narancssárga, és piros hátterűről is, de az - szerintem - ritka, mint a fehér varjú. Egyébként még használatos megoldás a szalagkábel is, ha az áramkör valami okból távolabb van az LCD-től, mint ami sima tüskesorral áthidalható, és nem kívánják oldhatóvá (értsd: könnyen megbonthatóvá!) tenni a kötést.
Attila erre gondoltál már,hogy megrajzold?Bővebben: Link
Eagle-ben a sima Switch mappában van>>255SB
Elkezdtem egy elég bonyolult dolgot megírni; a (például) Lomexben kapható alumínium műszerdobozokat rajzolom meg. (Pl.: M10-es doboz)
Ezáltal az áramkörök már nem csak az Eagle3D hullámzó vízfelülete felett lebeghetnek, hanem láthatjuk az áramkört a műszerdobozával együtt. Eddig az Eagle3D-ben a tulajdonságokat beállító ablakot írtam meg kb félig, erről itt látható pár kép hogy hogy néz ki: Bővebben: KÉP1 Bővebben: KÉP2 Bővebben: KÉP3 Ez az ablak még nagyon nincs készen, de megmutatom mert nem keveset izzadtam mire összejött. Szóval észrevételeket, javaslatokat várok a dologgal kapcsolatban. Az előlap és a hátlap kivágásait azért vettem ilyen komolyan, hogy a potméterek, kijelzők, csatlakozók, nyomógombok stb. 'kibújhassanak' a doboz belsejéből. Jelenleg a gondom egyébként az, hogy az 'OK' gombra ha rányomok akkor nem történik az égvilágon semmi. De szerintem meg tudom oldani a gondot, ha nem akkor meg úgyis szólok. A makró megírása nem lesz annyira nagy feladat csak az a része, hogy összesen 90 adatot kezeljek. Nagyon átláthatatlan lesz ugyanis a makró. |
Bejelentkezés
Hirdetés |