Byla vydána betaverze Fedora Linuxu 43 (ChangeSet), tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 21. října.
Multiplatformní emulátor terminálu Ghostty byl vydán ve verzi 1.2 (𝕏, Mastodon). Přehled novinek, vylepšení a nových efektů v poznámkách k vydání.
Byla vydána nová verze 4.5 (𝕏, Bluesky, Mastodon) multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu.
Byla vydána verze 3.0 (Mastodon) nástroje pro záznam a sdílení terminálových sezení asciinema (GitHub). S novou verzí formátu záznamu asciicast v3, podporou live streamingu a především kompletním přepisem z Pythonu do Rustu.
Canonical oznámil, že bude podporovat a distribuovat toolkit NVIDIA CUDA (Wikipedie) v Ubuntu.
Tržní hodnota americké společnosti Alphabet, která je majitelem internetového vyhledávače Google, dnes poprvé překonala hranici tří bilionů dolarů (62,1 bilionu Kč). Alphabet se připojil k malé skupině společností, které tuto hranici pokořily. Jsou mezi nimi zatím americké firmy Nvidia, Microsoft a Apple.
Spojené státy a Čína dosáhly dohody ohledně pokračování populární čínské platformy pro sdílení krátkých videí TikTok v USA. V příspěvku na síti Truth Social to dnes naznačil americký prezident Donald Trump. Dosažení rámcové dohody o TikToku vzápětí oznámil americký ministr financí Scott Bessent, který v Madridu jedná s čínskými představiteli o vzájemných obchodních vztazích mezi USA a Čínou. Bessentova slova později potvrdila také čínská strana.
MKVToolNix, tj. sada nástrojů pro práci s formátem (medialnym kontajnerom) Matroska, byl vydán ve verzi 95.0. Podpora přehrávání formátu Matroska míří do Firefoxu [Bug 1422891, Technický popis]. Přehrávání lze již testovat ve Firefoxu Nightly.
Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 211. sraz, který proběhne v pátek 19. září od 18:00 ve Studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1. Na srazu proběhne přednáška Jiřího Eischmanna o nové verzi prostředí GNOME 49. Nemáte-li možnost se zúčastnit osobně, přednáškový blok bude opět streamován živě na server VHSky.cz a následně i zpřístupněn záznam.
Microsoft se vyhnul pokutě od Evropské komise za zneužívání svého dominantního postavení na trhu v souvislosti s aplikací Teams. S komisí se dohodl na závazcích, které slíbil splnit. Unijní exekutivě se nelíbilo, že firma svazuje svůj nástroj pro chatování a videohovory Teams se sadou kancelářských programů Office. Microsoft nyní slíbil jasné oddělení aplikace od kancelářských nástrojů, jako jsou Word, Excel a Outlook. Na Microsoft si
… více »-mill
Ručně jsem vytvořil nějaký příklad jak by měl vypadat výstup z programu. Soubory TAP.
Ve zdrojovém frézovacím excellon souboru *.rou jsou kódy M15, M16 které reprezentují pohyb vřetene v ose Z dolu a nahoru.
M15 pro pohyb dolu, by mohlo by mohlo být analogicky jako -zdrill
pro vrtání určováno volbou -zmill
. V příkladu je -2. Toto musí být v rámci normálního frézování G01 s určenou pojezdovou rychlostí.
M16 vřeteno nahoru zase nastavitelné nějakou volbou -zup
. V příkladu je 5. Toto může být už v rámci rychloposuvu.
Nevím nakolik je to proveditelné v tom programu vzhledem k tomu jak je postavený (já to bohužel neumím ani přečíst, špatně jsem se učil).
Pokud by se tu našel někdo kdo umí a zároveň se aspoň trochu vyzná v G kódech, je to uplně nejlepší možná varianta. Já jsem rád za to, že jsem vůbec sesmolil tenhle dotaz.
Odkaz na zdroják programu https://sourceforge.net/p/ncdr2cnc/code/HEAD/tree/
je tam i zkompilovaný exáč.
Přikládám příklady vstupů a výstupů v zipu.
Řešení dotazu:
with open(args.drlfile[0]) as fp: line = fp.readline() while line: ....Nasypou se nastroje(tnum):
if line.startswith("T") and "C" in line: ....Vybere se nastroj(tsel): ....
elif line.startswith("T"): ....Prevod vrtani:
elif line.startswith("X") and tsel != "0":Zapis:
for t in tools: ....
You can open Gerber, Excellon or G-code, edit it or create from scatch, and output G-Code.Tohle bude pro tebe idealni a bez programovani. Bezi to na Linuxu, ale to asi chapes. Na widlich WSL.
* Routing commands are similar to Gerber polygons
elif line.startswith("X") and tsel != "0": newl1 = "".join(["G1 F", str(args.z_move_speed), " Z", str(args.safe_height)]) newl2 = "".join(["G1 F", str(args.xy_move_speed), " ", line.split("Y")[0], " Y", line.split("Y")[1].strip("\r\n")])Jak mám Pythonu říct, aby bral na vstupu i řádky začínající nejen X, ale i G01? Prostě potřebuji aby je opsal, v tomto stavu jen vypíše chybu
Traceback (most recent call last): File "C:\Users\cerny\Documents\Elektro Modus\frezovani\CAMOutputs\vylezlo z fabu\drl2gcode.py", line 61, in module newl2 = "".join(["G1 F", str(args.xy_move_speed), " ", line.split("Y")[0], " Y", line.split("Y")[1].strip("\r\n")]) ~~~~~~~~~~~~~~~^^^ IndexError: list index out of range
G00X-1Y11.9007 <- Prepnuti na routing a vychozi pozice. G40 M15 G01Y0 <- linearni pohyb M16 G40 G00X19.3493Y-1 <- Routing koncova pozice.Pseudoodem:
if 'G00' in line:# ROUTING ZACATEK while line: line = f.readline() ..... <- zpracovani pohybu if 'G00' in line: ROUTING KONEC .... breakSnad jsem to pochopil dobre.
with open("Layer_5.rou") as f: line = f.readline() while line: line = f.readline() if 'G00' in line:# ROUTING ZACATEK print(line) if 'G00' in line: #ROUTING KONEC break f.close()ovšem to vypíše jen první řádku kde se vyskytuje G00 a tam to taky skončí. Potřebuji aby jel do dalšího G00. Může tam být další ROUTING ZACATEK po rychloposuvu a další práce vřetene. Učit se toto v 39 je tedy brutus :D
#!/usr/bin/python3 with open('frezovani.rou') as f: for line in f: if 'G00' in line: print("[*] Routing start") print(line.strip()) for line in f: print(line.strip()) if 'G00' in line: print("[*] Routing end\n") break
# definice promennych otacky = 25000 feedrate = "F300" #milldepth = "Z-2" safeZ = "40" moveZ = "Z5" hlavicka = """; Generovano v routexc2gcode.py ; Absolutni koordinaty G90 ; Metricke G21 ; Spust vreteno M3 S"""+str(otacky)+""" """ paticka = """ ; zastav vreteno M5 ; vyjeti vretene a konec frezovani G00 Z"""+str(safeZ)+""" ; konec programu M2 """ # zapis hlavicky print(hlavicka) # pohyb vretene with open('Layer_5.rou') as f: line = f.readline() while line: line = f.readline() if line.startswith("G00"): print(line.strip()) if line.startswith("G01"): print(line.strip(), milldepth, feedrate) if line.startswith(("X","Y")): print(line.strip()) if line.startswith("M15"): #print(milldepth, "; Vreteno dolu") milldepth = "Z-2" if line.startswith("M16"): print(moveZ, "; Vreteno nahoru") #if line.startswith("G40"): # print(line.strip()) if line.startswith("M30"): break # zapis paticky print(paticka)Potřebuji aby řádky začínající G00 vypsal a současně zkopíroval s těmi stejnými souřadnicemi na nový řádek jako G01 následujíc proměnné milldepth a feedrate. Řádky začínající G01 normálně vypsat, ale už bez těch milldepth a feedrate. Vpodstatě na těch kopiích by to G01 už ani nemuselo být, protože už je definovaná.
Příklad vstupu: G00X10Y10 M15 G01X20Y20 Příklad výstupu: G00X10Y10 G01X10Y10 Z-2 F300 X20Y20
with open('frezovani.rou') as f: line = f.readline() while line: line = f.readline().strip() if line.startswith("G00"): print(line) print(line.replace('G00','G01'), milldepth, feedrate) if line.startswith("G01"): print(line) if line.startswith(("X","Y")): print(line) #if line.startswith("M15"): print(milldepth) if line.startswith("M16"): print(moveZ) if line.startswith("G40"): print(line) if line.startswith("M30"): break
if
ů
Co kdybych chtěl místo printování zapisovat do souboru? Zkoušel jsem třeba v tom prvním ifu pro G00 udělat proměnnou
rychloposuvy = line.strip() ... with open("soubor.nc", "w") as uloz: uloz.write(rychloposuvy)ale samozřemně to tu proměnnou mění řádek po řádku a v soubor.nc je pak jenom poslední řádek s G00. Jdu na to blbě, to je jasný, ale já nevím co mám dělat :D Jinak vyprintovaný výstup do konsole je teď uplně OK.
out = open('vystup.gcode','w')v prubehu smycky do nej budes postupne zapisovat:
while ... if ... out.write(line)a nakonec ho korektne uzavres.
out.close()Druha moznost, je vystpu nekam docasne odkladat(treba do slovniku, jako v puvodnim kodu) a pak to slepit a ulozit.
Tiskni
Sdílej: