Stránka 3 z 3

Re: Jak nastavit osu Z

Napsal: 16. 2. 2012, 7:37
od josefga
Tak jsem na to koukl a tohle přes noc vytvořil není to sice v Perlu (ten neumím), ale snad se podařilo .Jen jsem nepochopil jak fungují barvy jen signál pro stroj na výměnu a pár dalších maličkostí ,ještě snad jejich délkové jednotky ale dá se to odvodit. přikládám výšivku s výměnou barev a soubor dst je mnou vytvořený program
fly.zip
(33.28 KiB) Staženo 222 x
dst.zip
(6.66 KiB) Staženo 228 x

Re: Jak nastavit osu Z

Napsal: 18. 2. 2012, 5:06
od fupe
No vidis, parada. V cem si to psal? C++ Builder? Delphi? Visual?
Takze format toho souboru si rozlustil a uz nic nestoji v ceste se vrhnout na rizeni..... :-)
Sem zvedavej jak dopadne ledvinap, ale predpokladam ze dobre. Jestli se mu podari napsat filter do emc, tak se urcite najde vicero zajemcu protoze co sem koukal, tak jedina jaks-taks rozumna vec na prevod vysivek na g-code je nejakej pakistanskej program, ale ten je urcenej spis pro mach a pro emc by se musel jeste upravit ten vystupni soubor. Coz je hrozne zdlouhavy.
S tim filtrem by se proste *.dst soubor otevrel rovnou v EMC, nastavilo se par parametru a jelo by to. Tak drzim palec at se dilo zadari.
Treba pak lubos koupi tu plne nalozenou tatrovku niti a krome vyroby kde ceho bude jeste po vecerech vysivat.


Martin

Re: Jak nastavit osu Z

Napsal: 18. 2. 2012, 5:13
od lubos
Jo jo uvažuju o tom :D , nevíte někdo o nějaké staré vyšívací mašině ? :D

Re: Jak nastavit osu Z

Napsal: 20. 2. 2012, 5:16
od josefga
Psal jsem to ve Visual Basicu ,i když se na to moc nehodí má strašně řešenej převod do binární soustavy C by bylo lepší ale nějak v něm nejsem zběhlej.ten filtr do EMC by se mi líbil a jednu vyšívací mašinu bych tu měl ale potřebuje náhradní díly stála mně 160 k tak bych ji za 40k nechal.no uvidíme.

Re: Jak nastavit osu Z

Napsal: 21. 2. 2012, 5:28
od ledvinap
Tak jsem napsal kousek kostry, nejak neni cas. Pravdepodobne je kod samy bug, spis to brat jako ukazku, ze to jde :

program dst-to-gcode.pl:

Kód: Vybrat vše

#!/usr/bin/perl
use strict;
use warnings;

open(IN, "<", $ARGV[0]) or die "Can't open file $ARGV[0] : $!";
binmode(IN);

my $header;
read(IN, $header, 512)==512 or die "Short read when reading header: $!";
    
while( $header =~ /(.{2}):(\+|-|)? *(.*?) *(?:\x0d|(?=.{2}:))/sg ) {
#    print "$1 = $2$3\n";
}

if ( $header !~ /\x1a?  *$/ ) {
    warn "Junk after data in file header";
}


sub decode_stich {
    my($t)=@_;
    my ($x,$y,$flag)=(0.0,0.0,0);
    my $v=unpack("N", "\0".$t);
    if( $v == 243 ) { return 0,0,"E" };
    #         000000001111111122222222
    #         765432107654321076543210
    if($v & 0b000000000000000000000100) {$x+=8.1};
    if($v & 0b000000000000000000001000) {$x-=8.1};
    if($v & 0b000000000000010000000000) {$x+=2.7};
    if($v & 0b000000000000100000000000) {$x-=2.7};
    if($v & 0b000001000000000000000000) {$x+=.9};
    if($v & 0b000010000000000000000000) {$x-=.9};
    if($v & 0b000000000000000100000000) {$x+=.3};
    if($v & 0b000000000000001000000000) {$x-=.3};
    if($v & 0b000000010000000000000000) {$x+=.1};
    if($v & 0b000000100000000000000000) {$x-=.1};

    #         000000001111111122222222
    #         765432107654321076543210
    if($v & 0b000000000000000000100000) {$y+=8.1};
    if($v & 0b000000000000000000010000) {$y-=8.1};
    if($v & 0b000000000010000000000000) {$y+=2.7};
    if($v & 0b000000000001000000000000) {$y-=2.7};
    if($v & 0b001000000000000000000000) {$y+=.9};
    if($v & 0b000100000000000000000000) {$y-=.9};
    if($v & 0b000000001000000000000000) {$y+=.3};
    if($v & 0b000000000100000000000000) {$y-=.3};
    if($v & 0b100000000000000000000000) {$y+=.1};
    if($v & 0b010000000000000000000000) {$y-=.1};   

    if   (($v & 0b11000011)==0b00000011) {$flag="N";}  # normal
    elsif(($v & 0b11000011)==0b10000011) {$flag="J";}  # jump 
    elsif(($v & 0b11000011)==0b11000011) {$flag="T";}  # stop
    else {$flag="U";}
    
    return ($x,$y,$flag);
}

