HobbyCNC fórum
FTP tárhely: http://cnctar.hobbycnc.hu v0.9.6 Régi HobbyCNC oldal: http://archiv.hobbycnc.hu

Új regisztráció / Átregisztráció a régi fórumról
    
   


UCCNC vezérlő program

A frissítések közzététele az 'UCCNC vezérlő program új verziói' témában található

 

Időrend:
Oldal 115 / 191 Ugrás ide:
Sorok:
|◄ Első  ◄ Előző   111  112  113  114  115  116  117  118  119   Következő ►  Utolsó ►|

  Fórum főoldal  |  A lap aljára

ANTAL GÁBOR | 4681    2017-04-20 20:43:54 [3834]

No várjál csak !! A " magod" ugyancsak termékeny földbe hullott tegnap ( Már ma megfogalmazódott bennem egy fontos makró szükségessége de másodszor már nem mertelek hívni telefonon ) Írok egy privátot is.....

Előzmény: dezsoe, 2017-04-20 20:40:39 [3833]


dezsoe | 2934    2017-04-20 20:40:39 [3833]

Sőt, a legjobb az lenne, ha lenne egy olyan funkció, ami kiszámolja a futásidőt. Akkor nem kéne offline végigfuttatni, hogy kiderüljön, mennyi idő alatt fut le.

Előzmény: ANTAL GÁBOR, 2017-04-20 20:35:00 [3832]


ANTAL GÁBOR | 4681    2017-04-20 20:35:00 [3832]

Akkor a megoldás mindkét tábornak :
"A legjobb lenne egy ablak a generálban ahol ki lehetne választani hogy melyik metodikát akarjuk"

Előzmény: dezsoe, 2017-04-20 20:32:15 [3831]


dezsoe | 2934    2017-04-20 20:32:15 [3831]

Mindkét lehetőség alátámasztható. Én pl. örülök neki, hogy nem automatikus, mert így meg tudom nézni, hogy több kód egymás után mennyi idő alatt fog lefutni összesen. Igaz, hogy össze is adhatnám, de az már bonyolult. (Meg kell jegyezni, hogy eddig mennyi volt... )

Előzmény: ANTAL GÁBOR, 2017-04-20 20:24:40 [3830]


ANTAL GÁBOR | 4681    2017-04-20 20:24:40 [3830]

Ez már nekem is megfogant a fejemben :
"Nekem valahogy az lenne a logikusabb ha Cycle Start-kor automatikusan nullázódna."
( de ha nagyon érdekel akkor nullázom kézzel amit persze nótóriusan elfelejtek )
A legjobb lenne egy ablak a generálban ahol ki lehetne választani hogy melyik metodikát akarjuk használni

svejk | 33140    2017-04-20 17:57:54 [3829]

Két kérdésem ismét akadt az UCCNC-vel kapcsolatban, lehet volt már róluk szó.

A szerszámpálya az egér görgővel is nagyatható aránylag érezhetően, előre görgetve nagyít de egy picit is visszagörgetve elmegy a munkadarab több kilóméteres madártávlatba.
Visszafelé görgetve az ember olyan arányú kicsinyítést várna mint nagyítást.

A másik kérdésem a ciklusidő számlálóra vonatkozik.
Nekem valahogy az lenne a logikusabb ha Cycle Start-kor automatikusan nullázódna.


svejk | 33140    2017-04-20 00:20:10 [3828]

Holnap du. vagyis ma, majd folytatom a törpölést...

Előzmény: svejk, 2017-04-20 00:18:48 [3827]


svejk | 33140    2017-04-20 00:18:48 [3827]

"A szerszámpálya az a leírt okok miatt sosem fog látszani. A pályamegjelenítő nem futtathatja a makrókat, ...."

Basszus...akkor nagy hűhó volt szinte a semmiért.

Annyit nem ér nekem hogy ne kelljen egy helyre beírni kézzel 3 sort, hogy ne legyen korrekt kijelzés.

Vagy vissza kell térni az én gyalog, buta verziómhoz -annál jó a megjelenítés- és a makro csak valahogy állítsa meg az adott sornál a programfutást ha nulla Y értéket észlel a paraméterezésnél.

