Nowa generacja prostego THC - pomysł na :)
-
- Specjalista poziom 2 (min. 300)
- Posty w temacie: 46
- Posty: 340
- Rejestracja: 22 kwie 2010, 10:34
- Lokalizacja: Nowy Sącz
Jak to zrobić? Dodatkowe dwa czy cztery przewody Step i Dir z sygnalami na macha ktore skonfigurować w Porty/piny na THC down i up a i tak wersja SD odcina sterowanie Z fizycznie wiec THC będzie sterować ploterem a Mach tylko programowo by zmieniał wartosci.
A gdyby teraz wyjscie z THC wrzucił do Mach i skonfigurowal THC up/down to nie działało by?
A gdyby teraz wyjscie z THC wrzucił do Mach i skonfigurowal THC up/down to nie działało by?
Tagi:
-
Autor tematu - ELITA FORUM (min. 1000)
- Posty w temacie: 102
- Posty: 1126
- Rejestracja: 11 sty 2005, 13:03
- Lokalizacja: Grodków
- Kontakt:
możesz spróbować to THC150 (ja nie próbowałem) ale nie uważam, żeby to cofnięcie się o krok wstecz, jedyna zaleta - mach wie gdzie jest, ale jak postprocesor poprawisz to będzie git, albo nie korzystaj z tego z detekcją tylko jakiegoś standardowego do mach 3 bez detekcji a detekcję dopisz do makro M3. zauważ, że Mach nawet bez THC SD przy krzywym materiale nigdy nie wie gdzie on jest (w oci Z) więc aktualna pozycja Z do niczego nie jest Ci potrzebna.
-
- Specjalista poziom 2 (min. 300)
- Posty w temacie: 74
- Posty: 394
- Rejestracja: 27 cze 2015, 16:36
- Lokalizacja: kłodzko
Cały czas myślałem, że funkcja w Preferencjach Mach-a "Kontrola CV" działa tylko w trybie "Dokładnego Stop" ...i tu byłem w błędzie.
Po zaznaczeniu funkcji "Tryb Plazmy" Mach zaczął zwalniać na łukach (bez ptaszka przyspieszał) ...nie wiele, ale wystarczająco żeby aktywować DISABLE.
Z normalnymi prędkościami i przyspieszeniami, na rogach i łukach ...pięknie załącza DISABLE.
Po zaznaczeniu funkcji "Tryb Plazmy" Mach zaczął zwalniać na łukach (bez ptaszka przyspieszał) ...nie wiele, ale wystarczająco żeby aktywować DISABLE.
Z normalnymi prędkościami i przyspieszeniami, na rogach i łukach ...pięknie załącza DISABLE.

