FEL ČVUT vyvinula robotickou stavebnici pro mladé programátory. Stavebnice Brian byla navržená speciálně pro potřeby populární Robosoutěže. Jde ale také o samostatný produkt, který si může koupit každý fanoušek robotiky a programování od 10 let, ideální je i pro střední školy jako výuková pomůcka. Jádro stavebnice tvoří programovatelná řídicí jednotka, kterou vyvinul tým z FEL ČVUT ve spolupráci s průmyslovými partnery. Stavebnici
… více »Ubuntu bude pro testování nových verzí vydávat měsíční snapshoty. Dnes vyšel 1. snapshot Ubuntu 25.10 (Questing Quokka).
Společnost Netgate oznámila vydání nové verze 2.8.0 open source firewallové, routovací a VPN platformy pfSense (Wikipedie) postavené na FreeBSD. Přehled novinek v poznámkách k vydání.
Byla vydána nová verze 6.16 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Tor Browser byl povýšen na verzi 14.5.3. Linux na verzi 6.1.140. Další změny v příslušném seznamu.
Člověk odsouzený za obchod s drogami daroval letos ministerstvu spravedlnosti 468 kusů kryptoměny bitcoin, které pak resort v aukcích prodal za skoro miliardu korun. Darováním se zabývá policejní Národní centrála proti organizovanému zločinu (NCOZ). Deníku N to potvrdil přímo ministr spravedlnosti Pavel Blažek (ODS). Podle resortu bylo nicméně vše v souladu s právem.
Svobodný a otevřený multiplatformní editor EPUB souborů Sigil (Wikipedie, GitHub) byl vydán ve verzi 2.5.0. Stejně tak doprovodný vizuální EPUB XHTML editor PageEdit (GitHub).
Na základě národního atribučního procesu vláda České republiky označila Čínskou lidovou republiku za zodpovědnou za škodlivou kybernetickou kampaň proti jedné z neutajovaných komunikačních sítí Ministerstva zahraničních věcí ČR. Tato škodlivá aktivita, která trvala od roku 2022 a zasáhla instituci zařazenou na seznam české kritické infrastruktury, byla provedena kyberšpionážní skupinou APT31, veřejně spojovanou se zpravodajskou službou Ministerstvo státní bezpečnosti (MSS).
Google Chrome 137 byl prohlášen za stabilní. Nejnovější stabilní verze 137.0.7151.55 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 11 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Byl vydán AlmaLinux OS 10 s kódovým názvem Purple Lion. Podrobnosti v poznámkách k vydání. Na rozdíl od Red Hat Enterprise Linuxu 10 nadále podporuje x86-64-v2.
Byl vydán Mozilla Firefox 139.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 139 je již k dispozici také na Flathubu a Snapcraftu.
-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: