Q7 Messung Außen Zylinder

Für Messtechniker und Anwendungsprogrammierer des sagenhaft berüchtigten Leitz-Produkts des Hexagon Konzerns.

Moderator: messtronik

Antworten
Michi
Beiträge: 17
Registriert: Do Nov 12, 2020 5:06 pm

Q7 Messung Außen Zylinder

Beitrag von Michi »

Hallo zusammen

Ich hab eine Frage zum beigefügten Programm Code.
Und zwar ich hab bei einer Büchse eine Außen Zylinder Messung via Einzelpunkte mit einem vierfach Stern Taster aus programmiert.
Zu erst werden vier Punkte Axial zur Z Achse angetastet.
Dann verfährt die Maschine radial und es werden die nächsten vier Punkte angetastet, usw.

Wie bekomme ich es hin das beim radialen verfahren von CLP zu CLP die Maschinen einen Bogen verfährt ähnlich den GENCLP Befehl?
----------------------------------------------------------------
MOVCMM (TYP=ABS, DST=(540,2450,-300), CSY=REFR$CSY)
CONCAT (NAM=~TASTER, STR=('PRB(',45,')'), RLS=Y, INI=Y)
USEPRB (NAM=~TASTER)
GETVALS (OBJ=~TASTER, TYP=PRB, RDS=(D,Y), REA=(PRBDIA,YPRBL))
MOVCMM (TYP=ABS, DST=(540,2450,-350), CSY=REFR$CSY)
USECSY (NAM=CSY2)
INPUTVAL (NAM=Z(1), VAL=-38, NA2=Z(2), VL2=-70, NA3=Z(3), VL3=-103, NA4=Z(4), VL4=-140)
SAFTYDIA1=870
SAFTYDIA2=690
MOVCMM (TYP=ABS, DST=(0,SAFTYDIA1/2,Z(1)))
!
!vier Punkte Axial acht Punkte Radial mit Sicherheits CLP
!I für radiale Abtastungen
DO (NAM=I, BGN=1, END=8, DLT=1)
If (BXP=REA:I==1)
USEPRB (NAM=PRB(45))
EndIf
If (BXP=REA:I==3)
USEPRB (NAM=PRB(46))
EndIf
If (BXP=REA:I==5)
USEPRB (NAM=PRB(47))
EndIf
If (BXP=REA:I==7)
USEPRB (NAM=PRB(48))
EndIf
!E für Z Tiefe
DO (NAM=E, BGN=1, END=4)
DELETE (NAM=PNTGEN, CNF=N, TYP=ELE, STY=ALL)
If (BXP=REA:E == 1)
CRSUBTYP (NAM=PNTGEN, LIN=4, DEL=Y, TYP=ELE, STY=NPT)
PUTVALS (OBJ=PNTGEN.NOM.PTS(1), RDS=(X,Y,Z,U,V,W), VAL=(0,(SAFTYDIA1/2),Z(E),0,1,0), CDS=T, STR=CLP)
PUTVALS (OBJ=PNTGEN.NOM.PTS(2), RDS=(X,Y,Z,U,V,W), VAL=(0,(SAFTYDIA2/2),Z(E),0,1,0), CDS=T, STR=CLP)
PUTVALS (OBJ=PNTGEN.NOM.PTS(3), RDS=(X,Y,Z,U,V,W), VAL=(0,(DIA3/2),Z(E),0,1,0), CDS=T, STR=PRB)
PUTVALS (OBJ=PNTGEN.NOM.PTS(4), RDS=(X,Y,Z,U,V,W), VAL=(0,(SAFTYDIA2/2),Z(E),0,1,0), CDS=T, STR=CLP)
!PUTVALS (OBJ=PNTGEN.NOM.PTS(5), RDS=(X,Y,Z,U,V,W), VAL=(0,(SAFTYDIA1/2),Z(E),0,1,0), CDS=T, STR=CLP)
!
ElseIf (BXP=REA:E == 2 || REA:E == 3)
CRSUBTYP (NAM=PNTGEN, LIN=3, DEL=Y, TYP=ELE, STY=NPT)
!PUTVALS (OBJ=PNTGEN.NOM.PTS(1), RDS=(X,Y,Z,U,V,W), VAL=(0,(SAFTYDIA1/2),Z(E),0,1,0), CDS=T, STR=CLP)
PUTVALS (OBJ=PNTGEN.NOM.PTS(1), RDS=(X,Y,Z,U,V,W), VAL=(0,(SAFTYDIA2/2),Z(E),0,1,0), CDS=T, STR=CLP)
PUTVALS (OBJ=PNTGEN.NOM.PTS(2), RDS=(X,Y,Z,U,V,W), VAL=(0,(DIA3/2),Z(E),0,1,0), CDS=T, STR=PRB)
PUTVALS (OBJ=PNTGEN.NOM.PTS(3), RDS=(X,Y,Z,U,V,W), VAL=(0,(SAFTYDIA2/2),Z(E),0,1,0), CDS=T, STR=CLP)
!PUTVALS (OBJ=PNTGEN.NOM.PTS(5), RDS=(X,Y,Z,U,V,W), VAL=(0,(SAFTYDIA1/2),Z(E),0,1,0), CDS=T, STR=CLP)
!
ElseIf (BXP=REA:E == 4 )
CRSUBTYP (NAM=PNTGEN, LIN=4, DEL=Y, TYP=ELE, STY=NPT)
PUTVALS (OBJ=PNTGEN.NOM.PTS(1), RDS=(X,Y,Z,U,V,W), VAL=(0,(SAFTYDIA2/2),Z(E),0,1,0), CDS=T, STR=CLP)
PUTVALS (OBJ=PNTGEN.NOM.PTS(2), RDS=(X,Y,Z,U,V,W), VAL=(0,(DIA3/2),Z(E),0,1,0), CDS=T, STR=PRB)
PUTVALS (OBJ=PNTGEN.NOM.PTS(3), RDS=(X,Y,Z,U,V,W), VAL=(0,(SAFTYDIA2/2),Z(E),0,1,0), CDS=T, STR=CLP)
PUTVALS (OBJ=PNTGEN.NOM.PTS(4), RDS=(X,Y,Z,U,V,W), VAL=(0,(SAFTYDIA1/2),Z(E),0,1,0), CDS=T, STR=CLP)
EndIf
!
TRAOBJ (NEW=PNTOUT(10*I+E), OLD=PNTGEN, ANG=-22.5+(45*(I-1)), AXI=+Z, RPL=Y, DTY=ELE, REF=CSY2)
MEPNT (NAM=PNTOUT(10*I+E), CSY=CSY2, MOD=NOE)
ENDDO ENDDO
!
!Auswerten der Durchmesser als Kreis
DO (NAM=J, BGN=1, END=4)
CRSUBTYP (NAM=A(J+11).EVA, LIN=4, TYP=ELE, STY=EVA)
PUTVALS (OBJ=A(J+11).EVA(3), RDS=(A,B,C), VAL=(0,0.035,-0.035))
PUTVALS (OBJ=A(J+11).EVA(4), RDS=(A,B,C), VAL=(0,0.035,-0.035))
PUTVALS (OBJ=A(J+11).EVA(2), RDS=(A,B,C), VAL=(DIA3,OT3,UT3))
PUTVALS (OBJ=A(J+11).EVA(1), RDS=(A,B), VAL=(0,0.05))
DO (NAM=I, BGN=1, END=8)
COLPTS (NAM=A(J+11), CSY=CSY2, DEL=N, ELE=PNTOUT(10*I+J))
ENDDO
CVREACHS (NAM=~DIA3, VAL=DIA3, INT=N, ANG=N, SPZ=N, RLS=Y, RTZ=Y)
CVREACHS (NAM=~OT3, VAL=(OT3), INT=N, ANG=N, SPZ=N, RLS=Y, RTZ=Y)
CVREACHS (NAM=~UT3, VAL=(UT3), INT=N, ANG=N, SPZ=N, RLS=Y, RTZ=Y)
CONCAT (NAM=~TxtLine(1), STR=CHECKED THE FEATURE DIAMETER, LMG=1, RLS=N, INI=Y)
CONCAT (NAM=~TxtLine(2), STR=(~DIA3,g6,' ',(,~OT3,' ',~UT3,),), LMG=1, RLS=N, INI=Y)
CONCAT (NAM=~A(J+11), STR=(~TxtLine(1),' ',~TxtLine(2),), LMG=1, RLS=N, INI=Y)
CVSTRTXT (TXT=A(J+11), LIN=1, STR='~A(J+11)')
BLDCIR (NAM=A(J+11), CSY=CSY2, INO=I, ITY=GSS, CTY=NO)
ENDDO

