ObjectARX
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Does the ObjectARX software licence permit reverse engineering?

10 REPLIES 10
Reply
Message 1 of 11
mark.j.fernandes
716 Views, 10 Replies

Does the ObjectARX software licence permit reverse engineering?

I'm in need of a certain level of understanding on how data l:inks are represented using DXF codes. Unfortunately, Autodesk's DXF specification and other documentation resources, do not appear to provide me with enough understanding. This is why I want to reverse engineer a component of the ObjectARX software: in order to sufficiently understand the DXF representation.

 

Anyone know whether the licence agreement permits this? I think it might do because it permits unlimited copying under certain conditions, together with not seemingly prohibiting reverse engineering.

 

Thanks,

 

Mark

10 REPLIES 10
Message 2 of 11
pendean
in reply to: mark.j.fernandes

While you wait... did you get a chance to read it for yourself yet https://www.autodesk.com/developer-network/platform-technologies/autocad/objectarx-license-download

HTH

Message 3 of 11
mark.j.fernandes
in reply to: pendean


@pendean wrote:
While you wait... did you get a chance to read it for yourself yet https://www.autodesk.com/developer-network/platform-technologies/autocad/objectarx-license-download

Yes. After I read it, I wrote (above):

 

"I think it might do because it permits unlimited copying under certain conditions, together with not seemingly prohibiting reverse engineering."

Message 4 of 11
pendean
in reply to: mark.j.fernandes

These are the parts that jumped out at me that screamed NO to your question:

"You have only the limited rights with respect to the Software expressly set forth in this Agreement and You have no other rights, implied or otherwise."
and
"The structure, organization, and code of the Software are valuable trade secrets of Autodesk and its licensors and You shall keep such trade secrets confidential."

No one here is probably in a position to speak to Autodesk's intention: are you a member of the Autodesk Developer Network? They have exclusive forums for these types of queries. Or consult with your own Legal Counsel.

Good luck.

Message 5 of 11

Hello @mark.j.fernandes,

 

I will move this post to the proper forum for you, this question is related to our Developer Network program. 

Message 6 of 11

Can you post the link for where you have moved this query to, to this thread? I need to know plus others looking here would probably find the link useful.

 

Thanks,

 

Mark

Message 7 of 11
mark.j.fernandes
in reply to: pendean


@pendean wrote:
These are the parts that jumped out at me that screamed NO to your question:

"You have only the limited rights with respect to the Software expressly set forth in this Agreement and You have no other rights, implied or otherwise."

I'm no legal expert, which is why I posted this question here, on the Reverse Engineering Stack Exchange site, & the Law Stack Exchange site.

 

Having said that, I think the following quote, coupled with other content in the terms, quite likely grants a reverse-engineering right for development purposes:

 

"You may make unlimited copies of the Software and give copies to other persons or entities so long as (i) all such copies are used to develop applications for Autodesk products based on the AutoCAD® platform and excluding AutoCAD LT®, DWG TrueConvert™, and DWG TrueView™ and (ii) all such copies contain this Agreement and the same copyright and other proprietary notices that appear on or in the Software."

 

I'm based in the UK, and I don't think we have a concept of 'derivative works' which is one of the reasons why I particularly wanted to get the opinions of others on this.

 

"The structure, organization, and code of the Software are valuable trade secrets of Autodesk and its licensors and You shall keep such trade secrets confidential."

Yes, but then one may argue that telling others about the API is divulging trade secrets. Where does it end?

 


No one here is probably in a position to speak to Autodesk's intention: are you a member of the Autodesk Developer Network? They have exclusive forums for these types of queries. Or consult with your own Legal Counsel.

If I had known of a better AutoCAD forum, I would have posted this question there. From reading this forum, I was under the impression that developers posted here. One developer may have experienced the exact same problem and may have had useful insights on these issues. I did try to contact Autodesk directly about this issue but currently I have no subscription with them, so it appears they won't allow me to contact them directly. I thought that even someone from Autodesk might usefully reply in this thread.

Message 8 of 11

Hi Mark, we had discussion in the VBA forum on your DataLink issue. I am not sure exactly what your ultimate goal/task is, other than knowing that you want to re-path existing DataLinks in drawing, and you want interpreted code (such as VBA/LISP) instead of code that needs to be compiled for every change (but I do not know why this requirement. Moving from VBA to .NET is most natural path forward, especially if there is something that COM APIs do not support, such as DataLink). 

 

As I have already showed you that AutoCAD .NET APIs can deal with DataLink object very easily (so as ObjectARX C++, if you prefer, but it seems contradict to your original requirement). But now, you try to explore even more difficult path to the issue in hand, I'd say, 10 times or more difficult than simply using AutoCAD .NET API code as I showed. 

 

Again, I do not know your full reqirements to the issue/solution. Just want you know that you may put too much unnecessary effort in the incredibly difficult direction for an issue that has a simple/easy solution. In someway,  AutoCAD .NET API is "reverse-engineered" from ObjectARX C++ APIs, I might say.

 

Message 9 of 11

Hello Norman,

 

Thanks for your input and perspective on this.

 

The project was specified by another entity. Perhaps the best thing would have been for me to go back to the entity to ask them whether compiled .NET code, accessed from within VBA, could have been an acceptable solution.

 

If you could tell me how the ConnectionString property worked, then perhaps I would have my answer. Unfortunately, AutoDesk's .NET documentation doesn't tell me this, and for me, reverse engineering to figure this out doesn't sound like that much of a difficult task. Learning about reverse engineering sounds like a useful general skill.

 

It just so happens that some other entity is now on the project so I'm not so interested in the project now. However, I may find an answer to it just for the sake of increasing general knowledge on this topic--I'll probably post such an answer to these forums if I get it.

 

Thanks for your efforts.

Message 10 of 11

If you have downloaded AutoCAD ObjectARX SDK, you can go to its "docs" folder to look up the ObjectARX C++ class AcDbDataLink/AcDbDataLinkManager ( in help file "arxref.chm" ), and the .NET wrapper class DataLink/DataLinkManager ( in help file "arxmgd.chm" ).

 

As for ConnectionString property, it is a string value (of course!) in format like this "[full xlsx file name]![sheet name]" or "[full xlsx file name]![sheet name]![named range]" (if the DataLink points to a named range in the Excel sheet).

 

 

Message 11 of 11


@norman.yuan wrote:

If you have downloaded AutoCAD ObjectARX SDK, you can.....


 

Thanks for your reply.

 

Re. learning about the classes you have highlighted by going to the relevant help files, I have already done this. I just looked at the AcDbDataLink doc. again just to check that I hadn't missed anything. Unfortunately, none of this documentation appears to help with these issues. If you think otherwise, please point out exactly which part of this documentation helps to solve these issues.

 

Re. the ConnectionString property, in C#, and probably several other .NET languages, string properties can have procedures that are run whenever they are set (see https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/properties). I was thinking that it is quite likely that a special procedure is run each time that the ConnectionString property is set--reverse engineering to discover the procedure could answer these issues. If not, other related reverse engineering would likely and hopefully uncover the answer to these issues.

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report

”Boost