



(3) Auf das Recht der Dekompilierung (Abs. Zu anderen Zwecken als zur Herstellung der Interoperabilität des unabhängig geschaffenen Programms verwendet werden Īn Dritte weitergegeben werden, es sei denn, daß dies für die Interoperabilität des unabhängig geschaffenen Programms notwendig ist įür die Entwicklung, Vervielfältigung oder Verbreitung eines Programms mit im wesentlichen ähnlicher Ausdrucksform oder für andere, das Urheberrecht verletzende Handlungen verwendet werden. (3) Die zur Benutzung eines Computerprogramms berechtigte Person darf (2) Computerprogramme dürfen vervielfältigt und bearbeitet werden, soweit dies für ihre bestimmungsgemäße Benutzung durch den zur Benutzung Berechtigten notwendig ist hiezu gehört auch die Anpassung an dessen Bedürfnisse. (1) § 42 gilt für Computerprogramme nicht. You have to note that other laws like patents and contracts can also apply to software: Freie Werknutzungen § 40d. I settled for black-box reverse engineering, as it is explicitly allowed in the EU.įor an more in-depth answere (in german), this is my local copyright law implementation (see ). From a legal perspective, you have to define how you want to apporach the problem. I never got any negative replies from Altium. Did Altium ever try to sue you or something like that? Look how tracks are added, how the record looks like, what parts of the file got updated,…ĭo you mind sharing your work? I think that I will give it a shot but before that, I should consult a lawyer, I’m not completely sure what the German law thinks about I liked your presentation it is kind of an inspiration for this project.Check how much the file differs in those four versions (how stable it is).Create another new empty project and save it.Close the program, open the file again and save it.Then export many files with known informations: If you want a binary importer directly, create lots of ASCII exports to get a clue how the file-structure might look like.Settle for ASCII import for the beginning (as done by Altium, etc.), as a binary importer should be able to build on top of this work.If you want to build an importer, those would be my hints: Building a binary parser looks quite challenging after my first try. After that it got out of alignment as the records had different sizes. I was able to extract some track information, but my parser was only able to parse three or four tracks in a known data segment. I have to say, my work is only based on existing files and the existing viewer, as I do not own Allegro. I was able to extract some fundamental informations (data-types for coordinates/angles) but not much more.