Vielleicht habt ihr eine Idee!
P.S. Warum kann man hier keine Anhänge beifügen?
Ich wollt die .txt Datei beifügen, war aber nicht möglich.

Mit freundlichen Grüßen
Michael
messtronik
Beiträge: 56
Registriert: Mo Feb 22, 2021 6:12 pm

Re: Q7 Messung Außen Zylinder

Beitrag von messtronik »

Hi Michi,

lass mich es
so sagen: Wenn jede Messung so aufwendig zu programmieren wäre, würde Quindos wahrscheinlich keine Chance haben.
Es gibt für die meisten Aufgaben Anweisung, die Kunst liegt in richtigen Reihenfolge und Strategie.

Dein Ziel: Messe einen Aussenzylinder mit einem Sterntaster.

! Schritt 1, Generiere einen Zylinder
! Hier kannst Du später Variablen setzen - um Dein Programm flexibel zu gestalten
GENCYL

! Schritt 2, hier die Fahrwege erstellen - NPTs mit CLPs ereitern
GENCLP

! Schritt 3, Messen des Elements
MeasCyl

!!!! Alternative, generieren und messen von Kreisen:
GENCIR
GENCLP
MeasCir2D
CirToCyl


Danke an unseren Kollegen Harsha!


Gutes Gelingen - gruss Jörg

PS: Unter dem Eingabefeld und speichern, findest du die Option Dateianhänge.
Antworten