Gcdump - nevim jak na to – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Gcdump - nevim jak na to – Python – Fórum – Programujte.comGcdump - nevim jak na to – Python – Fórum – Programujte.com

 

Otrok
~ Anonymní uživatel
2 příspěvky
27. 2. 2014   #1
-
0
-

Ahoj, mám dotaz pro Pythonu znalé. Může mi někdo vysvětlit postup tohoto kódu, nemohu se dokopat konce. A co je myšleno tím gcdump a kde to najdu.


mendelize.py postprocesses cad.py .g files into a form that works well in the mendel.

$ mendelize.py hello.g | gcdump

actually, that doesn't work for some reason, though it should.

the workaround is:

$ mendelize.py hello.g > hello.mendel

-- open hello.mendel, and copy the entire file -- run gcdump, which will give you an interactive console to dump gcode into the mendel $ gcdump -- then paste the gcode in there. It'll start going. Woo!
 

Nahlásit jako SPAM
IP: 178.255.168.–
KIIV
~ Moderátor
+43
God of flame
27. 2. 2014   #2
-
0
-

| znamena presmerovani standardniho vystupu z programu pred ni do programu za ni.. ale tezko rict co je to za program

Nahlásit jako SPAM
IP: 94.113.93.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Otrok
~ Anonymní uživatel
2 příspěvky
27. 2. 2014   #3
-
0
-

Mendelize.py je nějaký krátký prográmek, který má nahrazovat hodnoty v textovém souboru. Tedy má fungovat asi tak, že mu dám soubor ve kterým je text, on vyhledá třeba znak X a přepíše ho na Y, nebo vyhledá číslo 123 a nahradí 456. Jde mi spíše o to, jak to mám použít. Kód tohoto programu je tady:


#!/usr/bin/python
import re
def path_from_gcode( fp ):
    
    for line in fp:
        
        match = re.match( "G00X(.*)Y(.*)Z(.*)", line )
        if match:
            groups = match.groups()
            yield (float(groups[0]), float(groups[1]), float(groups[2]))
            continue
            
        match = re.match( "G00Z(.*)", line )
        if match:
            yield (None, None, float(match.groups()[0]))
            continue
            
        match = re.match( "X(.*)Y(.*)", line )
        if match:
            groups = match.groups()
            yield (float(groups[0]), float(groups[1]), None)
            continue
            
        match = re.match( "Z(.*)", line )
        if match:
            yield (None, None, float(match.groups()[0]))
            continue
            
        match = re.match( "G01Z(.*)", line )
        if match:
            yield (None, None, float(match.groups()[0]))
            continue
            
def mendel_gcode_from_path( path, toolup=0.5, zfeedrate=30, xyfeedrate=300 ):
    for x,y,z in path:
        if x is None and y is None and z is not None:
            print "G1 F%d"%zfeedrate
            if z==0:
                print "G1 Z0"
            elif z>0:
                print "G1 Z%0.4f"%toolup
            print "G1 F%d"%xyfeedrate
        else:
            print "G1 X%0.4f Y%0.4f"%(x,y)
from optparse import OptionParser
def main():
    usage = "usage: %prog [options] filename"
    parser = OptionParser(usage)
    parser.add_option("-t", "--toolup", dest="toolup", default=0.5,
                      help="length to rise tool on toolup")
    parser.add_option("-z", "--zrate", dest="zrate", default=30,
                      help="z feedrate")
    parser.add_option("-f", "--xyrate", dest="xyrate", default=300,
                      help="x and y feedrate")
    
    (options, args) = parser.parse_args()
    if len(args) != 1:
        parser.error("incorrect number of arguments")
    fp = open( args[0] )
        
    mendel_gcode_from_path( path_from_gcode( fp ), toolup=float(options.toolup),
                            zfeedrate=float(options.zrate), xyfeedrate=float(options.xyrate) )
                            
if __name__=='__main__':
    main()

Nahlásit jako SPAM
IP: 178.255.168.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 16 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý