2009-05-13 5 views
5

Toute idée d'interfaçage avec AutoCAD via un programme JAVA. Je suis à la recherche d'une solution qui puisse directement s'interfacer avec une session AutoCAD (même en démarrer une), comme cela fonctionne avec les extensions .NET d'AutoCAD. Ou n'importe quel moyen de travailler avec ObjectARX via JAVA, certainement pas d'écrire un wrapper JNI complet dessus.Interfaçage d'AutoCAD avec JAVA

Ajouté: Nous cherchons quelque chose en open-source. Au cas où il n'y en aurait pas, nous sommes prêts à en créer un en open source si quelqu'un peut donner un coup de main expliquant comment cela peut être fait. Nous avons examiné la JNA et JaWin. JNA avec JNI pourrait aider mais est trop moche. D'autre part, JaWin n'a pas été mis à jour au cours des 4 dernières années, donc en quelque sorte sceptique.

Répondre

1

Nous travaillons sur un projet similaire. Ce que nous faisons est d'écrire le code d'intégration en C#, et la logique métier de notre projet en Java.

Nous utilisons un pont C++ qui utilise JNI pour transférer les appels Java vers C++, puis les traduire vers C#, et vice versa. Chaque fonction qui doit passer de C# à Java doit être implémentée dans le code de pont. Ceci est assez impliqué, et il y a quelques problèmes avec le fait que le code C++ non managé fonctionne avec le C#, ainsi que le surcoût standard de la traduction de Jstrings en C# Strings et autres. Le résultat est relativement rapide, après avoir fait quelques optimisations pour nous assurer que nous ne démarrons pas et n'arrêtons pas la JVM pour chaque appel dans la couche Java.

Nous utilisions précédemment des objets COM qui ont été appelés par le plugin AutoCAD, ce qui constituerait une autre approche.

2

La seule chose à laquelle je peux penser est d'utiliser un pont Java < -> .Net comme JNBridge. Je l'ai utilisé dans d'autres scénarios et cela fonctionne bien. Jamais fait de travail avec Java et AutoCad si bien qu'il pourrait y avoir d'autres solutions moins chères.

+0

Merci, mais JNBridge est une implémentation commerciale. Deuxièmement, passer de Java à .NET à ARX à AutoCAD va beaucoup ralentir les choses. :( – sangupta

+0

Désolé compagnon mieux que je pouvais faire :) – willcodejavaforfood

+0

Ne pas être désolé - Merci beaucoup pour la suggestion. En fait, nous pensons maintenant à travailler pour combler cette lacune dans l'open source. N'importe quels preneurs? – sangupta

2

Si vous essayez d'interagir avec l'application AutoCAD, vous aurez du mal à le faire. Si vous souhaitez interagir avec les fichiers dwg eux-mêmes, il existe l'Open Design Alliance qui a des bibliothèques qui permettent de travailler avec des fichiers dwg sans AutoCAD.

+0

Merci - nous cherchons en effet un moyen d'interfaçage avec l'application AutoCAD :( – sangupta

2

Vous pouvez essayer d'utiliser le pont JavaBeans ActiveX et l'automation COM pour ouvrir AutoCAD et le manipuler. Cela dit, le pont JavaBeans ActiveX n'a ​​pas évolué depuis longtemps (je l'ai utilisé en 2003) et Autodesk investit sérieusement dans .Net pour tout ce qui concerne les extensions et l'automatisation dans AutoCAD.