XisD pisze:N1 G90 G0 X0.1 Y0
Tutaj zamiast X0.1 lepiej jest wpisać X=VC1, wtedy kod będzie bardziej uniwersalny i w przypadku robienia innego stożka wystarczy zmienić jedną zmienną, nie ingerując w resztę programu.
XisD pisze:N2 G3 I=VC4+VC2
Domyślam się, że tutaj biorąc pod uwagę domyślność parametrów wystarczy podać położenie środka okręgu, i program wykona okrąg. W tym przypadku środek okręgu masz na współrzędnych dodatnich od aktualnego położenia narzędzia, czyli stożek który robisz jest poza osią. Nie wiem czy zrobiłeś to umyślnie czy nie, ale jest to mało optymalne.
XisD pisze:G2 Z=VC4+VC2
Nie powinno tu być G1? Poza tym równocześnie z zejściem narzędzia w osi Z musisz odsuwać narzędzie w osi (w tym przypadku) X.
XisD pisze:VC4=VC4-VC2
Tutaj od VC4 odejmujesz VC2, a w bloku między N2 a N3 do pozycji Z dodajesz VC4 do VC2. Bez sensu... Jak operujesz na zmiennych to do ustawiania się na pozycji narzędzia nie wykorzystuj działań bo się pogubisz, oblicz pozycję przed interpolacją, zapisz je do jakiejś jednej konkretnej zmiennej, i później pod tą zmienną się ustaw. Będzie Ci łatwiej ogarnąć kod.
XisD pisze:G1X=-VC1
Dlaczego X ma wartość ujemną skoro zaczynałeś program od pozycji dodatniej? Taki konflikt jest niedopuszczalny - przecinasz w tym momencie tym przejazdem stożek na pół.
XisD pisze:N4 VC3=VC3-1
N5 IF [VC3 GT 0] N2
Rozumiem że to liczba powtórzeń. Bardziej optymalnie jest kontrolować oś zejścia w osi Z, nie trzeba wtedy ręcznie przeliczać ilości zejść. Ale na początku możesz się pobawić i poćwiczyć różne warianty, więc jak najbardziej jest to do zaakceptowania.