Das schöne Schloss von boianka - Schlüsseljagd

Zerstörungsfreie Schlossöffnung, Fragen zu den verschiedenen Werkzeugen und freier Informationsaustausch

Moderatoren: Retak, Crocheteur

Benutzeravatar
decoder
Poster Gott
Poster Gott
Beiträge: 827
Registriert: 27. Sep 2012 13:46
Kontaktdaten:

Das schöne Schloss von boianka - Schlüsseljagd

Beitrag von decoder »

Ich dachte mir ich mache mal ein neues Thema dafür auf, denn boianka hat mir, wie hier geschrieben, ein schönes S&G 833 geschenkt :unwuerd:

Offen ist es nach einigen Stunden picken und natürlich gibts keinen Schlüssel dazu. Also werde ich versuchen, einen zu fertigen und den Prozess hier beschreiben (optimistisch wie ich bin, mit der Erwartung dass es erfolgreich verlaufen wird, ansonsten habt ihr was zu kichern :D ).

Benutzeravatar
decoder
Poster Gott
Poster Gott
Beiträge: 827
Registriert: 27. Sep 2012 13:46
Kontaktdaten:

Re: Das schöne Schloss von boianka - Schlüsseljagd

Beitrag von decoder »

Hier haben wir schonmal die Pins:
MedecoBiaxialPins.jpg
Interessant an den Pins ist, dass der letzte Pin ein ARX Pin ist, wohingegen alle anderen reguläre, "alte" Medeco Pins sind.

Als nächstes hab ich die Länge der Pins vermessen, dabei gabs folgende Messungen (in mm):

7.00, 5.80, 6.40, 7.70, 7.70, 9.00

Davon abzuziehen ist natürlich die Distanz zwischen Ende des Profils und Kern, was ich frontal ausgemessen und davon den Kernüberstand nochmal abgezogen habe (ergibt dann 4.87 mm Abzug). Da ich das ganze nun mit Maßangaben in einer Software abgleichen will, muss ich die Werte auch noch von der Rohlinghöhe abziehen (denn Schnitttiefen werden hier meist nicht direkt sondern indirekt über das verbleibende Material bis zum Rohlingrücken angegeben). Der Rohling wird mit 7.8 mm Höhe angegeben.

Damit haben wir folgende Maßangaben:

5.67, 6.87, 6.27, 4.97, 4.97, 3.67

In Software werden folgende möglichen Höhen angegeben (von 6 nach 1): 3.73, 4.37, 5.00, 5.64, 6.27, 6.90

Unsere Maße sind also ziemlich gut (Abweichungen alle <= 0.06mm), wir sind da also vermutlich auf dem richtigen Dampfer.

In Software wäre die Kodierung (ohne die Drehungen): 3, 1, 2, 4, 4, 6
In AutoKey3D werden die Positionen anders berechnet, der tiefste Schnitt ist hier 0, der zweittiefste 1, usw., daher ist die AutoKey Kodierung hier: 3, 5, 4, 2, 2, 0

Wichtig: Hätten wir die Software hier nicht, könnten wir mit diesen Maßen trotzdem arbeiten, es wäre nur etwas mehr Reverse Engineering bestimmter Werte, die wir im nächsten Post (morgen!) brauchen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
mhmh
Unbeschreiblich
Unbeschreiblich
Beiträge: 3825
Registriert: 5. Apr 2006 12:45
Eigener Benutzer Titel: Franzose
Wohnort: bei Muenchen

Re: Das schöne Schloss von boianka - Schlüsseljagd

Beitrag von mhmh »

Andere schneiden solche Schlüssel aus Plastikkarten, aber war ja klar, dass bei Dir gleich noch Software dabei herauskommen wird, um jeden anderen Schlüssel auch generieren zu können... :)

Benutzeravatar
decoder
Poster Gott
Poster Gott
Beiträge: 827
Registriert: 27. Sep 2012 13:46
Kontaktdaten:

Re: Das schöne Schloss von boianka - Schlüsseljagd

Beitrag von decoder »

mhmh hat geschrieben:Andere schneiden solche Schlüssel aus Plastikkarten, ...
Nenene.. sowas machen wir hier nicht. Wenn schon dann richtig :p
mhmh hat geschrieben:war ja klar, dass bei Dir gleich noch Software dabei herauskommen wird, um jeden anderen Schlüssel auch generieren zu können... :)
AutoKey3D kann eigentlich schon alles dafür, außer die Rotation der Schnitte. Das ist nicht schwer zu implementieren, werd ich wohl im nächsten Post ausführen.