-
- Specjalista poziom 2 (min. 300)
- Posty w temacie: 74
- Posty: 394
- Rejestracja: 27 cze 2015, 16:36
- Lokalizacja: kłodzko
Tak na prawdę, to nawet twórcy Macha do końca nie wiedzą jak tego urzywać
Funckcja CV Dist Tolerance- Jest to dystans w jednostkach jakich używamy (mm) do wyhamowania przed łukiem.
G100 Adaptive Nurbs CV- nie wiem co to jest, ale ponoć lepiej nie używać.
Stop CV on angles- kąt od jakiego ma być stop na rogu.
Tryb Plazmy- Wygląda na to, że funkcja uaktywnia powyższe w trybie "Stałej Prędkości" co jest korzystne przy cięciu plazmą, większe prędkości robocze mniejsze przyspieszenia. Przy frezarkach na łuku (metale) krawędź byłaby ząbkowana.
Dlatego do frezarek jest funkcja "Dokładnego Stop", ale przyspieszenia muszą być bardzo duże w stosunku do prędkości. Rysunki wektorowe jakich używamy do generowania kodów mają węzły, których jest dużo na łukach- Dokładny Stop zatrzymuje się na każdym z nich. Dlatego musi być duże przyspieszenie, żeby Mach wchodził w łuki wolniej ale płynniej przechodził przez węzły.
Tyle wiem i nie jestem pewien czy o to chodzi.
[ Dodano: 2015-09-07, 22:43 ]
Postprocesor Mach dla SheetCam. Detekcja pływającą głowicą z czujnikiem na PROBE z makrem M300.
Skopiować, edytować jakiś postprocesor w SheetCam-ie, wkleić, zapisać. Zdać relację
function OnAbout(event)
ctrl = event:GetTextCtrl()
ctrl:AppendText("plasma THC300 post processor\n")
ctrl:AppendText("\n")
ctrl:AppendText("Modal G-codes and coordinates\n")
ctrl:AppendText("Comments enclosed with ( and )\n")
ctrl:AppendText("M03/M05 turn the torch on/off\n")
ctrl:AppendText("Incremental IJ\n")
ctrl:AppendText("The torch is referenced at cut start and every 500mm of movement thereafter\n")
ctrl:AppendText("Designed for use with Mach2 and Campbell Designs THC300\n")
ctrl:AppendText("Post variables:\n")
ctrl:AppendText("refdistance - set the distance between each reference\n")
end
-- revision 3/2/07
-- Removed final safety move. This is now done in SheetCam
-- revision 7/10/05
-- Added new arc handling
-- created 27/10/04
-- Based on plasma1.post
function OnInit()
post.SetCommentChars ("()", "[]") --make sure ( and ) characters do not appear in system text
post.Text (" (Filename: ", fileName, ")\n")
post.Text (" (Post processor: ", postName, ")\n")
post.Text (" (Date: ", date, ")\n")
if(scale == metric) then
post.Text (" G21 (Units: Metric)\n") --metric mode
else
post.Text (" G20 (Units: Inches)\n") --inch mode
end
post.Text (" G53 G90 G40\n F1\n S500\n")
dist = 9999999
refdistance = 500 * scale
switchoffset = -0.08
bigarcs = 1 --stitch arc segments together
minArcSize = 0.05 --arcs smaller than this are converted to moves
end
function OnNewLine()
post.Text ("N")
post.Number (lineNumber, "0000")
lineNumber = lineNumber + 10
end
function OnFinish()
post.Text (" M05 M30\n")
end
function OnRapid()
if(math.hypot(endX-currentX , endY-currentY) < 0.001 and endZ < currentZ) then return end
dist = dist + math.hypot(endX-currentX , endY-currentY)
post.ModalText (" G00")
post.ModalNumber (" X", endX * scale, "0.0000")
post.ModalNumber (" Y", endY * scale, "0.0000")
post.ModalNumber (" Z", endZ * scale, "0.0000")
post.Eol()
end
function OnMove()
dist = dist + math.hypot(endX-currentX , endY-currentY)
post.ModalText (" G01")
post.ModalNumber (" X", endX * scale, "0.0000")
post.ModalNumber (" Y", endY * scale, "0.0000")
post.ModalNumber (" Z", endZ * scale, "0.0000")
post.ModalNumber (" F", feedRate * scale, "0.###")
post.Eol()
end
function OnArc()
dist = dist + math.hypot(endX-currentX , endY-currentY)
if(arcAngle <0) then
post.ModalText (" G03")
else
post.ModalText (" G02")
end
post.NonModalNumber (" X", endX * scale, "0.0000")
post.NonModalNumber (" Y", endY * scale, "0.0000")
post.ModalNumber (" Z", endZ * scale, "0.0000")
post.Text (" I")
post.Number ((arcCentreX - currentX) * scale, "0.0000")
post.Text (" J")
post.Number ((arcCentreY - currentY) * scale, "0.0000")
post.ModalNumber (" F", feedRate * scale, "0.0###")
post.Eol()
end
function OnPenDown()
--[[ post.ModalText (" G00")
post.ModalNumber (" X", endX * scale, "0.0000")
post.ModalNumber (" Y", endY * scale, "0.0000")
post.Eol()]]
if (preheat > 0) then
post.ModalText (" G00")
post.ModalNumber (" Z", cutHeight * scale, "0.0000")
post.Eol()
post.Text(" M801\n G04 P 0.5\n M802\n G04 P0.1\n M902")
post.Text ("\n G04 P")
post.Number (preheat,"0.###")
post.Eol()
end
post.ModalText (" M300\n G00")
post.ModalNumber (" Z", pierceHeight * scale, "0.0000")
post.Text ("\n M03\n")
if (pierceDelay > 0) then
post.Text (" G04 P")
post.Number (pierceDelay,"0.###")
post.Eol()
end
end
function OnPenUp()
post.Text (" M05\n")
end
function OnNewOperation()
post.Text (" (Process: ", operationName, ")\n")
if (plungeRate <= 0) then
post.Warning("WARNING: Plunge rate is zero")
end
if (feedRate <= 0) then
post.Warning("WARNING: Feed rate is zero")
end
end
function OnComment()
post.Text(" (",commentText,")\n")
end
function OnToolChange()
post.Text (" M06 T")
post.Number (tool, "0")
post.Text (" (", toolName, ")\n")
end
function OnNewPart()
post.Text(" (Part: ",partName,")\n");
end
function OnDrill()
OnRapid()
OnPenDown()
endZ = drillZ
OnMove()
OnPenUp()
endZ = safeZ
OnRapid()
end