printf("G21 G91\n");


my ($t);
while(read(IN, $t, 3)==3) {
    my($x,$y,$flag)=decode_stich($t);
    printf("G01 X%+3.2f Y%+3.2f\n", $x, $y);
}

printf("M2 \n");
ulozit do bin/dst-to-gcode.pl (pripadne by melo stacit nekam do cesty)
nastavit spustitelny flag
chmod a+x bin/dst-to-gcode.pl

v ini souboru sekce [FILTERS] pridat:

Kód: Vybrat vše

PROGRAM_EXTENSION = .DST,.dst Tajima embroidery
DST = dst-to-gcode.pl
dst = dst-to-gcode.pl
Zatim to nic nedela, jen vygeneruje G01 pro kazdy bod v DST souboru, takze se vysivka (tak nejak) zobrazuje v axis...

Re: Jak nastavit osu Z

Napsal: 24. 2. 2012, 2:47
od fupe
Parada.
Ted jeste vychytat par malickosti a uz to pojede.
Zkusim se na to taky podivat jestli neco nevymyslim. Ted si hraju s atmegou a jejima casovacema a prerusenima, ale az budu mit chvili zkusim to zase o kousek posunout.
Perl sice neni zrovna muj oblibeny jazyk, respektive ho vubec neumim, ale snad neni zas tak moc odlisnej od odstatnich jazyku.


Martin

Re: Jak nastavit osu Z

Napsal: 24. 2. 2012, 5:51
od josefga
to by bylo super ještě vyřešit jak nedávat na pohon servo nebo ho aspoň řídit Hmůstkem tak aby ho EMC nenutilo reverzovat .A bylo by po problému DC motor tam stejně chci dát optický čidlo se stínítkem není problém ale s tím EMC si furt nevím rady.

Re: Jak nastavit osu Z

Napsal: 24. 2. 2012, 8:35
od ledvinap
josefga píše:to by bylo super ještě vyřešit jak nedávat na pohon servo nebo ho aspoň řídit Hmůstkem tak aby ho EMC nenutilo reverzovat .A bylo by po problému DC motor tam stejně chci dát optický čidlo se stínítkem není problém ale s tím EMC si furt nevím rady.
Proste to zkus jak jsem psal. Pres cekani na hrany a vypinani motoru, pokud se dela delsi steh. Pripadne by slo i dopocitat, jakou rychlost nastavit, aby se steh stihnul akorat. Vicemene by stacila tabulka delka otoceni podle hodnoty PWM, pripadne jeste udelat nejaky model ze zname akcelerace siciho mechanismu...

Re: Jak nastavit osu Z

Napsal: 24. 2. 2012, 9:45
od josefga
no jo ale mně se nedaří nastavit 2 osy step a dir a třetí jako servo a navíc pořád se mi to snaží tu třetí osu reverzovat tam a zpět nevím jak emc přesvědčit že se točí dokola.

Re: Jak nastavit osu Z

Napsal: 25. 2. 2012, 12:41
od ledvinap
josefga píše:no jo ale mně se nedaří nastavit 2 osy step a dir a třetí jako servo a navíc pořád se mi to snaží tu třetí osu reverzovat tam a zpět nevím jak emc přesvědčit že se točí dokola.
Osy X a Y nastav standardne (stepconf by to mel umet). Vlastni motor na siti bych pripojil jako PWM rizene vreteno (pres F budes moct snadno nastavit rychlost) nebo jen vystupem zapinat motor. A snimac 'jehla dole' jen pres HAL propojit s binarnimi vstupy.
Zkusim to v simulatoru ...

Re: Jak nastavit osu Z

Napsal: 26. 2. 2012, 9:13
od fupe
josefga píše:Jen jsem nepochopil jak fungují barvy jen signál pro stroj na výměnu a pár dalších maličkostí
Tak tady procitam ceckovy zdrojaky pro DST soubory a ani se nedivim, ze nechapes vymenu barev. DST format totiz neobsahuje informaci o prave barve, ale pouze udava v hlavicce kolikrat a pak v datech kde se barva meni. Respektive existujou rozsireny identifikatory, ktery rgb barvy udavaj, ale nevim jestli to nejaky soft pouziva. embroidermodder to napriklad umi precist, ale tyto rozsirene informace uz neuklada.........
Jaky pouzivas softy na generovani nebo editovani vysivek?

Martin

Re: Jak nastavit osu Z

Napsal: 28. 2. 2012, 3:15
od josefga
mám origo soft od husqvarny celej balík VIP Embroidery