Előzmény: dezsoe, 2017-04-20 00:02:21 [3826]


dezsoe | 2934    2017-04-20 00:02:21 [3826]

Nincs mit.

A szerszámpálya az a leírt okok miatt sosem fog látszani. A pályamegjelenítő nem futtathatja a makrókat, ezért az onnan jövő értékeket nem tudhatja. (Gondolj bele: egy csomó olyan makró van/lehet, ami nem csak számolgat, hanem tengelyeket mozgat, ki-be kapcsolgat dolgokat, kimeneteket vezérelhet stb.)

Egyébként, ki lehet trükközni a hibát, ha a kód elejére beírsz egy #2=1 sort. Onnantól jól működik, függetlenül a megjelenítéstől. (Ezzel "megnyugtatod" a megjelenítőt, hogy az a bizonyos sor helyes, aztán az M20000 úgyis átírja.)

Előzmény: svejk, 2017-04-19 23:52:39 [3825]


svejk | 33140    2017-04-19 23:52:39 [3825]

Akkor most örüljek is meg ne is?

Nekünk amatőröknek a szerszámpálya fontos és ez a kétszeri behívás sem valami szimpatikus.

No várjuk Balázs atyát, hátha mond, vagy ígér valamit!

Addig is köszi újfent!

Előzmény: dezsoe, 2017-04-19 23:12:54 [3824]


dezsoe | 2934    2017-04-19 23:12:54 [3824]

És akkor a kód:

#100= 5 (az 1. sor Y koordinataja)
#101= 10 (az 2. sor Y koordinataja)
#102= 15 (az 3. sor Y koordinataja)
#103= 20 (az 4. sor Y koordinataja)
#104= 25 (az 5. sor Y koordinataja)
#105= 30 (az 6. sor Y koordinataja)
#106= 35 (az 7. sor Y koordinataja)
#107= 40 (az 8. sor Y koordinataja)
#108= 45 (az 9. sor Y koordinataja)
#109= 50 (az 10. sor Y koordinataja)
#110= 55 (az 11. sor Y koordinataja)
#111= 60 (az 12. sor Y koordinataja)
#112= 65 (az 13. sor Y koordinataja)
#113= 70 (az 14. sor Y koordinataja)
#114= 75 (az 15. sor Y koordinataja)
#115= 80 (az 16 sor Y koordinataja)
#116= 85 (az 17. sor Y koordinataja)
#117= 90 (az 18. sor Y koordinataja)
#118= 95 (az 19. sor Y koordinataja)
#119= 100 (az 20 sor Y koordinataja)

#10= -2 (furat melyseg)
#11= 1 (utazo magassag)
#12= 250 (furas elotolas)

#21= 13 (az elso oszlop X koordinataja)
#22= 8 (az oszlopok tavolsaga)
#23= 4 (az oszlopok szama)

