2012-02-16 9 views

答えて

5

私はAutoCAD 2010で2008年のライブラリを使用していますので、おそらくAutoCAD 2010のほうが最良の選択ですが、動作することは保証されていません。あなたがやっていることがまさにそれに依存します。

Autodesk Developer Center(ページの下部にあります)からObjectARX 2010パッケージの一部としてライブラリをダウンロードできます。また、必要に応じてそこからObjectARX 2011を入手することもできます。

4

AutoLISPには、AutoCADアドオンの長寿に恵まれました。私は1995年に書いたツールを持っていますが、まだ修正なしで今も強く料理しています。

+0

私はあなたに完全に同意しています –

+0

(これは( ))))))););)構文エラー –

+0

@CADblokeここで私の笑いをコントロールすることはできませんでした。私がLISPから離れる最初のことは、その構文でした。ちなみに、再コンパイルせずに以前のバージョンでAutoCAD 2012の.netアプリケーションを実行しようとしましたか?通常のAPIを使用すれば、2012年のライブラリをどのように利用できるのでしょうか。 – Jatin

1

.Net APIの方がActiveXと互換性がありますが、まだ違いがあります。

いつでもReflectionを使用して関数を呼び出すことができます(名前で呼び出すこともできます)。ただし、チェックすることが多くなり、アプリケーションを作成する作業が多くなります。すべてのバージョンで同じように反応します。

私が少なくともやるべきことは、あなたが望むそれぞれの機能性のためのラッパークラスを作ることです。たとえば、サークルを操作するための "MyCircle"クラスを作成し、このクラスの中でジェネリック関数(例: "ChangeThickness(int newThickness)")を作成し、そこでリフレクションコードを実行します。インストールされているAutoCADのバージョンに応じてどのように呼び出しを行うかを制御します(たとえば、AutoCADの特定のバージョンで特定の関数を呼び出さないようにするために、バグが含まれています)。 これにより、すべてのバージョンのAutoCADで再利用できる拡張可能なレイヤーが作成され、APIの変更をサポートすることができます。

0

私は2012年と2013年にこれを行います。それらはいくつかの違いがあります。

私は、通常、2012 Acad.NETウィザードで2つのプロジェクトを開始し、2013 Acad .NETウィザードでもう1つプロジェクトを開始します。

アップデートの両方を同時に

ほとんどの場合そのはちょうど彼らが2013年にどこのように任意の共同行くポイントAPIがイマイチ2013 APIにCivil3d 2012年に例えば進化してきたところ、それは違うだろういくつかの例をコピー&ペーストそれで、その場合は、コードを少し変更して2013年に作業する必要があると付け加えました。

+0

手を吹きすぎないように手動で行うのはあまりにも困難です。私はhttps://github.com/CADbloke/CodeLinkerを書いてそのようなことを同期させています。どちらの場合でも、コードファイルを1セット用意し、コンパイラ指令を使用して相違を制御する方がよいでしょう。 –

関連する問題