Funckcja CV Dist Tolerance- Jest to dystans w jednostkach jakich używamy (mm) do wyhamowania przed łukiem.
G100 Adaptive Nurbs CV- nie wiem co to jest, ale ponoć lepiej nie używać.
Stop CV on angles- kąt od jakiego ma być stop na rogu.
Tryb Plazmy- Wygląda na to, że funkcja uaktywnia powyższe w trybie "Stałej Prędkości" co jest korzystne przy cięciu plazmą, większe prędkości robocze mniejsze przyspieszenia. Przy frezarkach na łuku (metale) krawędź byłaby ząbkowana.
Dlatego do frezarek jest funkcja "Dokładnego Stop", ale przyspieszenia muszą być bardzo duże w stosunku do prędkości. Rysunki wektorowe jakich używamy do generowania kodów mają węzły, których jest dużo na łukach- Dokładny Stop zatrzymuje się na każdym z nich. Dlatego musi być duże przyspieszenie, żeby Mach wchodził w łuki wolniej ale płynniej przechodził przez węzły.
Tyle wiem i nie jestem pewien czy o to chodzi.
Makro i detekcja u snajpera działa dobrze, problem jest z postprocesorem SheetCam-a ...trzeba wstawić makro. Próbuję dla robaczka to zrobić, ale coś kiepsko mi to idzie.pokieruj snajpera na te Twoje dobrze działające makra do detekcji materiału
[ Dodano: 2015-09-07, 22:43 ]
Postprocesor Mach dla SheetCam. Detekcja pływającą głowicą z czujnikiem na PROBE z makrem M300.
Skopiować, edytować jakiś postprocesor w SheetCam-ie, wkleić, zapisać. Zdać relację