#1 = 100 (Elso adat sorszama)
M20000 (Adatok szama #2-be)
(#3 lesz az aktualis Y)
#4 = #22 (az X relativ mozgas elojellel)
#5 = #23 - 1 (az oszlopok szama - 1)

G17 G40 G64 G90 G92.1 G99
S4500
M3

G0 Z20
G0 X#21

M98 P10 L#2 (sorok feldolgozasa)

G0 Z20
M5
G0 X0 Y0
M30

O10
M20001 (#3 = ##1)
G0 Y#3
G81 Z#10 R#11 F#12
M98 P20 L#5
#4 = -1 * #4
#1 = #1 + 1
M99

O20
G91
G81 X#4 Z#10 R#11 F#12
G90
M99

Az M20000.txt makró:

int i = 0;
while (exec.ivars[100 + i] != 0) ++i;
exec.ivars[2] = i;

A M20001.txt makró:

exec.ivars[3] = exec.ivars[Convert.ToInt32(exec.ivars[1])];

Előzmény: dezsoe, 2017-04-19 23:11:05 [3823]


dezsoe | 2934    2017-04-19 23:11:05 [3823]

Na, kérem. A kód egyszerű, ahogy tegnap is írtam.

DE! Balázs, figyelem!

Egy hiba miatt elsőre nem fut le, ugyanis rögtön az első alprogram hívás L paramétere az UCCNC betöltésekor nullát tartalmazó változók miatt nulla lesz (M98 P10 L#2). Ezzel nem is lenne baj, ez a változó majd az M20000 lefutása után kap értéket, még a kritikus sor előtt. (Illene ellenőrizni és ha nulla, akkor STOP-ot nyomni, de ezzel most nem foglalkoztam.) Igen ám, de mivel a betöltéskor ezt a sort hibásnak bélyegezte az UCCNC, ciklus start után már meg sem próbálja végrehajtani! Ez baj. Ha viszont újra betöltjük a kódot, akkor már lefut rendesen, függetlenül attól, hogy a megjelenítés nem jó. (Nem is lehet jó, hiszen a megjelenítő nem futtatja a makrókat, és a koordináták és darabszámok ott kapnak értéket.)

Tehát a programnak úgy kellene működni, hogy a paramétereket futásidőben ellenőrzi és nem betöltéskor!

    

Előzmény: svejk, 2017-04-19 17:53:47 [3808]


dezsoe | 2934    2017-04-19 21:36:56 [3822]

Az izgis lesz, mert nagy valószínűség szerint kocsival megyek... Kár, hogy péntek este nem leszel ott, pedig arra számítottam.

Előzmény: svejk, 2017-04-19 21:24:30 [3821]


svejk | 33140    2017-04-19 21:24:30 [3821]

Dezsoe koma kérj valami nagyot, mert különben liitatom veled a kantint!


svejk | 33140    2017-04-19 21:23:04 [3820]

Ó... s milyen száraz tiszta érzés ez a 20 éve megszokott notepad felület!

Előzmény: svejk, 2017-04-19 21:20:40 [3819]

svejk | 33140    2017-04-19 21:20:40 [3819]

kisbetű/nagybetű...és már műxik is!

Előzmény: svejk, 2017-04-19 21:17:54 [3818]


svejk | 33140    2017-04-19 21:17:54 [3818]

Nem adja magát, no majd egy másik, egyszerűbb PC-nél is kipróbálom holnap.

Előzmény: svejk, 2017-04-19 21:02:48 [3817]


svejk | 33140    2017-04-19 21:02:48 [3817]

Ja felfogtam a notepados sor ki is van REM-elve a dupla //-el

Előzmény: svejk, 2017-04-19 21:00:09 [3816]


svejk | 33140    2017-04-19 21:00:09 [3816]

Előzmény: dezsoe, 2017-04-19 20:52:23 [3815]


dezsoe | 2934    2017-04-19 20:52:23 [3815]

Az csak a példa kedvéért van ott. Azért írtam, hogy keresd meg a kedvenc szerkesztődet és azt írd oda. A PSPad az én gépemen van (Win10x64), nem a tiéden!

Előzmény: svejk, 2017-04-19 20:03:33 [3814]


svejk | 33140    2017-04-19 20:03:33 [3814]

Dezsoe!
Azok az elérési útvonalak XP-re vonatkoznak ugye?

A notepad-ot megtaláltam win7 64 bit-ben, máshol de mi az a PSpad.exe? Ilyet nem találok.

Előzmény: dezsoe, 2017-04-18 15:39:10 [3779]


svejk | 33140    2017-04-19 18:13:33 [3813]

Okszi, elkönyveltem a magyarázatot!

Előzmény: CNCdrive, 2017-04-19 18:05:01 [3812]


CNCdrive | 449    2017-04-19 18:05:01 [3812]

Szia Svejk,

ok, így már értem és igen ez szándékosan így működik.
A # változó tárban az értékek nem nullázódnak csak ha újraindítod az UCCNC-t, mert lehet sok olyan alkalmazás ahol meg akarod tartani az értékeket amíg fut az UCCNC több g-kód progi betöltése során is.
Ráadásul MDI-ből is tudsz értéket adni és használni a változókat, szóval akarhat valaki olyat csinálni, hogy egy g-kód progi futása után MDI-ből fel akarja használni a változók értékét. Vagy egy következő g-kódnál tovább akarja esetleg használni a már meglévő értékeket.
Ráadásul makró hurkok és plugin-ok is használhatnak változókat saját célokra ezért problémás lehetne ha kinulláznánk minden változót mondjuk g-kód újratöltéskor.

A változó tár általad használt vagy akár egész részét te magad kinullázhatod ha erre van szükséged egy makróval, például egy for ciklussal ami 0 értéket ad a változóidnak.

Előzmény: svejk, 2017-04-19 17:53:47 [3808]


svejk | 33140    2017-04-19 18:01:11 [3811]

No ez a kérdés így értelmetlen, mert nem biztos, hogy ismered az előzményeket.

Elküldöm a teljes kódot magánban.

Előzmény: svejk, 2017-04-19 17:59:46 [3810]


svejk | 33140    2017-04-19 17:59:46 [3810]

De ha már itt vagy megkérdezlek Téged is, hogy hogy lehetne legegyszerűbben figyelni, hogy ha a #101- #120 paraméterek közt nulla értékhez ér akkor leállítsa a programot?

Előzmény: CNCdrive, 2017-04-19 17:45:47 [3807]

svejk | 33140    2017-04-19 17:55:44 [3809]

más...
Megtaláltam a képernyő regenerálás kódját, 555, műxik!

Előzmény: CNCdrive, 2017-04-19 17:45:47 [3807]


svejk | 33140    2017-04-19 17:53:47 [3808]

Itt van példának a tegnapi bénázásom eleje.
Ha mondjuk a #105... sort zárójelbe rakom, vagy nem írok az = után semmit akkor is tovább számol az előzőleg használt értékkel.
Nem elég újra betölteni a G-kódot, újra kell indítani az UCCNC-t, hogy elfelejtse a paraméter értékét.
Természetesen ha csak megváltoztatom az értéket akkor rendben az újjal számol rögtön.



#1= 13 (az elso oszlop X koordinataja)
#2= 8 (az oszlopok tavolsaga)
#3= 4 (az oszlopok szama)
#10= -2 (furat melyseg)
#11= 1 (utazo magassag)
#12= 250 (furas elotolas)


#101= 5 (az 1. sor Y koordinataja)
#102= 10 (az 2. sor Y koordinataja)
#103= 15 (az 3. sor Y koordinataja)
#104= 20 (az 4. sor Y koordinataja)
#105= 25 (az 5. sor Y koordinataja)
#106= 30 (az 6. sor Y koordinataja)
#107= 35 (az 7. sor Y koordinataja)
#108= 40 (az 8. sor Y koordinataja)
stb...

Előzmény: CNCdrive, 2017-04-19 17:45:47 [3807]


CNCdrive | 449    2017-04-19 17:45:47 [3807]

Szia Svejk,

Egy néhány soros példa kódot tudnál írni erre a jelenségre, mert nem vagyok benne biztos hogy jól értem mire gondolsz.

Előzmény: svejk, 2017-04-19 17:29:52 [3805]


svejk | 33140    2017-04-19 17:45:32 [3806]

No ez nekem nem fog menni.
Elküldtem magánban meddig jutottam.

Csak ha nem nyűg akkor foglalkozz vele és természetesen honorálom a segítséget.

Előzmény: dezsoe, 2017-04-18 23:24:03 [3802]


svejk | 33140    2017-04-19 17:29:52 [3805]

Egy számomra először érdekesnek tűnő jelenség, hogy a paraméteres G-kódnál ha zárójelezek egy sort a paramétermegadásnál, vagy csak egyszerűen nem adok értéket valamelyiknek akkor a kód újratöltése után is megtalálja az értéket és tovább számol vele.

Csak akkor felejti el, ha újraindítom az UCCNC-t.

Tehát valami tárban ott marad. azt nem tudom, hogy ez hiba-e.


dezsoe | 2934    2017-04-18 23:35:19 [3804]

Nincs mit, én is alvó módba kapcsolok...

Előzmény: svejk, 2017-04-18 23:24:37 [3803]


svejk | 33140    2017-04-18 23:24:37 [3803]

No ezt már csak holnap délután kezdem megemészteni....

Permanens KÖSZÖNÖM!

Előzmény: dezsoe, 2017-04-18 23:22:23 [3801]


dezsoe | 2934    2017-04-18 23:24:03 [3802]

Az első makró rövidebben:

int i = 0;
while (exec.ivars[100 + i] != 0) ++i;
exec.ivars[2] = i;

A p-re semmi szükség nem volt.

Előzmény: dezsoe, 2017-04-18 23:22:23 [3801]


dezsoe | 2934    2017-04-18 23:22:23 [3801]

OK. Az oszlopok távolságát akkor tedd a #4-be, ezzel fogsz relatív mozgást végezni.

Ezután az első makró:

int i = 0;
int p = 100;
while (exec.ivars[p+i] != 0) ++i;
exec.ivars[2] = i;

A második makró:

exec.ivars[3] = exec.ivars[Convert.ToInt32(exec.ivars[1])];
exec.ivars[1] = exec.ivars[1] + 1.0;
exec.ivars[4] = exec.ivars[4] * -1.0;

Majd arra figyelj, hogy a második makró rögtön megváltoztatja a #4 előjelét, tehát ellentétes előjellel kell a kezdőértékét megadnod.

Előzmény: svejk, 2017-04-18 23:09:11 [3800]


svejk | 33140    2017-04-18 23:09:11 [3800]

No és persze a fúrás sorrendje sem mindegy, az üresjáratok miatt.
X irányba kell haladni kígyóvonalban, mert az oszlopok száma 1-15-ig terjedhet 450 mm összélességben míg a sorok száma 2-20-ig de 3000 mm összmagasságban.

Előzmény: svejk, 2017-04-18 22:31:24 [3797]

svejk | 33140    2017-04-18 23:03:20 [3799]

Ezt eddig értem, csak azt nem tudom, hogy fognak a makrok kinézni.
Hiába tudom a logikai feltételeket ledeklarálni, ha nem ismerem a makrok utasításait és a szintaktikát.
A múltkor is egy nyamvadt két soros makrot is egy napig tartott megírni, de azt is csak a segítségetekkel.

No meg ugye ekkor már nem csak egy G-kód az egész, hanem elhagyhatatlan része a makro, amit ugye máshol tárol a gép mint a G-kódot.

Előzmény: dezsoe, 2017-04-18 22:51:54 [3798]


dezsoe | 2934    2017-04-18 22:51:54 [3798]

Két makróval megoldható. Tételezzük fel, hogy az Y koordináták a #100-tól kezdődően vannak letárolva, az utolsó után 0 van, ahogy írtad. Az első makró átnyálazza a változókat 100-tól és megszámolja, hogy hányszor kell futni. Ezt visszaadja egy változóban (#2), amit a g-kódban a szubrutin (alprogram) hívás L paraméterének fogod megadni. Beállítod a #1-et 100-ra. A szubrutin elején meghívod a másik makrót, ami #3-ba visszaadja a #1 által hivatkozott változó értékét, majd növeli #1-et eggyel. Valahogy így:

...
M20000 (Az első makród)
#1=100
M98 P1 L#2
...
M30

O1
M20001 (A második makró)
G0 Y#3
...
M99

Előzmény: svejk, 2017-04-18 22:31:24 [3797]


svejk | 33140    2017-04-18 22:31:24 [3797]

A francba...

Látszólag egyszerű raszterfúrést szerettem volna könnyen paraméterezhetővé tenni.
- az első oszlop X koordinátája
- az oszlopok távolsága
- az oszlopok száma
- az első sor Y koordinátája
és itt kezdődik a bonyodalom a többi sor Y koordinátája nem sorozatot képvisel, hanem egyenként kell megadni, ráadásul a sorok száma is változik.
No itt elvéreztem, nem tudom hogy kellene "észrevenni", hogy a következő Y koordináta paraméter nincs kitöltve vagy 0 értékű és készen van a fúrási művelet.

Előzmény: dezsoe, 2017-04-18 21:59:32 [3794]


svejk | 33140    2017-04-18 22:18:56 [3796]

No de mikor, milyen címszóval, melyik címemre?

Előzmény: szf, 2017-04-18 22:04:42 [3795]


szf | 4456    2017-04-18 22:04:42 [3795]

Nem emlékszel?
Elküldted magadnak emailben!
Kedves Pistám.......

Előzmény: svejk, 2017-04-18 20:49:08 [3786]


dezsoe | 2934    2017-04-18 21:59:32 [3794]

Persze, hogy létezhet. Amennyire emlékszem, csak a LinuxCNC-ben találkoztam ilyenekkel. Az eredeti g-kód még változókat sem kezel. Ha valami ilyesmit kell csinálnod, akkor makrózni kell.

Előzmény: svejk, 2017-04-18 21:54:12 [3793]


svejk | 33140    2017-04-18 21:54:12 [3793]



No, mire kezdtem volna belemerülni ebbe a paraméteres dologba el is akadtam megint.

Létezhet, hogy nem ismer IF, Goto , egyéb ilyen alaputasításokat?

Előzmény: dezsoe, 2017-04-18 21:08:14 [3788]


PSoft | 18648    2017-04-18 21:52:47 [3792]

Semmi ördöngösség!
Ha lehúzod a matricát, faxán látni...hova mennek a drótok!

Előzmény: vjanos, 2017-04-18 21:39:57 [3790]


Pabló | 1615    2017-04-18 21:43:15 [3791]

Ha jól értem mit szeretnél, pl
#31=-200
g0 x0 y0 s1000 m3
g43 h1 z3 g1 f3000
g83 r3 z-5 f20 q3
g91 x#31
x#31
x#31
g80 g90
g0 z200
m30

De jó lenne ha pl uccnc is ismerné a K ismétlés számát
Ha pl a g91 x#31 K4 et adnál meg akkor 4szer ismételné meg a x#31 értéket. Ipari gépen így megy.

Előzmény: svejk, 2017-04-18 20:47:33 [3785]


vjanos | 5568    2017-04-18 21:39:57 [3790]

Hogy lehet az elektronikához érteni?

Előzmény: svejk, 2017-04-18 17:32:17 [3780]

dezsoe | 2934    2017-04-18 21:08:51 [3789]

Ugye, hogy megy ez!

Előzmény: svejk, 2017-04-18 21:08:08 [3787]


dezsoe | 2934    2017-04-18 21:08:14 [3788]

Sehogy. Az UCCNC-ben nem megy az X[-#31]. Azt úgy tudod megoldani, hogy egy másik változóba átteszed negatív előjellel, pl.:

#32=0-#31
G91
G81 X#32 Z-3 R4 F250
G90

Előzmény: svejk, 2017-04-18 20:47:33 [3785]


svejk | 33140    2017-04-18 21:08:08 [3787]

Megcsináltam parasztosan:

#34=#31*-1
és ha a minusz#31 érték kell akkor a #34-et hívom meg.

Előzmény: svejk, 2017-04-18 20:47:33 [3785]


svejk | 33140    2017-04-18 20:49:08 [3786]

Én is jegyzetelek, de sosem találom hova raktam a"cetlit".

Előzmény: dezsoe, 2017-04-18 19:44:42 [3784]


svejk | 33140    2017-04-18 20:47:33 [3785]

Paraméteres G kódnál az alábbi rész egy alprogramban van, x-szer meghíva x-szer ellép pluszba a #31 által meghatározott értéket.

G91
G81 X#31 Z-3 R4 F250
G90

De hogy tudom a #31 paraméter értékét mínuszba állítani, hogy visszafelé lépkedjen az X tengelyem??
Próbáltam kapcsossal, stb. de nem műkszik.


  Fórum főoldal  |  A lap tetejére

Időrend:
Oldal 115 / 191 Ugrás ide:
Sorok:
|◄ Első  ◄ Előző   111  112  113  114  115  116  117  118  119   Következő ►  Utolsó ►|


 ◊ 
[ 1.3742 ]