Jak nastavit osu Z
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
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
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
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.
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:
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:
Zatim to nic nedela, jen vygeneruje G01 pro kazdy bod v DST souboru, takze se vysivka (tak nejak) zobrazuje v axis...
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");
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
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
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
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...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.
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.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.
Zkusim to v simulatoru ...
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.........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í
Jaky pouzivas softy na generovani nebo editovani vysivek?
Martin