function OnAbout(event)
ctrl = event:GetTextCtrl()
ctrl:AppendText("plasma THC300 post processor\n")
ctrl:AppendText("\n")
ctrl:AppendText("Modal G-codes and coordinates\n")
ctrl:AppendText("Comments enclosed with ( and )\n")
ctrl:AppendText("M03/M05 turn the torch on/off\n")
ctrl:AppendText("Incremental IJ\n")
ctrl:AppendText("The torch is referenced at cut start and every 500mm of movement thereafter\n")
ctrl:AppendText("Designed for use with Mach2 and Campbell Designs THC300\n")
ctrl:AppendText("Post variables:\n")
ctrl:AppendText("refdistance - set the distance between each reference\n")
end
-- revision 3/2/07
-- Removed final safety move. This is now done in SheetCam
-- revision 7/10/05
-- Added new arc handling
-- created 27/10/04
-- Based on plasma1.post
function OnInit()
post.SetCommentChars ("()", "[]") --make sure ( and ) characters do not appear in system text
post.Text (" (Filename: ", fileName, ")\n")
post.Text (" (Post processor: ", postName, ")\n")
post.Text (" (Date: ", date, ")\n")
if(scale == metric) then
post.Text (" G21 (Units: Metric)\n") --metric mode
else
post.Text (" G20 (Units: Inches)\n") --inch mode
end
post.Text (" G53 G90 G40\n F1\n S500\n")
dist = 9999999
refdistance = 500 * scale
switchoffset = -0.08
bigarcs = 1 --stitch arc segments together
minArcSize = 0.05 --arcs smaller than this are converted to moves
end
function OnNewLine()
post.Text ("N")
post.Number (lineNumber, "0000")
lineNumber = lineNumber + 10
end
function OnFinish()
post.Text (" M05 M30\n")
end
function OnRapid()
if(math.hypot(endX-currentX , endY-currentY) < 0.001 and endZ < currentZ) then return end
dist = dist + math.hypot(endX-currentX , endY-currentY)
post.ModalText (" G00")
post.ModalNumber (" X", endX * scale, "0.0000")
post.ModalNumber (" Y", endY * scale, "0.0000")
post.ModalNumber (" Z", endZ * scale, "0.0000")
post.Eol()
end
function OnMove()
dist = dist + math.hypot(endX-currentX , endY-currentY)
post.ModalText (" G01")
post.ModalNumber (" X", endX * scale, "0.0000")
post.ModalNumber (" Y", endY * scale, "0.0000")
post.ModalNumber (" Z", endZ * scale, "0.0000")
post.ModalNumber (" F", feedRate * scale, "0.###")
post.Eol()
end
function OnArc()
dist = dist + math.hypot(endX-currentX , endY-currentY)
if(arcAngle <0) then
post.ModalText (" G03")
else
post.ModalText (" G02")
end
post.NonModalNumber (" X", endX * scale, "0.0000")
post.NonModalNumber (" Y", endY * scale, "0.0000")
post.ModalNumber (" Z", endZ * scale, "0.0000")
post.Text (" I")
post.Number ((arcCentreX - currentX) * scale, "0.0000")
post.Text (" J")
post.Number ((arcCentreY - currentY) * scale, "0.0000")
post.ModalNumber (" F", feedRate * scale, "0.0###")
post.Eol()
end
function OnPenDown()
--[[ post.ModalText (" G00")
post.ModalNumber (" X", endX * scale, "0.0000")
post.ModalNumber (" Y", endY * scale, "0.0000")
post.Eol()]]
if (preheat > 0) then
post.ModalText (" G00")
post.ModalNumber (" Z", cutHeight * scale, "0.0000")
post.Eol()
post.Text(" M801\n G04 P 0.5\n M802\n G04 P0.1\n M902")
post.Text ("\n G04 P")
post.Number (preheat,"0.###")
post.Eol()
end
post.ModalText (" M300\n G00")
post.ModalNumber (" Z", pierceHeight * scale, "0.0000")
post.Text ("\n M03\n")
if (pierceDelay > 0) then
post.Text (" G04 P")
post.Number (pierceDelay,"0.###")
post.Eol()
end
end
function OnPenUp()
post.Text (" M05\n")
end
function OnNewOperation()
post.Text (" (Process: ", operationName, ")\n")
if (plungeRate <= 0) then
post.Warning("WARNING: Plunge rate is zero")
end
if (feedRate <= 0) then
post.Warning("WARNING: Feed rate is zero")
end
end
function OnComment()
post.Text(" (",commentText,")\n")
end
function OnToolChange()
post.Text (" M06 T")
post.Number (tool, "0")
post.Text (" (", toolName, ")\n")
end
function OnNewPart()
post.Text(" (Part: ",partName,")\n");
end
function OnDrill()
OnRapid()
OnPenDown()
endZ = drillZ
OnMove()
OnPenUp()
endZ = safeZ
OnRapid()
end
-
- Specjalista poziom 2 (min. 300)
- Posty w temacie: 46
- Posty: 340
- Rejestracja: 22 kwie 2010, 10:34
- Lokalizacja: Nowy Sącz
Kurna temat ogniem idzie a ja znikłem na chwilę zasypany cięciem:P
Dzięki karpik za Postprocesor - przetestuje i dam znać a puki co to moje spostrzeżenia takie po ścięciu 4 arkuszy blachy 1500x300 gr 4mm i jednej 3mm....
THC zapiernicza aż miło. DISABLE podłączone i działa - niewiele odczuwam jego zalete czy wadę bo przy prędkości cięcia np 2000mm/min blachy 3mm i wchodzeniu w winkle tylko mrugnie ma pół sekundy DISABLE także działa ale czy coś to daje.... hmmmm... myślę że napewno przy wolnych maszynach - ja mam w osi Y silnik 12.5Nm z przełożeniem 1:3 co daje ok 60Nm a w X 8.5Nm też z 1:3 więc mamy ok 25,5Nm a waga bramy ok 150kg a karetki z 60kg także te silniki miotają tym jak chcą w każdą ze stron i nawet nie zajękną. Przy puszczeniu maszyny z prędkością 18m/min to dopiero zamiata
także u mnie DISABLE może być zbędne:)
Co do ARC OK to działa prawidłowo - szybko załącza i wie co się dzieje.
Potencjometr działa i wygodna sprawa - daje duży PLUS,
A co do przebić i mierzenia - detekcji to ten procesor wcale nie jest zły... trzeba się go nauczyć i przewidywać sytuację ale usprawnia czas cięcia bo śmiga i odpala z pamięci a na odcinku np 50mm nie wygnie się blacha np o 1cm tylko max o 0.5-1mm to i tak przebicie pójdzie a potem THC podniesie i ogień.
Za to jest jedna POWAŻNA WADA ! - po wgraniu dodatku DISABLE do Mach NIE DZIAŁA ręczne odpalanie palnika tzn np klawisz F5..............
Dzięki karpik za Postprocesor - przetestuje i dam znać a puki co to moje spostrzeżenia takie po ścięciu 4 arkuszy blachy 1500x300 gr 4mm i jednej 3mm....
THC zapiernicza aż miło. DISABLE podłączone i działa - niewiele odczuwam jego zalete czy wadę bo przy prędkości cięcia np 2000mm/min blachy 3mm i wchodzeniu w winkle tylko mrugnie ma pół sekundy DISABLE także działa ale czy coś to daje.... hmmmm... myślę że napewno przy wolnych maszynach - ja mam w osi Y silnik 12.5Nm z przełożeniem 1:3 co daje ok 60Nm a w X 8.5Nm też z 1:3 więc mamy ok 25,5Nm a waga bramy ok 150kg a karetki z 60kg także te silniki miotają tym jak chcą w każdą ze stron i nawet nie zajękną. Przy puszczeniu maszyny z prędkością 18m/min to dopiero zamiata

Co do ARC OK to działa prawidłowo - szybko załącza i wie co się dzieje.
Potencjometr działa i wygodna sprawa - daje duży PLUS,
A co do przebić i mierzenia - detekcji to ten procesor wcale nie jest zły... trzeba się go nauczyć i przewidywać sytuację ale usprawnia czas cięcia bo śmiga i odpala z pamięci a na odcinku np 50mm nie wygnie się blacha np o 1cm tylko max o 0.5-1mm to i tak przebicie pójdzie a potem THC podniesie i ogień.
Za to jest jedna POWAŻNA WADA ! - po wgraniu dodatku DISABLE do Mach NIE DZIAŁA ręczne odpalanie palnika tzn np klawisz F5..............
-
Autor tematu - ELITA FORUM (min. 1000)
- Posty w temacie: 102
- Posty: 1126
- Rejestracja: 11 sty 2005, 13:03
- Lokalizacja: Grodków
- Kontakt:
Czy może to ktoś potwierdzić? Program nie powinien wpływać na ręczne załączanie plazmy. Jesteś pewien że przed działało poprawnie ?snajperman-s1 pisze:po wgraniu dodatku DISABLE do Mach NIE DZIAŁA ręczne odpalanie palnika tzn np klawisz F5..............
podeślij mi proszę Twoją konfigurację Macha (xml)...