Benutzeravatar
decoder
Poster Gott
Poster Gott
Beiträge: 827
Registriert: 27. Sep 2012 13:46
Kontaktdaten:

Re: Das schöne Schloss von boianka - Schlüsseljagd

Beitrag von decoder »

Als nächstes erstellen wir die Systemdefinition für das Medeco Biaxial in AutoKey3D:

Code: Alles auswählen

// Key length
kl=33.2;
Die Schlüssellänge hab ich von einem existierenden Schlüssel hier gemessen, manchmal wird er in Software auch angegeben. Könnte man allerdings auch schätzen, wichtig ist, dass er lange genug ist.

Code: Alles auswählen

// 0 or 1 for regular or control
kidx = 0;

// Shoulder
aspaces = [5.41, 6.99];
aspace = aspaces[kidx];
In der Software, aus der ich die Maße nehme, sind 2 Anschläge angegeben, vermutlich einer für den regulären Schlüssel und einer für den Control Key. Ich trag hier mal beide ein, wähle aber den ersten aus, also 5.41. Da der Anschlag bei AutoKey3D in der Regel nicht über das Profil hinausragt, dürfte der sowieso dann auch in die andere Richtung drehbar sein.

Code: Alles auswählen

// Pin distance
pinspace = 4.32;
Der Abstand der Pins, kann man aus den Maßen errechnen, die in der Software angegeben sind. Alternativ kann man es auch am Zylinder abmessen.

Code: Alles auswählen

// Highest cut
hcut = ph - 2*tol - 3.73;
Der tiefste Schnitt (also was die 0 in AutoKey3D ist). Da die Maße in der Bezugssoftware in Relation zum Rücken angegeben sind, ziehen wir es von der Schlüsselhöhe ab (Schlüsselhöhe = Profilhöhe - 2 x Toleranz).

Code: Alles auswählen

 // Cut spacing
cutspace = 0.635; // Actually alternating between 0.63/0.64
Wie groß ist ein Höhensprung im System? Wenn man die Werte aus der Bezugssoftware nimmt, sieht man, dass die Differenz alterniert zwischen 0.63 und 0.64. Wir nehmen daher 0.635 damit es nicht zu größeren Abweichungen beim Aufaddieren kommt.

Code: Alles auswählen

// Cut angle
cutangle = 98;
Der Schnittwinkel ist in meiner Bezugssoftware nicht angegeben (Hint: Falls irgendwer hier eine verwendet, die den Winkel oder andere Maße noch genauer kennt, nicht zögern und mich hier korrigieren). Ich hab den Winkel von einem existierenden Schlüssel abgenommen und ungefähr geschätzt.

Code: Alles auswählen

// Plateau spacing of the cut
platspace = 0.38;
Wir breit das Schnittplateau ist, der Wert ist in der Bezugssoftware angegeben.

Code: Alles auswählen

kt = 2.3; // Key thickness
Die Schlüsseldicke, gemessen von einem existierenden Schlüssel. Ihr werdet euch jetzt sicher fragen wofür wir das brauchen. Die Antwort ist, dass wir später die Cutter für die Schnitte über der Schlüsselmitte zentrieren müssen, bevor wir sie rotieren, weil die Drehachse ja genau die Mitte der Längsrichtung des Schlüssels ist. Normalerweise brauchen wir diese Angabe sonst nur bei Bohrmuldensystemen um die Cutter zu Nullen.


Jetzt haben wir schonmal alles, was wir sonst auch für reguläre Schlüssel bräuchten. Was fehlt ist ein Weg, die Rotation mit reinzubringen (Wem das zu kompliziert wird, kann nun einfach das nächste Post lesen :D .) Dazu hab ich eine kleine Änderung an AutoKey3D vorgenommen und den Code für "reguläre" Schnitte in eine extra Datei ausgelagert, die wir hier includen können. Prinzipiell kann jede Definition ihre eigenes Modul keycombcuts definieren und dort machen was sie will mit dem Schlüssel. Was wir machen wollen ist ja aber fast das gleiche wie für reguläre Schlüssel, nur mit ein bisschen drehen. Daher macht es Sinn, den bisherigen Code zu erweitern und einfach zu includen:

Code: Alles auswählen

include <includes/regularcut.scad>;
Und in regularcut.scad kopieren wir den bisherigen Code für reguläre Schnitte, und ändern ihn wie folgt ab:

Code: Alles auswählen

