Byla vydána verze 12.0 s kódovým jménem Ecne linuxové distribuce Trisquel GNU/Linux. Založena je na Ubuntu 24.04 LTS a podporována bude do roku 2029. Trisquel patří mezi svobodné distribuce doporučované Nadací pro svobodný software (FSF).
Open-source citační manažer Zotero (Wikipedie, GitHub) byl vydán v nové major verzi 9. Přehled novinek v příspěvku na blogu.
Libre Graphics Meeting 2026, tj. čtyřdenní konference a setkání vývojářů a uživatelů svobodných a otevřených grafických softwarů, proběhne od 22. do 25. dubna v Norimberku. Dění lze sledovat na Mastodonu.
Vývojář Alexandre Gomes Gaigalas na GitHubu zveřejnil c89cc.sh, parser a kompilátor jazyka C89 napsaný v pouhém jediném skriptu o přibližně 8000 řádcích čistého bashe (bez dalších externích závislostí), který generuje ELF64 binárky pro x86-64. Jedná se o velmi jednoduchý kompilátor, který nepodporuje direktivy #include a dokonce ani funkci printf (lze použít puts), všechny dostupné deklarace lze nalézt v proměnné _BUILTIN_LIBC na konci skriptu. Skript je volně dostupný pod ISC licencí.
Francouzská vláda oznámila, že v rámci strategie 'digitální suverenity' zahájí 'přechod od systému Windows k počítačům s operačním systémem Linux' (sa sortie de Windows au profit de postes sous système d'exploitation Linux). DINUM (meziresortní ředitelství pro digitální technologie) požádalo ministerstva, aby do podzimu 2026 vypracovaly konkrétní plány nasazení Linuxu. Francie již dříve migrovala části státní správy na otevřená řešení.
Nezisková organizace Electronic Frontier Foundation (EFF) hájící občanské svobody v digitálním světě po téměř 20 letech opouští platformu X (dříve Twitter). Na platformách Bluesky, Mastodon, LinkedIn, Instagram, TikTok, Facebook, Threads a YouTube zůstává.
Terminálový textový editor GNU nano byl vydán ve verzi 9.0. Vylepšuje chování horizontálního posouvání pohledu na dlouhé řádky a chování některých klávesových zkratek. Více v seznamu změn.
Ministerstvo financí ve spolupráci s finanční správou dnes představilo beta verzi aplikace využívající umělou inteligenci pro předvyplnění daňového přiznání. Není třeba přepisovat údaje z různých potvrzení, ani hledat správné řádky, kam údaje napsat. Stačí nahrát dokumenty a využít AI.
Výrobce počítačových periferií Keychron zveřejnil repozitář se schématy šasi klávesnic a myší. Licence je restriktivní, zakazuje většinu komerčních užití a v podstatě jsou tak data vhodná pouze pro výukové účely, hlášení a opravy chyb, případně výrobu vlastního příslušenství.
Správce balíčků APT, používaný v Debianu a odvozených distribucích, byl vydán ve verzi 3.2 (seznam změn). Mezi novinkami figurují nové příkazy pro práci s historií, včetně vracení transakcí.
-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
....
break
Snad 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.
Sám se divím, že ses v tom vyznal.
Tiskni
Sdílej: