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 »Samba (Wikipedie), svobodná implementace SMB a Active Directory, byla vydána ve verzi 4.23.0. Počínaje verzí Samba 4.23 jsou unixová rozšíření SMB3 ve výchozím nastavení povolena. Přidána byla podpora SMB3 přes QUIC. Nová utilita smb_prometheus_endpoint exportuje metriky ve formátu Prometheus.
Správcovský tým repozitáře F-Droid pro Android sdílí doporučení, jak řešit žádosti o odstranění nelegálního obsahu. Základem je mít nastavené formální procesy, vyhrazenou e-mailovou adresu a být transparentní. Zdůrazňují také důležitost volby jurisdikce (F-Droid je v Nizozemsku).
Byly publikovány informace o další zranitelnosti v procesorech. Nejnovější zranitelnost byla pojmenována VMScape (CVE-2025-40300, GitHub) a v upstream Linuxech je již opravena. Jedná se o variantu Spectre. KVM host může číst data z uživatelského prostoru hypervizoru, např. QEMU.
V červenci loňského roku organizace Apache Software Foundation (ASF) oznámila, že se částečně přestane dopouštět kulturní apropriace a změní své logo. Dnes bylo nové logo představeno. "Indiánské pírko" bylo nahrazeno dubovým listem a text Apache Software Foundation zkratkou ASF. Slovo Apache se bude "zatím" dál používat. Oficiální název organizace zůstává Apache Software Foundation, stejně jako názvy projektů, například Apache HTTP Server.
Byla vydána (𝕏) srpnová aktualizace aneb nová verze 1.104 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.104 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Spotify spustilo přehrávání v bezztrátové kvalitě. V předplatném Spotify Premium.
Spoluzakladatel a předseda správní rady americké softwarové společnosti Oracle Larry Ellison vystřídal spoluzakladatele automobilky Tesla a dalších firem Elona Muska na postu nejbohatšího člověka světa. Hodnota Ellisonova majetku díky dnešnímu prudkému posílení ceny akcií Oraclu odpoledne vykazovala nárůst o více než 100 miliard dolarů a dosáhla 393 miliard USD (zhruba 8,2 bilionu Kč). Hodnota Muskova majetku činila zhruba 385 miliard dolarů.
Bylo vydáno Eclipse IDE 2025-09 aneb Eclipse 4.37. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.
T-Mobile od 15. září zpřístupňuje RCS (Rich Communication Services) zprávy i pro iPhone.
-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: