key_formats.c 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416
  1. #include "key_formats.h"
  2. // all lengths in inches since it's all American formats
  3. // angle is in degrees
  4. const KeyFormat all_formats[] = {
  5. {.manufacturer = "Kwikset",
  6. .format_name = "KW1",
  7. .format_link = "https://lsamichigan.org/Tech/Kwikset_KeySpecs.pdf",
  8. .first_pin_inch = 0.247,
  9. .last_pin_inch = 0.847,
  10. .pin_increment_inch = 0.15,
  11. .pin_num = 5,
  12. .pin_width_inch = 0.084,
  13. .elbow_inch = 0.15,
  14. .drill_angle = 90,
  15. .uncut_depth_inch = 0.329,
  16. .deepest_depth_inch = 0.191,
  17. .depth_step_inch = 0.023,
  18. .min_depth_ind = 1,
  19. .max_depth_ind = 7,
  20. .macs = 4,
  21. .clearance = 3},
  22. {.manufacturer = "Schlage",
  23. .format_name = "SC4",
  24. .format_link = "https://lsamichigan.org/Tech/SCHLAGE_KeySpecs.pdf",
  25. .first_pin_inch = 0.231,
  26. .last_pin_inch = 1.012,
  27. .pin_increment_inch = 0.1562,
  28. .pin_num = 6,
  29. .pin_width_inch = 0.031,
  30. .elbow_inch = 0.1,
  31. .drill_angle = 90, // This should actually be 100 but the current resolution will make
  32. // 100 degrees very ugly and unsuable
  33. .uncut_depth_inch = 0.335,
  34. .deepest_depth_inch = 0.2,
  35. .depth_step_inch = 0.015,
  36. .min_depth_ind = 0,
  37. .max_depth_ind = 9,
  38. .macs = 7,
  39. .clearance = 8},
  40. {.manufacturer = "Arrow",
  41. .format_name = "AR4",
  42. .format_link = "C2",
  43. .first_pin_inch = 0.265,
  44. .last_pin_inch = 1.040,
  45. .pin_increment_inch = 0.155,
  46. .pin_num = 6,
  47. .pin_width_inch = 0.060,
  48. .elbow_inch = 0.1,
  49. .drill_angle = 90, // This should actually be 100 but the current resolution will
  50. // make 100 degrees very ugly and unsuable
  51. .uncut_depth_inch = 0.312,
  52. .deepest_depth_inch = 0.186,
  53. .depth_step_inch = 0.014,
  54. .min_depth_ind = 0,
  55. .max_depth_ind = 9,
  56. .macs = 6,
  57. .clearance = 8},
  58. {.manufacturer = "Master Lock",
  59. .format_name = "M1",
  60. .format_link = "C35",
  61. .first_pin_inch = 0.185,
  62. .last_pin_inch = 0.689,
  63. .pin_increment_inch = 0.126,
  64. .pin_num = 5,
  65. .pin_width_inch = 0.039,
  66. .elbow_inch = 0.1,
  67. .drill_angle = 90, // This should actually be 100 but the current resolution will make
  68. // 100 degrees very ugly and unsuable
  69. .uncut_depth_inch = 0.276,
  70. .deepest_depth_inch = 0.171,
  71. .depth_step_inch = 0.015,
  72. .min_depth_ind = 0,
  73. .max_depth_ind = 7,
  74. .macs = 7,
  75. .clearance = 8},
  76. {.manufacturer = "American",
  77. .format_name = "AM7",
  78. .format_link = "C80",
  79. .first_pin_inch = 0.157,
  80. .last_pin_inch = 0.781,
  81. .pin_increment_inch = 0.125,
  82. .pin_num = 6,
  83. .pin_width_inch = 0.039,
  84. .elbow_inch = 0.1,
  85. .drill_angle = 90, // This should actually be 100 but the current resolution will make
  86. // 100 degrees very ugly and unsuable
  87. .uncut_depth_inch = 0.283,
  88. .deepest_depth_inch = 0.173,
  89. .depth_step_inch = 0.016,
  90. .min_depth_ind = 1,
  91. .max_depth_ind = 8,
  92. .macs = 7,
  93. .clearance = 8},
  94. {.manufacturer = "Yale",
  95. .format_name = "Y2",
  96. .format_link = ".025",
  97. .first_pin_inch = 0.200,
  98. .last_pin_inch = 1.025,
  99. .pin_increment_inch = 0.165,
  100. .pin_num = 6,
  101. .pin_width_inch = 0.054,
  102. .elbow_inch = 0.1,
  103. .drill_angle = 90, // This should actually be 100 but the current resolution will make
  104. // 100 degrees very ugly and unsuable
  105. .uncut_depth_inch = 0.320,
  106. .deepest_depth_inch = 0.145,
  107. .depth_step_inch = 0.025,
  108. .min_depth_ind = 0,
  109. .max_depth_ind = 9,
  110. .macs = 9,
  111. .clearance = 1},
  112. {.manufacturer = "Yale",
  113. .format_name = "Y11",
  114. .format_link = "CX55",
  115. .first_pin_inch = 0.124,
  116. .last_pin_inch = 0.502,
  117. .pin_increment_inch = 0.095,
  118. .pin_num = 5,
  119. .pin_width_inch = 0.039,
  120. .elbow_inch = 0.1,
  121. .drill_angle = 90, // This should actually be 100 but the current resolution will make
  122. // 100 degrees very ugly and unsuable
  123. .uncut_depth_inch = 0.246,
  124. .deepest_depth_inch = 0.167,
  125. .depth_step_inch = 0.020,
  126. .min_depth_ind = 1,
  127. .max_depth_ind = 5,
  128. .macs = 7,
  129. .clearance = 8},
  130. {.manufacturer = "Sargent",
  131. .format_name = "S22",
  132. .format_link = "C44",
  133. .first_pin_inch = 0.216,
  134. .last_pin_inch = 0.996,
  135. .pin_increment_inch = 0.156,
  136. .pin_num = 6,
  137. .pin_width_inch = 0.063,
  138. .elbow_inch = 0.1,
  139. .drill_angle = 90, // This should actually be 100 but the current resolution will make
  140. // 100 degrees very ugly and unsuable
  141. .uncut_depth_inch = 0.328, // double check
  142. .deepest_depth_inch = 0.148,
  143. .depth_step_inch = 0.020,
  144. .min_depth_ind = 1,
  145. .max_depth_ind = 10,
  146. .macs = 7,
  147. .clearance = 8},
  148. {.manufacturer = "National",
  149. .format_name = "NA25",
  150. .format_link = "C40",
  151. .first_pin_inch = 0.250,
  152. .last_pin_inch = 0.874,
  153. .pin_increment_inch = 0.156,
  154. .pin_num = 5,
  155. .pin_width_inch = 0.039,
  156. .elbow_inch = 0.1,
  157. .drill_angle = 90, // This should actually be 100 but the current resolution will make
  158. // 100 degrees very ugly and unsuable
  159. .uncut_depth_inch = 0.304,
  160. .deepest_depth_inch = 0.191,
  161. .depth_step_inch = 0.012,
  162. .min_depth_ind = 0,
  163. .max_depth_ind = 9,
  164. .macs = 7,
  165. .clearance = 8},
  166. {.manufacturer = "Corbin",
  167. .format_name = "CO88",
  168. .format_link = "C14",
  169. .first_pin_inch = 0.250,
  170. .last_pin_inch = 1.030,
  171. .pin_increment_inch = 0.156,
  172. .pin_num = 6,
  173. .pin_width_inch = 0.047,
  174. .elbow_inch = 0.1,
  175. .drill_angle = 90, // This should actually be 100 but the current resolution will make
  176. // 100 degrees very ugly and unsuable
  177. .uncut_depth_inch = 0.343,
  178. .deepest_depth_inch = 0.217,
  179. .depth_step_inch = 0.014,
  180. .min_depth_ind = 1,
  181. .max_depth_ind = 10,
  182. .macs = 7,
  183. .clearance = 8},
  184. {.manufacturer = "Lockwood",
  185. .format_name = "LW4",
  186. .format_link = "",
  187. .first_pin_inch = 0.245,
  188. .last_pin_inch = 0.870,
  189. .pin_increment_inch = 0.1562,
  190. .pin_num = 5,
  191. .pin_width_inch = 0.031,
  192. .elbow_inch = 0.1,
  193. .drill_angle = 90,
  194. .uncut_depth_inch = 0.344,
  195. .deepest_depth_inch = 0.203,
  196. .depth_step_inch = 0.014,
  197. .min_depth_ind = 0,
  198. .max_depth_ind = 9,
  199. .macs = 9,
  200. .clearance = 8},
  201. {.manufacturer = "Lockwood",
  202. .format_name = "LW5",
  203. .format_link = "",
  204. .first_pin_inch = 0.245,
  205. .last_pin_inch = 1.0262,
  206. .pin_increment_inch = 0.1562,
  207. .pin_num = 6,
  208. .pin_width_inch = 0.031,
  209. .elbow_inch = 0.1,
  210. .drill_angle = 90,
  211. .uncut_depth_inch = 0.344,
  212. .deepest_depth_inch = 0.203,
  213. .depth_step_inch = 0.014,
  214. .min_depth_ind = 0,
  215. .max_depth_ind = 9,
  216. .macs = 9,
  217. .clearance = 8},
  218. {.manufacturer = "National",
  219. .format_name = "NA12",
  220. .format_link = "C39",
  221. .first_pin_inch = 0.150,
  222. .last_pin_inch = 0.710,
  223. .pin_increment_inch = 0.140,
  224. .pin_num = 5,
  225. .pin_width_inch = 0.039,
  226. .elbow_inch = 0.1,
  227. .drill_angle = 90,
  228. .uncut_depth_inch = 0.270,
  229. .deepest_depth_inch = 0.157,
  230. .depth_step_inch = 0.013,
  231. .min_depth_ind = 0,
  232. .max_depth_ind = 9,
  233. .macs = 7,
  234. .clearance = 8},
  235. {.manufacturer = "Russwin",
  236. .format_name = "RU45",
  237. .format_link = "CX6",
  238. .first_pin_inch = 0.250,
  239. .last_pin_inch = 1.030,
  240. .pin_increment_inch = 0.156,
  241. .pin_num = 6,
  242. .pin_width_inch = 0.053,
  243. .elbow_inch = 0.1,
  244. .drill_angle = 90,
  245. .uncut_depth_inch = 0.343,
  246. .deepest_depth_inch = 0.203,
  247. .depth_step_inch = 0.028,
  248. .min_depth_ind = 1,
  249. .max_depth_ind = 6,
  250. .macs = 5,
  251. .clearance = 8},
  252. {.manufacturer = "Ford",
  253. .format_name = "H75",
  254. .sides = 2,
  255. .stop = 2,
  256. .format_link = "CX101",
  257. .first_pin_inch = 0.201,
  258. .last_pin_inch = 0.845,
  259. .pin_increment_inch = 0.092,
  260. .pin_num = 8,
  261. .pin_width_inch = 0.039,
  262. .elbow_inch = 0.201, // this should be equal to first pin inch for tip
  263. // stopped key line
  264. .drill_angle = 90, // This should actually be 100 but the current resolution will make
  265. // 100 degrees very ugly and unsuable
  266. .uncut_depth_inch = 0.354,
  267. .deepest_depth_inch = 0.254,
  268. .depth_step_inch = 0.025,
  269. .min_depth_ind = 1,
  270. .max_depth_ind = 5,
  271. .macs = 5,
  272. .clearance = 0},
  273. {.manufacturer = "Chevrolet",
  274. .format_name = "B102",
  275. .sides = 2,
  276. .stop = 2,
  277. .format_link = "",
  278. .first_pin_inch = 0.205,
  279. .last_pin_inch = 1.037,
  280. .pin_increment_inch = 0.093,
  281. .pin_num = 10,
  282. .pin_width_inch = 0.039,
  283. .elbow_inch = 0.205, // this should be equal to first pin inch for tip
  284. // stopped key line
  285. .drill_angle = 90, // This should actually be 100 but the current resolution will make
  286. // 100 degrees very ugly and unsuable
  287. .uncut_depth_inch = 0.315,
  288. .deepest_depth_inch = 0.161,
  289. .depth_step_inch = 0.026,
  290. .min_depth_ind = 1,
  291. .max_depth_ind = 4,
  292. .macs = 5,
  293. .clearance = 0},
  294. {.manufacturer = "Dodge",
  295. .format_name = "Y159",
  296. .sides = 2,
  297. .stop = 2,
  298. .format_link = "CX102",
  299. .first_pin_inch = 0.297,
  300. .last_pin_inch = 0.941,
  301. .pin_increment_inch = 0.092,
  302. .pin_num = 8,
  303. .pin_width_inch = 0.039,
  304. .elbow_inch = 0.297, // this should be equal to first pin inch for tip
  305. // stopped key line
  306. .drill_angle = 90, // This should actually be 100 but the current resolution will make
  307. // 100 degrees very ugly and unsuable
  308. .uncut_depth_inch = 0.339,
  309. .deepest_depth_inch = 0.197,
  310. .depth_step_inch = 0.047,
  311. .min_depth_ind = 1,
  312. .max_depth_ind = 4,
  313. .macs = 5,
  314. .clearance = 0},
  315. {.manufacturer = "Kawasaki",
  316. .format_name = "KA14",
  317. .sides = 2,
  318. .format_link = "CMC50",
  319. .first_pin_inch = 0.098,
  320. .last_pin_inch = 0.591,
  321. .pin_increment_inch = 0.098,
  322. .pin_num = 6,
  323. .pin_width_inch = 0.039,
  324. .elbow_inch = 0.1, // this should be equal to first pin inch for tip
  325. // stopped key line
  326. .drill_angle = 90, // This should actually be 100 but the current resolution will make
  327. // 100 degrees very ugly and unsuable
  328. .uncut_depth_inch = 0.258,
  329. .deepest_depth_inch = 0.198,
  330. .depth_step_inch = 0.020,
  331. .min_depth_ind = 1,
  332. .max_depth_ind = 4,
  333. .macs = 4,
  334. .clearance = 0},
  335. {.manufacturer = "Yamaha",
  336. .format_name = "YM63",
  337. .sides = 2,
  338. .format_link = "CMC71",
  339. .first_pin_inch = 0.157,
  340. .last_pin_inch = 0.748,
  341. .pin_increment_inch = 0.098,
  342. .pin_num = 7,
  343. .pin_width_inch = 0.039,
  344. .elbow_inch = 0.1, // this should be equal to first pin inch for tip
  345. // stopped key line
  346. .drill_angle = 90, // This should actually be 100 but the current resolution will make
  347. // 100 degrees very ugly and unsuable
  348. .uncut_depth_inch = 0.295,
  349. .deepest_depth_inch = 0.236,
  350. .depth_step_inch = 0.020,
  351. .min_depth_ind = 1,
  352. .max_depth_ind = 4,
  353. .macs = 4,
  354. .clearance = 0},
  355. {.manufacturer = "Best (A2)",
  356. .format_name = "SFIC",
  357. .sides = 2,
  358. .stop = 2,
  359. .format_link = "C3",
  360. .first_pin_inch = 0.081,
  361. .last_pin_inch = 0.978,
  362. .pin_increment_inch = 0.149,
  363. .pin_num = 7,
  364. .pin_width_inch = 0.051,
  365. .elbow_inch = 0.081, // this should be equal to first pin inch for tip
  366. // stopped key line
  367. .drill_angle = 90, // This should actually be 100 but the current resolution will make
  368. // 100 degrees very ugly and unsuable
  369. .uncut_depth_inch = 0.318,
  370. .deepest_depth_inch = 0.206,
  371. .depth_step_inch = 0.025,
  372. .min_depth_ind = 0,
  373. .max_depth_ind = 9,
  374. .macs = 5,
  375. .clearance = 0},
  376. {.manufacturer = "RV (FIC,GL,Bauer)",
  377. .format_name = "RV",
  378. .sides = 2,
  379. .format_link = "Card",
  380. .first_pin_inch = 0.126,
  381. .last_pin_inch = 0.504,
  382. .pin_increment_inch = 0.094,
  383. .pin_num = 5,
  384. .pin_width_inch = 0.039,
  385. .elbow_inch = 0.126, // this should be equal to first pin inch for tip
  386. // stopped key line
  387. .drill_angle = 90, // This should actually be 100 but the current resolution will make
  388. // 100 degrees very ugly and unsuable
  389. .uncut_depth_inch = 0.260,
  390. .deepest_depth_inch = 0.181,
  391. .depth_step_inch = 0.040,
  392. .min_depth_ind = 1,
  393. .max_depth_ind = 3,
  394. .macs = 3,
  395. .clearance = 0}};