Demo módban figyelmen kívül hagyja az M6.txt makrót? Bármit írok azt írja ki, hogy: tool changed,cycle stop at and.... Másik gépen írnám a makrót, mert a CNC-nél eléggé kényelmetlen. Egyébként megtaláltam a leírásokat a Documentation mappában.
Sziasztok! UCCNC eszterga szerszámcserélő makrónál valamilyen módon meg lehet határozni automatikusan a betöltött G-kódból a munkadarab legnagyobb Z és X méretét? Ezzel az lenne a cél hogy egy biztonságos pozícióban hajtsa végre a szerszámcserét az aktuális munkadarabhoz képest. Esetleg milyen alternatív megoldások lehetnek, kérlek segítsetek.
Szedlay Pál | 1903
2024-07-28 17:07:30
[9412]
Nincs benne vírus, rá lehet engedni a vírusirtókat, csak én nem tudom digitálisan aláírni, nem tudom hogyan kell.
Az UCCNC nem tudja a golyósorsó hibákat szoftveresen korrigálni, semmi baj ez egy tulajdonság. Gondoltam akkor a G kódot írjuk át úgy, hogy a hibákat a szkript modosítja a bevitt hibaértékeknek megfelelően. Ez még nagyon gyerekcipőben jár és tulajdonképpen magamnak csináltam, de hátha valaki más is szeretné használni, ezért megosztom. Megosztom a CVS formátumot is, mert az fontos hogy ilyen legyen. ez most csak 3 tengelyt korrigál de nyilván az 5-öt is tudja. Ez a szkript az alapja
import pandas as pd import numpy as np import re import tkinter as tk from tkinter import filedialog, messagebox
# Hibák betöltésére szolgáló függvény def load_errors(error_file): # Hibák betöltése a CSV fájlból pontosvessző elválasztóval error_df = pd.read_csv(error_file, delimiter=';', encoding='utf-8')
return error_df
# Lineáris interpoláció a hibákhoz def interpolate_error(coord, coord_name, errors): if coord < errors[coord_name].min() or coord > errors[coord_name].max(): print(f"{coord_name} koordináta ({coord}) kívül esik a táblázat értékein.") # Debug return 0 # Ha a koordináta kívül esik a táblázat értékein, nem alkalmazunk hibát
if lower_bound[coord_name] == upper_bound[coord_name]: print(f"Pontos találat {coord_name} tengelyen: {lower_bound[coord_name]}") # Debug return lower_bound[f'error_{coord_name.lower()}'] # Ha pontosan egy adatponttal egyezik
# G-kód javító függvény, amely X, Y és Z tengelyek hibáit korrigálja def correct_gcode(input_file, output_file, errors): try: with open(input_file, 'r', encoding='utf-8') as file: lines = file.readlines()
with open(output_file, 'w', encoding='utf-8') as file: for line in lines:
# Regex a koordináták beolvasásához (formátum: Y29.702Z-9.727 vagy X-4.375Y31.695Z1.) matches = re.findall(r'[XYZ]-?\d+\.\d*', line) coords = {match[0]: float(match[1:]) for match in matches}
if 'X' in coords or 'Y' in coords or 'Z' in coords: if 'X' in coords: x = coords['X'] error_x = interpolate_error(x, 'X', errors) x_corrected = x + error_x
if 'Y' in coords: y = coords['Y'] error_y = interpolate_error(y, 'Y', errors) y_corrected = y + error_y
if 'Z' in coords: z = coords['Z'] error_z = interpolate_error(z, 'Z', errors) z_corrected = z + error_z
# Új sor összeállítása a javított koordinátákkal corrected_line_parts = [] for part in re.finditer(r'([XYZ]-?\d+\.\d*)', line): prefix = part.group()[0] value = part.group()[1:] corrected_value = float(value) if prefix == 'X' and x_corrected is not None: corrected_value = x_corrected elif prefix == 'Y' and y_corrected is not None: corrected_value = y_corrected elif prefix == 'Z' and z_corrected is not None: corrected_value = z_corrected corrected_line_parts.append(f"{prefix}{corrected_value:.4f}")
file.write(corrected_line) else: file.write(line) except FileNotFoundError: print(f"A fájl nem található: {input_file}") except Exception as e: print(f"Hiba történt: {e}")
# GUI funkció def process_files(): input_file = filedialog.askopenfilename(title="Válassza ki a bemeneti G-kód fájlt", filetypes=[("G-kód fájlok", "*.tap")]) error_file = filedialog.askopenfilename(title="Válassza ki a hibafájlt", filetypes=[("CSV fájlok", "*.csv")]) output_file = filedialog.asksaveasfilename(title="Mentse a kimeneti G-kód fájlt", defaultextension=".nc", filetypes=[("G-kód fájlok", "*.nc")])
# Ellenőrizd, hogy a fájlok kiválasztásra kerültek if input_file and error_file and output_file: errors = load_errors(error_file) correct_gcode(input_file, output_file, errors) messagebox.showinfo("Kész", "A G-kód javítása befejeződött!")
Nem tudom, hogy milyen katyvasz van nálad, de ilyet nem csinál az UCCNC. Ha csak úgy átírogatna port/pin értékeket, már rég elsodorta volna a népharag. Azt tudom elképzelni, hogy beállítod, alkalmazod (apply), de nem mented a beállításokat. Extrém esetben még az is lehet, hogy M99999-ben, macroloop-ban vagy plugin-ban valami piszkálja a beállításokat, de ez sem valószínű. Megnézném a profilod tartalmát, hátha abból kiderül valami. Küldd el mail-ben.
"A beállításokat az UCCNC tárolja és induláskor letölti a vezérlőbe." Akkor így történik meg. De a lényeg, hogy már kb 10-edik ugyanolyan, de mindig más adatokkal lesz tele. Most portokat írt össze. Tegnap kikapcsoltam a gépet, minden ment rajta. Ma reggel a köd port "átmászott" a 3-as port 17-es pinjéről a 3-as port 14-es pinjére. Persze oda nincs bekötve, így nem is működött. Visszakötöm az UCCNC-ben, és nem működik. Magasat mérek a pinen. Na mondom, akkor ezzel nem játszom tovább, átkotom az egyes port 17-es pinjére. Az is magas. Na mondom nekem ez magas, megnézem a flood szelepet mert az működik a 2-es port 17-es pinjén. Voálá, ott működik a szelep, mérek magasat, alacsonyat, ahogy kell. Na igenám, de sehol máshol nem megy. Most vagy én vagyok alvajáró, vagy a macskák táltosodtak meg, vagy itt valami gebasz van.
"Olyan szokott még előfordulni, hogy az UCCNC még nem lépett ki teljesen, de leállítod a gépet." A leállítási ciklusom: kilpek az uccnc-ből, hogy megjegyezze a koordinátákat, majd leállítom a windowst.
"Feszültséget - gondolom - úgy mérsz, hogy nincs rákötve semmi a kimenetre." Igen.
Próbáljunk meg végigmenni rajta. - "Az UCCNC ethernetes vezérlője": mi az UCCNC verziószáma és melyik ethernetes vezérlőt (UC400ETH, UC300ETH-5LPT, UC300ETH-5441, AXBB, egyéb) használod? - A vezérlő nem tud átírni semmit, mert nem tárol semmilyen beállítást. A beállításokat az UCCNC tárolja és induláskor letölti a vezérlőbe. - Az UCCNC akkor szokott megváltoztatni portokat, ha olyan vezérlővel indítod el, aminek nincsenek a profilban felsorolt lábai. Pl. van egy profilod UC300ETH-5LPT-hez való beállításokkal, majd elindítod a programot UC100 demó módban. Ilyenkor a nemlétező (vagy nem jó irányú) lábakat ki fogja nullázni. Ha ilyenkor elmented a beállításokat, akkor legközelebb az eredeti mozgásvezérlővel nem fog megfelelően működni. - Olyan szokott még előfordulni, hogy az UCCNC még nem lépett ki teljesen, de leállítod a gépet. Ilyenkor hajlamos a Windows teljesen kinullázni a profilt, de ha ez történik, akkor már eleve úgy indul, hogy nem találja a képernyő file-t. - Feszültséget - gondolom - úgy mérsz, hogy nincs rákötve semmi a kimenetre. Ha nem, akkor először úgy tedd meg, hogy lásd, a kimenet jó-e. (Melyik mozgásvezérlő, melyik port, melyik pin?) - Firmware-t lehet frissítgetni, de a világon semmi értelme. Ha a firmware sérült, akkor a mozgásvezérlő nem indul el, a hibát a kézikönyvben leírt LED megfelelő villogásával jelzi és lehetőség szerint az UCCNC indulásakor újratölti a firmware-t. - Ha mégis szeretnél firmware-t frissíteni, akkor egy másik(!) könyvtárba telepíts egy másik UCCNC verziót. Semmiképpen ne a működőt írd felül! Másold át a licensz file-t a friss telepítésbe, futtasd az UCCNC-t. Ha a felrakott másik verzió más firmware-t igényel (előfordulhat, hogy nem), akkor lecseréli. Ezután elindítod a szokásos verziót, ami majd visszaírja a neki szükséges firmware-t.
Ötletnek jó, de ezzel nagyon megégettem magam legutóbb. Mindenféle olyan hiba jött elő, amit nem láttam addig. Verziót és fw-t akkor fogok frissíteni ha eladom, mert nagyon bugos a rendszer. A gépet napi szinten használom és kitapasztaltam már a szoftverhibákat. Kár, hogy egyre újabbakat kapok.
Egy kis segítséget kérnék egy hiba diagnosztizálásában. Az UCCNC ethernetes vezérlője már a sokadik alkalommal kelt önálló életre és bekapcsoláskor random átírja a portokat és tengelyértékeket. Már rutins vagyok és lementettem mindent, így elég csak visszaírnom. De, nem kel életre egyelőre két port, az egyes és hármas. A többit még nem teszteltem. A gép működik, de ezeken a portokon minden kimenetn magas jelem van, a feszültség pinenként változik 3,7V és 4,4V között. Nem tudom őket vezérelni, az IOtrigger O 0-48 menüből beállítom az értékeket, a diag lapon nézem, szépen kapcsolgat a led, de valójában mindig magas a pin. A 2-es kimenet működni látszik. A gép mozog.
Mi lehet a pinek gondja? (Az időleges átírásba ne menjünk bele, azon túltettem magam, ez ilyen, ezt tudja. )
svejk | 33147
2024-06-05 16:50:45
[9399]
Szerintem nem, mert arról bizonyára tudnánk itt a fórumon.
Melyik verzióval próbálod? (1.2116 vagy korábbi?) És ha 1.2116, akkor korábbival próbáltad-e és működik-e?
Ha 1.2116: az 1.2116-ban rengeteg dolog változott, ami hatással lehet erre a plugin-ra is. Nem szükségszerű, de lehet. Ha csak ezzel a verzióval nem jó, akkor meg lehet keresni a gyártót és kitalálni, hogy mi változott. De mivel nekem nincs ilyen tekertyűm, ebben te tudsz segíteni.
sziasztok iMach PS-2 es kézikerék nem megy az új UCCNC programmal, van valami ötletetek?
dezsoe | 2934
2024-04-22 12:23:43
[9391]
A két index jelről nem tudja megállapítani, hogy az melyik éppen, ez érthető. Próbálj egy olyan index jeladót felszerelni, ami tényleg csak egy jelet ad fordulatonként. A jel hossza mindegy (akár lehet egy fél tárcsa is), csak az egyik átmenetet fogja figyelni.
Üdv, Egy problémával kapcsolatban kérnék tanácsot: UCCNC-t használok esztergához. A főorsón van egy 360imp/r-es ennkóder 1:2-es gyorsító áttétellel. Mivel a fel és lefutó éleket is figyeli, be van állítva encoder felbontásnak 2880 imp/r. , de mivel van egy 1:2-es gyorsító áttétel az index prescaler-hez beállítottam 2-őt, hogy ossza le az index jelet kettővel. Menetvágásnál néha elrontja a bekezdést. Olyan mintha nem venné figyelembe a 2-es osztást és véletlenszerűen indul el, egyik vagy másik encoder indexre. Járt valaki így? Van esetleg megoldás a problémára? Előre is köszönöm a segítséget!
dezsoe | 2934
2024-04-15 14:42:40
[9389]
Akkor csinálj egy output triggert a kívánt kimenethez, aminek a forrása az M3 LED (50), az active low-val pedig be tudod állítani, hogy pont fordítva működjön, mint az M3 kimenet.
Hello, egy kis gonddal küszködöm. Van egy freqiváltóm aminek ki kellene m5 stop jelet küldenem egy porton. Ezt hogyan tehetem meg, mert nincs az m5 a kimeneteknél, csak m3 és m4 van.
// Ha az aktualis munkadarab koordinata nagyobb 0-nal - tehat magasabban van a gep az eredeti pozicional // akkor a Z tengely nullpontjat korrigalni kell az aktualis gepi Z pontra if (ActualWorkingPosition_Z > 0) {
Tudom, hogy "kőbaltás" megoldás: A gépi vágófej szára beleillik egy MZ első teleszkóp alu hüvelyébe. A fej kapott egy csapágy külsőből készült karikát. A karika csúszik a lemezen és emelgeti a teleszkóphüvelyben a vágófejet, a gravitáció pedig megoldja a felület követését. Két bilinccsel megoldható a határolás. Csak egy próba miatt készült még 2016-ban és hát "úgymaradt"! Abból született, amit éppen találtam itthon. 0 forint! Hátránya, hogy kopik az alu! Néha a cunder útban van! Használok "cseppoldót" a hegesztőktől, lemezre-fejre! Ritkán kell elővennem, de akkor két-három napig megy. Azért illik a kezelőnek figyelni!!! Remélem, hogy ad ötletet! Mondjuk nálam nem nagy gond egy kis ütközés! A fej el tud fordulni jobbra-balra, előre-hátra, ha nincsenek agyonhúzva a rögzítő csavarok.
Az alábbi problémával fordulok hozzátok, hátha van valami ötlet a megoldásra.
Adott egy vágógép, ahol:
- Program bemenetként abszolút koordinátákkal ellátott g-kódot kap a rendszer
- A gépkezelő a vágófejet a plazmavágáshoz használt THC bemeneteken tudja manuálisan – gombok segítségével – vágás közben is Z-ben mozgatni.
- Mérőszenzor, stb. nincs beépítve a rendszerbe, tehát a Z0-át a kezelő adja meg a vágófej magasságának kézi beállításakor
- Az egyes vágott objektumok közötti átálláskor a gép G0 Z50, G0 Z0 utasításokkal kiemeli a vágófejet az átpozícionáláskor.
A probléma az, hogy a gépkezelő a vágás során manuálisan mozgatja a Z tengelyt azért, hogy a nem vízszintes anyagba ne ütközzön bele a vágófej. Tehát ha a vágás során a kezelő pl. 5 mm-t emel a fejen, az eredeti Z 0 koordináta helyett Z=5 koordinátát kapunk. Ez idáig jó, de a probléma az új objektumra való átálláskor történik, mert a fej kiemelkedik Z=50-re, majd az új X/Y koordinátákon a rendszer visszaviszi Z=0-ra, ami az anyagba való ütközést okozza…
Van valami ötletetek arra, hogy miképp oldjam meg ezt a problémát? Az lenne a cél, hogy amikor az új objektumnál elméletileg Z=0-ba megy vissza a gép, akkor az a koordináta a gépkezelő által már 5 mm-el megemelt szinten legyen.
Tehát valahogy menet közben át kellene állítani az objektumok végén a Z tengelyem nullpontját az új, „manuálisan megemelt” koordinátára.
Köszönöm a segítséget!
dezsoe | 2934
2024-03-29 17:47:34
[9378]
Semmilyet (pin 0, port 0). Az I/O oldalon kiválasztod a felhasznált analóg csatorna számát a "Spindle PWM -> analog ch." sorban.
Frekveniaváltót szeretnék működtetni UC300USB analóg portján. Az UCCNC-ben milyen port és pin számot kell megadni a PWM menüben? A leírásban pin számok vannak megadva de a kifejtő modulon csak Analog out 1, 2, GNd és 12V szerepel. Port szám sincs a leírásban hozzárendelve az analóg porthoz. Köszönöm a segítséget!
szabo jankó | 427
2024-03-11 15:38:21
[9376]
Biztos úgyjártál mint én amikor tanultam kézzel programmot írni. A ráállásnak a szerszám sugárnál nagyobbnak kell lenni küll önben nem tud ráállni a kezdésre .
Sziasztok! Létezik olyan posztprocesszor UCCNC-hez ami kompatibilis a Fusion 360-al? A beépített posztja nemtudja kezelni a vezérlőn belüli szerszámátmérő hívást. Találtam nehezen 1db-ot az interneten amivel a kontúrmegmunkálás jó de a ráállásokat elrontja. Jó lenne ha meglehetne oldalni ne kelljen minden egyes korrekció miatt újra generálni az egész programot. Köszönöm ha tudtok segíteni. Üdv.
dezsoe | 2934
2024-03-05 23:33:34
[9374]
Ha ugyanazzal a szerszámmal marod, akkor a g-kód lehet a ludas, ha nem, akkor lehet a szerszám is pontatlan. A g-kódok és a szerszám(ok) pontos mérete nélkül nem lehet értelmes és megalapozott választ adni. (A szerszám(ok) mérete alatt nem azt értem, ami rá van írva, hanem a rendes mérőeszközzel mért valós méretet.)
Hello! Egy tanácsra lenne szükségem. UC300ETH használok a legújabb UCCNC próbaverziójával. Egy 100x100 mm-es belső kontúrt marok akkor pontos lesz, és külső marás esetén mindig 2 tizeddel több. Használtam Fusion 360, Inventor és Aspirt is. Mindnél ugyanaz a probléma. Ha tudtok segiteni mi lehet a gond, nagyon megköszönném.
Az alábbi linken található és letölthető plazma módosításokat szeretném használni, elvben minden működik de feldob egy hibaüzenet és a screen felület sem tökéletes. Van valakinek ötlete, hogy mi lehet a gond?
Szia, Lényeges, hogy milyen szoftvert, és vezérlőt használsz, a szerint kell kiválasztani a postprocest. Egyszerűen rákeresel a kívánt típus szerint: "aspire laser postprocess", vagy pl. "uccnc laser postprocess"