raimundo wrote:calling them computer picks suggests to the naive that the data on all possible keyways and all standard pin lengths have somehow been reduced to these tryout styles, to fit all locks regardless of the shape of the keyway, the diameter of the plug, serrated, mushroom, spools,etc. I believe that I coud make designs equally valid with a sharpie marker. don't be fooled by the hype.
I had assumed that the pin depths and MACS had been all thrown into a computation that produced the most common shapes probability wise which were then reproduced as picks. in fact noone told me that they hadn't done it that way so I went off to reproduce it myself
pickmonger wrote:1) Any suggestions as to how one could develop an computer model to generate profiles for one's self ? I was invisioning customising sets for different models of locks.
yes - I started doing this already but it fell by the wayside because of other things I'm doing.
here are the steps that I believe are necessary, some of which I've completed
--------------
Step 1 - get pin spacing file
Gather most common non-rotating pin spacing information:
http://www.dlaco.com/spacing/spacing.htm
and change it into a format usable by a computer program (some sort of delimited file) as I did here:
viewtopic.php?t=5240
Step 2 - Determine all possible bitings
numbering pins 1 through to 5 for this example:
here's the simultaneous equation that needs to happen:
[pin1] >= [pin2]-[macs] And <= [pin2]+[macs] And
[pin2] >= [pin1]-[macs] And >= [pin3]-[macs] And <= [pin1]+[macs] And <= [pin3]+[macs]
[pin3] >= [pin2]-[macs] And >= [pin4]-[macs] And <= [pin2]+[macs] And <= [pin4]+[macs]
[pin4] >= [pin3]-[macs] And >= [pin5]-[macs] And <= [pin3]+[macs] And <= [pin5]+[macs]
[pin5] >= [pin4]-[macs] And <= [pin4]+[macs]
example - formula for pin2: if pin 3 is depth 2 and pin 1 is depth 4 and macs is 5:
pin2range >= (2-5) And >= (4-5) And <= (2+5) And <= (4+5)
pin2range >= -3 And >= -1 And <= 7 And <= 9
so pin2 can be from depth 1 through to depth 7.
essentially, you create a cartesian join between all the possible depths to create all the possible distinct combinations.
applying this logic - there are 10,483 distinct bitings for a 5 pin kwikset lock with no MACS violations and 79,666 for schlage using that pin spacing file.
understand that? congrats.
Step3 - Determine Equivalence.
as romstar has stated previously - for the purposes of profile picks 11121 is exactly the same as 22232 is exactly the same as 33323 etc.
so we need to determine which bitings equal eachother and remove them.
since we're now getting into actual profiles - I figured that we can get into actual distances here so we can combine different brands of lock.
so in a 5 pin lock there are four distances - from pin 1 to 2, from 2 to 3, 3 to 4 and 4 to 5.
for each of the above combinations, get the equivalent distance
so for a kwikset biting 11121 here are the depths in fractions of an inch as per the spacing file:
1 = 0.329, 1 = 0.329,1 = 0.329, 2 = 0.306, 1 = 0.329
so the breaks between each pin = the difference in root depths between each pin.
so a kwikset biting 11121 =
0,0,0.023,-0.023
still with me?
ok - so basically this gives us distinct depth differences - thus reducing the actual possible "shapes" down to 70657 for schlage and 9967 for kwikset.
Step 4 - flip it! yeah!
ok - now we have all possible distinct shapes - we need to calculate which ones are the oposite of eachother:
e.g. 22232 flipped over is the same as 22212.
as I havn't actually got past this point yet I can't say for sure, but it would have something to do with flipping the signs of the bitings -
e.g. 0,0,0.023,-0.023 would equal 0,0,-0.023,0.023 etc.
will get onto this as soon as I get motivated but I suspect that it will reduce the profiles possible by a bit less than half. making approximately 35k profiles for schlage and 5k for kwikset.
step 5 - Elongate
figure out some way to add the most likely depths together to make the profile picks that are longer than 5 pins in order to add the most possible number of profiles into the least number of picks... this will further reduce the possible picks.
I haven't even thought about how to do this yet.
------------------------
ok - that's it - I've spent two hours writing this post - I believe it deserves a sticky....
I've been doing it in MS Access in order to better store all the data etc but others may do it another way.
I'd encourage people to check my calculations and tell me if I got something wrong. and I'd also encourage others to continue finishing this thing.
WhiteHat - out.