Hi zusammen,
ich stehe vor einem Problem und finde gerade keine Lösung dafür. Vielleicht weis der eine oder andere ja eine Richtung in die ich es versuchen kann.
Zu meinem Problem:
Ich habe einen Ovalen Dorn an einer 7 Achse, den ich mit einer als TCP vorhandenen Rolle abfahren muss. Da ich den Dorn nicht teachen kann (unterschiedliche Durchmesser), habe ich aus dem CAD 99 Werte für die Errechnung des Dornumfangs bekommen.
Diese Schreibe ich mir mit den Werten für den Drehwinkel, Radius und Werkzeugneigung in ein Array:
DECL DornDaten Dornposition[99]
Dornposition[1]={rDornWinkelStart 0.0,rDornWinkelNeigungStart 0.0,rDornZOffset 0.0}
Wennich nun den Dorn einmal Rundherum abfahren möchte, habe ich bisher folgenden Idee gehabt:
iNrStart_TMP=0
iNrEnde_TMP=99
LOOP
xOval1=xIstpos
xOval1.X=xOval1.X;+500
xOval1.Z=xOval1.Z;+DornPosition[iNrStart_TMP].rDornZOffset
xOval1.B=xOval1.B;+DornPosition[iNrStart_TMP].rDornWinkelNeigungStart
xOval1.E1=xOval1.E1-DornPosition[iNrStart_TMP].rDornWinkelStart
LIN xOval1 C_DIS
;-- Pruefe ob alle Punkte abgefahren wurden:
IF (iNrStart_TMP==iNrEnde_TMP) THEN
EXIT
ELSE
iNrStart_TMP=iNrStart_TMP+1
ENDIF
;-- Berechnung des anzufahrenden Punkts:
xOval2=xIstpos ; xLeerpos
xOval2.X=xOval2.X;+500
xOval2.Z=xOval2.Z;+DornPosition[iNrStart_TMP].rDornZOffset
xOval2.B=xOval2.B;+DornPosition[iNrStart_TMP].rDornWinkelNeigungStart
xOval2.E1=xOval2.E1-DornPosition[iNrStart_TMP].rDornWinkelStart
LIN xOval2 C_DIS
;-- Pruefe ob alle Punkte abgefahren wurden:
IF (iNrStart_TMP==iNrEnde_TMP) THEN
EXIT
ELSE
iNrStart_TMP=iNrStart_TMP+1
ENDIF
ENDLOOP
Die Punkte werden alle angefahren und soweit so gut. Allerdings ist es halt wie zu erwarten so, das die Bewegung bei jedem Punkt kurz Stopp. Ich habe also keinen flüssigen Umlauf an der 7 Achse, sondern mehr ein takten. Mit PTP Bewegungen und ca. 100% Verschleifen funktioniert es, aber das ist für die Bearbeitung zu ungenau.
Grund für den Aufbau ist der, es wird nicht immer komplett umlaufend gearbeitet, sondern auch mal bei z.B.: 200° Drewinkel begonnen. Dazu habe ich mir also eine Suchfunktion im sps.sub gebaut, die mir dann für den Winkel, den entsprechenden z Offset zurück schickt. Das ist dann mein xOval1. Von diesem Punkt aus berechne ich dann so lange, bis mein Endpunkt oder die max. Umdrehung erreicht wurde.
Hat jemand von euch eine Idee, wie ich die Auflösung besser gestalten kann, so das die Punkte/Bahn schon im Voraus bekannt ist?!
Vielen Dank!