Makro Xilog Plus

chrissi300

ww-kastanie
Registriert
3. Oktober 2007
Beiträge
41
Ort
Wolfenbüttel
Moin Moin,

ich bin auf der Suche nah einem Makro für eine Lochplatte. Allerdings nicht mit einer
Runden Lochung, sondern mit einer Quadartlochung. Also als Paramenter sollten Start x,y, ende x,y der Lochabstand, sowie die größe des Loches angeben werden können. Vielleicht müsste auch nur ein vorhandenes Makro Umgeschrieben werden ???

Weiß einer Rat ??

Gruß Chrissi
 

Jono

ww-esche
Registriert
4. Mai 2006
Beiträge
406
Ort
Bodensee
Hallo,

so ein Makro ist nicht weiter schwierig zu schreiben, allerdings fehlen Dir noch einige Parameter wie etwa Sprungweite von Loch zu loch, welche allerdings auch in Abhängigkeit der Lochgeröße errechnet werden kann. Am besten Du machst mal ne Skizze wie die Platte genau aussehen soll.
Sollen normale Löcher quadratisch angeordnet gebohrt/gefräst werden (vollflächig oder nur Umriß) oder sind die löcher an sich Quadratisch?
 

chrissi300

ww-kastanie
Registriert
3. Oktober 2007
Beiträge
41
Ort
Wolfenbüttel
Moin Jono,

im Anhang die Datei wie es aussehen sollte. Da ich mit dieser Art von Programmierung noch total unbefleckt bin, und es auch leider keine Dokumentation hierfür gibt, wäre es schön wenn Du mir hier vielleicht ein wenig helfen kannst.

Parameter für die Abfrage stelle ich mir wie folgt vor.

Start in x von links
Start in y von oben
Bohrtiefe
Haubenposition
Vorschub
Drehzahl
Werkzeugnummer
Raster in x
Raster in y
Lochgröße in x
Lochgröße in y
Ende in x von rechts
Ende in y von unten

Wenn diese Vorgaben alle gemacht sind, dann müsste solch eine Lochplatte bei raus kommen. Gut, die Quadartlochung ist in den Ecken mit einem Radius versehen, damit kann man aber Leben, je nachdem welchen Fräser man hier einsetzt.

In der Hoffnung auf Hilfe..

Chrissi
 

Jono

ww-esche
Registriert
4. Mai 2006
Beiträge
406
Ort
Bodensee
Sind Raster und Loch immer Quadratisch oder manchmal auch rechteckig?
wie wird der Sonderfall behandelt, wenn das programmierte Raster nicht zu der programmierten Gesamtgröße passt?
soll als Bezug die Ecke der ersten und letzten Fräsung genommen werden oder der Mittelpunkt?

weiß noch nicht, wie ich am WE Zeit habe, aber als variables Unterprogramm kriegen wir das sicherlich hin. ob ich die Ausarbeitung zum Makro zeitlich noch hinkriege kann ich nicht versprechen. Für das Makro sollten auch noch Standardwerte definiert werden, die verwendet werden wenn die entsprechenden Felder leer bleiben.

Als Einstiegslektüre sieh dir mal die Hilfedatei an 'Erweiterte Programmierung - Makros' und den Anhang B , da geht es allgemein über Systemvariablen und die zur Verfügung stehenden mathematischen Funktionen. Vor allem in zweiterer schlage ich auch noch öfters nach.
 

chrissi300

ww-kastanie
Registriert
3. Oktober 2007
Beiträge
41
Ort
Wolfenbüttel
Raster und Loch können auch Quadratisch sein. Wenn das Raster nicht auf die Programmierte größe passt, dann muss das Raster Automatisch angepasst werden können, bzw. der Hinweis Raster passt nicht. Somit habt man dann die Wahl, entweder Raster oder angepasst.
Als Bezug soll der Mittelpunkt der Ersten und letzen Ecke genommen werden. Als Standardwerte können z.b. Anfang und Ende 50,50, Werkzeug 102, Raster 50,50, Lochgröße 10,10 sein.

In der Hilfedatei werde ich mal morgen Blättern. Bei uns Kracht es im Moment aus allen Nähten...

Gruß Chrissi
 

Chris70

ww-kirsche
Registriert
9. Mai 2008
Beiträge
156
Anhand deiner Parametervorgaben sind die Anschläge deiner Maschine hinten und links ???

D.h. die Bohrtiefe wird postiv angegeben ???


Ich habe das ganze mal als Schleifenprogramierung realisiert.

Das Loch an sich ist als Unterprogramm vorhanden. Anhand der Außenmaße BX u BY und einem Randparameter ( RAND = 50 ) errechnet man die Abstände in x un y.

Die Schleifenprogramierung fräst so lange ein Loch neben den anderen bis das Plattenende erreicht ist. Dann fängt eine neue Zeile an usw.

( Ist oftmals leichter zu Programmieren als ein MAKRO, zudem kann man das Unterprogramm für das Loch leicht austauschen Rechteck, Kreis, Sechseck usw.)

Gruß Chris
 

chrissi300

ww-kastanie
Registriert
3. Oktober 2007
Beiträge
41
Ort
Wolfenbüttel
Moin Chris,

ob die Anschläge hinten links, oder vorne links sind ist doch glaube ich egal, oder ?
Auf jeden Fall links, das ist schon richtig.

Kannst Du das Schleifenprogramm einstellen ?

Gruß Chrissi
 

Chris70

ww-kirsche
Registriert
9. Mai 2008
Beiträge
156
Ich versuch morgen mal solch ein Schleifenprogramm mal vom CNC-Rechner zu ziehen und hier zu posten. :emoji_slight_smile:

Wo die Anschläge sind ist nicht ganz unwichtig!. Zumindest bei SCM. Wenn die Anschläge hinten sind ist das ganze Koordinatensystem um die Y-Achse gespiegelt und somit wird aus Z=-20 -> Z=20. Sonst bleibt aber alles gleich.

Wir hatte schon das Problem mit einem Programm von einer Record 125 ( Anschläge vorne ) das wir auf einer Tech90 ( Anschläge hinten ) laufen lassen wollten. :emoji_frowning2:

Gruß Chris
 

Jono

ww-esche
Registriert
4. Mai 2006
Beiträge
406
Ort
Bodensee
Hallo,

den folgenden Text unter den Programmkopf kopiern sollte funktionieren :emoji_slight_smile:
Die Parameter benutzen Kürzel, die Makrotauglich sind. Allerdings müsste noch der Programmkopf angeglichen werden und für jeden Parameter wo es wichtig ist ein IF Anweisung eingebaut werden wo der Standard hinterlegt wird wenn der Parameter unbelegt bleibt damit daraus auch ein lauffähiges Makro wird.
Der Parameter pT wird noch nicht verwendet (da vom SCM-eigenen Makro RAU1 nicht akzeptiert daher habe ich das Werkzeug der Einfachheit halber direkt eingetragen. Abhilfe schafft hier nur RAU1 korregieren dass es das laufende Werkzeug verwendet und über XT programmiert oder die Rechteckkontur direkt in die Schleife programmieren.
PS hab 104 verwendet, da mein 102 20mm Durchmesser hat und daher nicht in Deinen Ausschnitt passt :emoji_grin:

Bei Fragen gerne nochmal nachfragen :emoji_slight_smile:

PAR pX =50 "Start X"
PAR pY =50 "Start Y"
PAR pZ =10 "Tiefe"
PAR pI =50 "Ende X v.Rechts"
PAR pJ =50 "Ende Y von vorn"
PAR px =50 "Sprungweite"
PAR py =10 "Ausschnittgröße"
PAR pT =104 "Werkzeug"
PAR ps =0 "Raster 0=fest 1=nach X quadratisch vermittelt 2=nach Y quadratisch vermittelt 3=rechteckig vermittelt"
PAR pE =1 "Haube"
;
;Lochplatte erstellt H. Wols
;
:emoji_stuck_out_tongue_winking_eye:rogrammierte Sprungwerte übernehmen
L spx=px
L spy=px
;
IF ps=1 THEN ;Wenn ps=1 Sprungwerte nochmal vermitteln
L zwx =RD((DX-pX-pI)/px+0.5) ;Anzahl Zwischenräume gerundet (Dezimalbrüche >0,5 werden aufgerundet)
L spx =(DX-pX-pI)/zwx
L spy =spx
FI
IF ps=2 THEN ;Wenn ps=2 Sprungwerte nochmal vermitteln
L zwy =RD((DY-pY-pJ)/px+0.5) ;Anzahl Zwischenräume gerundet (Dezimalbrüche >0,5 werden aufgerundet)
L spy =(DY-pY-pJ)/zwy
L spx=spy
FI
IF ps=3 THEN ;Wenn ps=3 Sprungwerte nochmal vermitteln
L zwx =RD((DX-pX-pI)/px+0.5) ;Anzahl Zwischenräume gerundet (Dezimalbrüche >0,5 werden aufgerundet)
L spx =(DX-pX-pI)/zwx
L zwy =RD((DY-pY-pJ)/px+0.5) ;Anzahl Zwischenräume gerundet (Dezimalbrüche >0,5 werden aufgerundet)
L spy =(DY-pY-pJ)/zwy
FI
;
;Kontrollwerte abspeichern
TRACE "Sprungmaß in X ?f" spx
TRACE "Sprungmaß in Y ?f" spy
;
;Anfangswerte festlegen
L ax =pX
L ay =pY
;
;Beginn äußere Schleife
DO
;Beginn innere Schleife
DO
;Bearbeitung
RAU1 X=ax Y=ay Z=pZ E=pE B=py L=py T=104 ;Werkzeug noch fest programmiert, da das SCM-Makro keine laufenden Werkzeuge akzeptiert und pT in einem normalen Programm keinen Sonderstatus hat
;
L ax=ax+spx
;
IF ax>DX-pI EXIT
OD
L ax=pX ;Startwert X wieder auf Anfang
L ay =ay+spy
IF ay>DY-pJ EXIT
OD
 

Chris70

ww-kirsche
Registriert
9. Mai 2008
Beiträge
156
Hi

Klasse Makro ! :emoji_slight_smile:

Besonders gut gefällt mir die Möglichkeit die Rasterung in X bzw Y an die Plattengröße anzupassen. Da kann ich (vorerst :emoji_wink:)mit meiner "Grundlagenprogrammierung nicht mithalten.

Die Berechnungen der benötigten Maße und die Schleifen an sich programmiere ich auch in dieser Art nur ist die Berechnung bei mir meist in mehrere kleinere Schritte unterteilt und dadurch etwas umständlicher gehalten.

Wenn ich das richtig sehe könnte man ja auch anstatt der RAU1 ein Unterprogramm einbinden und somit auch ev. Sechsecke oder ähnliches als Loch fräsen lassen.


Gruß Chris
 

Jono

ww-esche
Registriert
4. Mai 2006
Beiträge
406
Ort
Bodensee
Hallo,

siehst Du genau richtig. An der Stelle kannst Du einbinden was immer Du willst, Wenn es zum Makro weiterentwickelt wird würde ich aber kein Unterprogramm aufrufen, besser aus diesem Unterprogramm dann auch ein Makro basteln. Ich selber benutze diesen RAU1 gar nicht, da ich da meine eigenen Makros habe, die besser auf meine Bedürfnisse abgestimmt sind.

Dies ist aber noch kein durchentwickeltes Makro dazu fehlen noch ein paar Kleinigkeiten. Aber auch in normalen Unterprogrammen ist der PAR-Befehl hilfreich, da diese beim Unterprogrammaufruf überschrieben werden können.
 

chrissi300

ww-kastanie
Registriert
3. Oktober 2007
Beiträge
41
Ort
Wolfenbüttel
Moin Jono,

ich habe mal versucht Deine Daten zu einem Makro zu verarbeiten. Vielleicht bin ich noch nicht soweit, das mir das gelingen mag.... Wäre es zu unverschämt, wenn ich Dich bitten würde das Makro zu vervollständigen :emoji_open_mouth::emoji_open_mouth: ??

Gruß Chrissi
 

Jono

ww-esche
Registriert
4. Mai 2006
Beiträge
406
Ort
Bodensee
Mal sehen, was die nächsten Tage so bringen :emoji_slight_smile:

Bezüglich Makro - Du weißt schon, dass Du in Xilog die Makroliste aktualisieren musst um das Teil zu benutzen. Panelmac will sogar ausgemacht und neu aufgerufen werden, da hier der Befehl zum Makroliste aktualisieren fehlt. Änderungen im Makro müssen nicht neu aktualisiert werden, mit Ausnahme wenn die Anzahl der Parameter verändert wird.
Grundsätzlich wrde das Programm als Makro laufen, wenn die Einstellungen im Kopf stimmen. Mehr dazu aber morgen *gähn*
 

chrissi300

ww-kastanie
Registriert
3. Oktober 2007
Beiträge
41
Ort
Wolfenbüttel
Moin Jono,

das die Makroliste Aktualisiert werden muss ist schon soweit klar. Mit der Kopfzeile Hapert es dann schon wieder.

Wenn Du das schaffen würdest, dann wäre das echt Super...

Gruß Chrissi

P.S. Vielleicht finden sich ja auch hier mal ein paar leute mit denen man zusammen einen Makrokurs bei SCM belegen könnte...
 

Jono

ww-esche
Registriert
4. Mai 2006
Beiträge
406
Ort
Bodensee
Hab mich heut Abend nochmal hingesetzt. So sollte das ganze als Makro funktionieren.
die Kopfzeile kann nur im Freien Editor über die alte kopiert werden. Kopieren oder Einfügen der Kopfzeile direkt ist nicht erlaubt. Ich hoffe, mir ist jetzt nicht noch ein Fehler unterlaufen, aber zumindest die Vorschau sieht vielversprechend aus.


H DX=0 DY=0 DZ=0 *MM /"7e,XYZIJxyTsE,0,Lochplatte vari"
PAR pX "Start X '50"
PAR pY "Start Y '50"
PAR pZ "Tiefe 'DZ+1"
PAR pI "Ende X v.Rechts '50"
PAR pJ "Ende Y von vorn '50"
PAR px "Sprungweite '50"
PAR py =10 "Ausschnittgröße '10"
PAR ps "Raster 0=fest 1=nach X quadratisch vermittelt 2=nach Y quadratisch vermittelt 3=rechteckig vermittelt"
PAR pE "Haube"
;
;Lochplatte erstellt H. Wols
;
:emoji_stuck_out_tongue_winking_eye:rüfen der Variablen und schreiben der Standardwerte
IF NDEF pX THEN
L pX=50
FI
IF NDEF pY THEN
L pY =50
FI
IF NDEF pI THEN
L pI =50
FI
IF NDEF pJ THEN
L pJ =50
FI
IF NDEF pZ THEN
L pZ =DZ+1
FI
IF NDEF px THEN
L px =50
FI
IF NDEF py THEN
L py =10
FI
IF NDEF ps THEN
L ps =0
FI
;
:emoji_stuck_out_tongue_winking_eye:rogrammierte Sprungwerte übernehmen
L spx=px
L spy=px
;
IF ps=1 THEN ;Wenn ps=1 Sprungwerte nochmal vermitteln
L zwx =RD((DX-pX-pI)/px+0.5) ;Anzahl Zwischenräume gerundet (Dezimalbrüche >0,5 werden aufgerundet)
L spx =(DX-pX-pI)/zwx
L spy =spx
FI
IF ps=2 THEN ;Wenn ps=2 Sprungwerte nochmal vermitteln
L zwy =RD((DY-pY-pJ)/px+0.5) ;Anzahl Zwischenräume gerundet (Dezimalbrüche >0,5 werden aufgerundet)
L spy =(DY-pY-pJ)/zwy
L spx=spy
FI
IF ps=3 THEN ;Wenn ps=3 Sprungwerte nochmal vermitteln
L zwx =RD((DX-pX-pI)/px+0.5) ;Anzahl Zwischenräume gerundet (Dezimalbrüche >0,5 werden aufgerundet)
L spx =(DX-pX-pI)/zwx
L zwy =RD((DY-pY-pJ)/px+0.5) ;Anzahl Zwischenräume gerundet (Dezimalbrüche >0,5 werden aufgerundet)
L spy =(DY-pY-pJ)/zwy
FI
;
;Kontrollwerte abspeichern
TRACE "Sprungmaß in X ?f" spx
TRACE "Sprungmaß in Y ?f" spy
;
;Anfangswerte festlegen
L ax =pX
L ay =pY
;
;Beginn äußere Schleife
DO
;Beginn innere Schleife
DO
;Bearbeitung
RAU1 X=ax Y=ay Z=pZ E=pE B=py L=py T=pT ;im Makro kann pT verwendet werden (Sondervariable)
;
L ax=ax+spx
;
IF ax>DX-pI EXIT
OD
L ax=pX ;Startwert X wieder auf Anfang
L ay =ay+spy
IF ay>DY-pJ EXIT
OD
 

chrissi300

ww-kastanie
Registriert
3. Oktober 2007
Beiträge
41
Ort
Wolfenbüttel
Moin Moin,


Super, vielen Dank. Welchen freien Editor verwendest Du ? Habe es mit einem Hex-Editor versucht, allerdings ging das nicht so doll.

Gruß Chrissi
 

Jono

ww-esche
Registriert
4. Mai 2006
Beiträge
406
Ort
Bodensee
Wenn in Xilog den Texteditor wählst kannst du umschalten zwischen freier Editor STRG-F order geführter Editor STRG-G
im freien Editor hast Du anstatt der Parameterfelder nur eine Textzeile im Fußbereich, mit der Du die Programmzeilen direkt verändern kannst.
 

chrissi300

ww-kastanie
Registriert
3. Oktober 2007
Beiträge
41
Ort
Wolfenbüttel
Moin Jono,

es gibt doch immer wieder Sachen, die einen "Anwender" immer wieder zum erstaunen bringen.
Habe das ganze jetzt mall als pgm vorliegen. Als Makro wird es auch erkannt, aller dings ohne Bild. Mit Winxiso sollte man das ding irgendwie einem Bild zuordnen, aber das brauche ich nicht unbedingt.

Bei der jetzigen Aufstellung steht die 102 als Werkzeugnummer alleine ohne einen Text davor(also Werkzeug), und wenn ich die Werte dann alle eingebe bekomme ich viele viele Ausschnitte die überdimensional groß sind übereinander gelegt. ??

Schau Dir das doch bitte mal an, habe ich noch etwas falsch gemacht? Im Anhang hier die pgm.

Gruß Chrissi
 

Anhänge

  • Lochpl2.zip
    2 KB · Aufrufe: 18

Jono

ww-esche
Registriert
4. Mai 2006
Beiträge
406
Ort
Bodensee
Habs jetzt mal schnell auf Arbeit in der Mittagspause angesehen, bei mir stimmt alles. wie sieht es aus, wenn Du keine Parameter ausser dem Werkzeug angibst?
 

chrissi300

ww-kastanie
Registriert
3. Oktober 2007
Beiträge
41
Ort
Wolfenbüttel
Moin Jono,

dann ist es das gleiche. Wie gesagt bei der Abfrage wird im linken Feld bei dem Werkzeug (102) nicht das Werkzeug abgefragt, als das linke Feld ist leer.

Das Ergebnis habe ich Dir als Bild angehängt.

Gruß Chrissi
 

Anhänge

  • lochpl2.jpg
    lochpl2.jpg
    371,8 KB · Aufrufe: 24

Jono

ww-esche
Registriert
4. Mai 2006
Beiträge
406
Ort
Bodensee
Komisch, wenn ich Dein Programm zu den Makros pack und die Liste aktualisiere kann ich es ganz normal benutzen und auch das Ergebnis sieht ganz brauchbar aus.
benutzt Du das Makro rau1 auch so zum programmieren von Ausschnitten? Kann es sein, dass da drin mal was umgeschrieben wurde?
 

chrissi300

ww-kastanie
Registriert
3. Oktober 2007
Beiträge
41
Ort
Wolfenbüttel
Moin Jono,

eigentlich nutze ich für solche Lochplatten das RT(Rechtecktaschen) Makro, aber eigentlich ist es ja egal welches man nimmt. Die Tasche ist aber eigentlich besser, weil man die Löcher ja nicht immer durchfräsen muss. Wenn es dann eine Lochplatte werden soll, gebe ich halt die Tiefe anders ein.

Mal ein Paar Bilder von der Abfrage im Anhang. Wie gesagt das Werkzeug fragt er nicht, und was mir noch aufgefallen ist, das Makro legt zwei zusätzliche Dateien im Ordner an. LOCHPL2_EBOScrap.opt und eine LOCHPL2_EGRep.grp. Vielleicht funktioniert aber auch etwas mit der Werkzeugabfrage nicht ?

Was die beiden Dateien zu sagen haben, keine Ahnung. Bei einem Makro was ich direkt von SCM bekommen habe ist das nicht der Fall.

Ach ja, das Makro Rau1 habe ich nicht verändert, und es ist immer noch alles so wie wir die Maschine bekommen haben.

?????? Sehr komisch, wenn bei Dir alles läuft.


Gruß Chrissi
 

Anhänge

  • Grafik1.jpg
    Grafik1.jpg
    465 KB · Aufrufe: 17
  • Grafik2.jpg
    Grafik2.jpg
    474,4 KB · Aufrufe: 18

Jono

ww-esche
Registriert
4. Mai 2006
Beiträge
406
Ort
Bodensee
Die beiden Dateien sind wahrscheinlich temporäre Dateien, die auch beim öffnen von normalen Programmen erstellt werden. nach dem Schließen des Programmes/Makro sollten diese verschwinden.
Dann versuchen wir doch RT
TRACE "Position X=?f Position Y=?f Göße=?f" ax ay py
RT X=py Y=py Z=pZ E=pE I=ax J=ay T=pT ;im Makro kann pT verwendet werden (Sondervariable)
statt des RAU1- aufrufes
der zusätzliche TRACE-Befehl ist nur, um noch eine Weitere Kontrollmöglichkeit zu kriegen wenns wieder nicht läuft.

Hier mal ein Screenshot von mir, allerdings schon mit RT, aber mit RAU1 sieht es fast identisch aus.
Bildschirmphoto1.png
 
Oben Unten