module keycombcut(cutnum, cutlevel, lcut_mode=false, lcut1=false, lcut2=false) {
erweitern wir um 2 Parameter:

Code: Alles auswählen

module keycombcut(cutnum, cutlevel, lcut_mode=false, lcut1=false, lcut2=false, rot=0, xcorr=0) {
Der erste Parameter rot ist die Rotation des Schnitts, der zweite Parameter xcorr ist die X-Korrektur des Schnitts von der absoluten Mitte in Richtung Schlüssel. Also der Wert den wir benutzen wollen, um den Schnitt richtig über den Schlüssel zu zentrieren. Dann fügen wir zwei Statements ein, und zwar vor

Code: Alles auswählen

   translate([0,0,platspace/2]) // Center the original plateau over the pin
   hull() { ...
Dort wird der Cutter gebaut, wir ändern das wie folgt ab, um den Cutter erst zu drehen, dann richtig in X-Richtung zu zentrieren:

Code: Alles auswählen

   translate([xcorr,0,0])
   rotate([0,rot,0])
   translate([0,0,platspace/2]) // Center the original plateau over the pin
   hull() { ...

Jetzt haben wir also in unserem Code für reguläre Schnitte die Möglichkeit, die Rotation und X-Korrektur zu übergeben (pro Schnitt). Jetzt können wir zurück in unserer Definitionsdatei für das System einfach folgenden Code verwenden:

Code: Alles auswählen

module keycombcuts() {
   for (i = [0:2:len(keycomb)-1]) {
     keycombcut(i/2, keycomb[i], false, false, false, keycomb[i+1], kt/2);
   }
}
Sieht kompliziert aus, ist es aber nicht:

Die Funktion geht die übergebene Kombination durch, und geht davon aus, dass die folgendes Format hat: Code,Rotation,Code,Rotation,Code,Rotation, ...

Wir gehen also in Zweierschritten über die Kombination, übergeben den ersten Teil als die übliche Kombination, den Teil der direkt folgt, als Rotation in Grad, und die Hälfte der Schlüsseldicke als X-Korrektur damit es auch zentriert ist. Schöner wäre es natürlich, wenn man es noch so baut, dass man anstatt den Gradzahlen einfach L, R und C angeben kann. Es gibt bei Medeco nur drei mögliche Drehrichtungen, wobei die Drehung nach Rechts bzw. Links eben 20° in die Richtung ist.

Fehlt uns noch das Profil, auf zum nächsten Post...

Benutzeravatar
decoder
Poster Gott
Poster Gott
Beiträge: 827
Registriert: 27. Sep 2012 13:46
Kontaktdaten:

Re: Das schöne Schloss von boianka - Schlüsseljagd

Beitrag von decoder »

Nach so viel Code brauchen wir erstmal wieder Bildchen, ne? löl
medeco-raw.jpg
Daraus extrahieren wir nun das Profil. Ich mach das mit dem Isolator aus AutoKey3D, verwende hier nur lokal eine Weiterentwicklung die ich noch nicht veröffentlich habe (geht aber mit dem bisherigen Code genauso gut):
isolator1.png
isolator2.png
So siehts aus nachdem die (sonst recht erfolgreiche) Automatik drüber lief. Hier nicht so erfolgreich :laugh: aber das können wir mit ein paar Klicks natürlich korrigieren:
isolator3.png

Und damit haben wir das Profil. Das speichern wir nun ab als MD-BIAX.svg und legen dazu eine Datei MD-BIAX.def an, die folgende Angaben enthält:

Code: Alles auswählen

// The tolerance to use when removing material from the profile
tol = 0.2;

// Key profile height (including tolerance, i.e. measured on the lock, not the blank)
// If you have information on the key blank height, add 2*tol.
ph=7.8 + 2*tol;
Dabei handelt es sich lediglich um unsere Standardtoleranz von 0.2mm sowie der Profilhöhe. Da wir in der Bezugssoftware bereits die Rohlinghöhe gegeben haben (7.8mm), können wir die Profilhöhe einfach als Rohlinghöhe + 2 x Toleranz angeben.

Damit sollten wir nun insgesamt in der Lage sein, den Schlüssel als Modell zu erzeugen, vorausgesetzt wir haben die Kombination.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
boianka
Unverzichtbar, Unkündbar und Unverwundbar
Unverzichtbar, Unkündbar und Unverwundbar
Beiträge: 7024
Registriert: 25. Mai 2008 14:24
Wohnort: Bonn

Re: Das schöne Schloss von boianka - Schlüsseljagd

Beitrag von boianka »

Boah ! - Wahnsinn ! - Auch wenn ich Deinen Gedankengängen nur begrenzt folgen kann, Du kriegst von mir ein Fleißkärtchen !

Benutzeravatar
decoder
Poster Gott
Poster Gott
Beiträge: 827
Registriert: 27. Sep 2012 13:46
Kontaktdaten:

Re: Das schöne Schloss von boianka - Schlüsseljagd

Beitrag von decoder »

boianka hat geschrieben:Boah ! - Wahnsinn ! - Auch wenn ich Deinen Gedankengängen nur begrenzt folgen kann, Du kriegst von mir ein Fleißkärtchen !
:laugh: Noch ist nicht aller Tage Abend. Ich werd erst nächste Woche Mittwoch/Donnerstag tatsächlich was drucken können und dann wird sich herausstellen ob es a) passt und b) ob das Schloss nicht zu störrisch für den resultierenden Schlüssel ist. Ich hab ein paar Biaxial hier, die sind selbst mit Metallschlüssel nur mit jede Menge Kraft schliessbar... :no:

Benutzeravatar
decoder
Poster Gott
Poster Gott
Beiträge: 827
Registriert: 27. Sep 2012 13:46
Kontaktdaten:

Re: Das schöne Schloss von boianka - Schlüsseljagd

Beitrag von decoder »

So, weiter im Programm. Im zweiten Post haben wir ja bereits die Kombination bestimmt. Für AutoKey3D ausgedrückt wäre das 3, 5, 4, 2, 2, 0.

Da fehlen aber die Angaben über die jeweilige Rotation der Pins. Ich hab dafür mal die Pins in den Kern eingesetzt und etwas angehoben:
medeco-rotation.jpg
Ich weiß nicht wie die Rotation typischerweise in der Bezugssoftware angegeben wird, aber ich kenne es so, dass wenn man frontal auf das Schloss schaut und dann der Pin im Uhrzeigersinn (so, dass die rechte Ecke weiter vorne ist) gedreht wird, das ganze als R bezeichnet wird, und gegen den Uhrzeigersinn eben als L (somit die linke Ecke der Pinspitze weiter vorne ist). Keine Rotation wäre C (für Center).

Wenn wir hier nun von unten schauen, können wir schauen in welche Richtung der Pin gedreht werden muss, damit die Gates (die oberen Schnitte) alle gerade nach oben zeigen. Allerdings müssen wir dann, da wir von unten (und nicht von oben) schauen, die Drehrichtung links mit R und die nach rechts mit L übernehmen.

Somit wäre das für das Bild hier (von rechts nach links, rechts ist Pin 1): links (R), rechts (L), links (R), rechts (L), links (R), keine Drehung (C). Also R, L, R, L, R, C. Wenn jemand da ein besseres System oder die offizielle Nomenklatur hat, möge er sprechen :D

Für unsere Kombination müssen wir das allerdings in Gradzahlen umsetzen. C ist einfach, das ist 0. R ist -20°, weil rechts (im Uhrzeigersinn) als mathematisch negativ definiert ist. L entsprechend 20°.

Wenn wir das nun mit der Kombination von oben kombinieren ( :laugh: ), dann müsste diese lauten: 3, -20, 5, 20, 4, -20, 2, 20, 2, -20, 0, 0.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
decoder
Poster Gott
Poster Gott
Beiträge: 827
Registriert: 27. Sep 2012 13:46
Kontaktdaten:

Re: Das schöne Schloss von boianka - Schlüsseljagd

Beitrag von decoder »

Nun setzen wir das zusammen mit folgendem Befehl:

Code: Alles auswählen

python AutoKey.py --definition definitions/MD-BIAX.scad --profile profiles/MD-BIAX.svg --key 3,20,1,-20,2,20,4,-20,4,20,6,0
Dabei ist definitions/MD-BIAX.scad die Systemdefinition aus dem fünften Post, profiles/MD-BIAX.svg ist das isolierte Profil aus dem sechsten Post, und mit --key geben wir die eben erarbeitete Kombination ein.

Als Resultat erhalten wir dann folgendes:
key.png
Ob dieser Schlüssel nun passt und schließt, das wird sich erst nächste Woche zeigen, wenn ich ihn auch drucken kann. Sollte er passen, könnte man ihn auch entsprechend aus Messing drucken lassen, bei dem Wert des Schlosses sicherlich eine Überlegung.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten