問題タブ [objectarx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - AutoCad での選択変更の追跡
私のプロジェクトでは、エンティティの選択の変更を追跡し、必要な方法 (フィルタリングなど) で選択セットを変更する必要があります。選択の変更を確認する Document.ImpliedSelectionChanged にデリゲートを追加します。
、しかし、エスケープキーを押さない限り動作します。Escape を押すと、イベントはトリガーされなくなります。
選択したサブエンティティ セットを追跡する必要はないので、Editor.SelectionAdded および Editor.SelectionRemoved イベントも役に立ちません。
問題は、C# ObjectArx フレームワークを使用して、AutoCad ドキュメントで現在の選択の変更を監視する方法です。
c# - AutoCad描画からエンティティを非表示にする方法は?
DBEntityが描画されないようにするにはどうすればよいですか?トランザクションでent.erase()呼び出しを使用してオブジェクトを消去済みとしてマークすると、たとえばファイルを保存するときに、そのオブジェクトを描画から削除できます。では、ObjectIdとHandleを変更せずに、オブジェクトを安全に非表示にする方法はありますか?
c++ - AutoCAD エンティティをシリアル化できますか?
AutoCAD 2010 の ObjectARX (C++) を使用して、AutoCAD エンティティをシリアル化できますか?
シリアル化されたエンティティをデータベース (AcDbDatabase ではなく、Oracle、PostgreSQL など) のフィールドに保存する必要があります。次のように、ディスクに保存する方法を教えていただければOKです。
ありがとう
c++ - AcDbEntity :: transformByをオーバーライドして、移動中またはスケーリング中にカスタムエンティティ変換を取得するにはどうすればよいですか?
AcDbEntityから派生したカスタムエンティティを実装しています。オーバーロードされたsubWorldDraw関数でいくつかの線とテキストラベルを描画し、エンティティをスケーリング、移動、回転できるようにしたいので、ここで説明したように、AcDbEntity::transformByをオーバーライドする必要があります。しかし、このメソッドを追加しようとすると、コンパイラーはエラーを発生させ、このメソッドが封印されていることを通知します。私のエンティティにユーザーによる変換の責任を負わせる別の方法はありますか?
c# - c#Autocad Map 3D 2012は、ユーザーが描画したオブジェクトを取得します
実行する文字列をMapに送信して、ユーザーがより簡単な方法で描画したオブジェクトを見つけることは可能ですか?私がやっていることはやりすぎだと感じます...
これはコマンドです:
今のところ、私がしていることは、オブジェクト追加イベントをサブスクライブし、コマンド終了イベントをサブスクライブしてから、sendStringToExecuteを呼び出し、そこからDBに入ってくるすべての新しいオブジェクトをチェックし、見つけたオブジェクトへの参照を保持しますユーザーが描画しました。
だから最初に:
と
コマンドの実行中:
Autocadは、_MPOLYGONコマンドの実行中にオブジェクトをデータベースに追加するため、すべてのオブジェクトへの参照を保持します。Autocadは、ユーザーが描画しているときにデータベースに点と線を追加します。たとえば、行の1回目と2回目のクリックは、データベースに配置されているようです。また、ポリゴンが作業データベースに追加されても、それが最後のポリゴンであるとは限りません。最後に追加されたオブジェクトも、実際のオブジェクトであるとは限りません。
次に、コマンドが終了すると、正しいobjectIdを探します。描画されたポリゴンが多数ある場合でも、描画された1つまたは複数のポリゴンを参照する有効なobjectIdは1つだけです。
これを行うためのより良い、より信頼できる方法があるかどうか疑問に思っていますか?オブジェクトの選択を求めるプロンプトを表示すると、すべてのオブジェクトを含む選択セットが返されます。ユーザーがオブジェクトを描画すると、新しいオブジェクトを返すだけの「promptForPolygon」などの方法はありますか?
c# - AutoCad レイヤーを ESRI シェープファイルにエクスポート
Autocad2013 図面の特定のレイヤーからフィーチャを ESRI シェープファイル形式にエクスポートする必要があります。を使用しているc#
ので、Autocad 用の ObjectARX をダウンロードしました。しかし、シェープファイル形式への直接変換をサポートするライブラリがあるかどうかはわかりません。
誰かがこれを行うための適切な提案を提供できれば幸いです。
autocad - AutoCAD 2013-エラー:ARXLOADが失敗しました
現在、AutoCAD 2012を使用しており、AutoCAD2013にアップグレードしたいと考えています。
AutoCADにカスタムメイドの追加があります。しかし、これをロードしようとすると、次のようになります。
COM.VLXがロードされました。; エラー:ARXLOADが失敗しました
誰かがこれを手伝ってくれますか?arxの読み込みに何か変更があったことをいくつかの場所で読んだことがあります...
c# - Autocad.Interopを使用せずにAutocadエンティティを列挙する方法は?
Autocad 図面内のすべてのエンティティを列挙したいのですが、Autocad.Interop
参照は使用しません。
Interop を使用すると、以下を選択できます。
しかし、Object Arx
参考文献では、データベース内のトランザクションを使用してエンティティを取得し、オブジェクトを ID で取得するためのチュートリアルしか見つけることができません。作業を遅らせるのは本当に退屈なことだと思います。
.net - .NET の AutoCAD -INSERT コマンド
私は、AutoCAD プラグインを VBA から VB.NET に変換する任務を負っていますが、現在少し行き詰っています。
私が取り組んでいるコマンドは、新しいレイヤーを作成し(または、既に存在する場合はアクティブなレイヤーとして選択します)、ユーザーが選択したポイントとdwgファイルを指定する2つの「-INSERT」コマンドを実行します。次に、前のアクティブ レイヤがアクティブ レイヤとしてリセットされます。
挿入コマンドは次のようになります。
注: コマンド内のすべての改行はvbCR
(not vbCrLf
) として追加されます。
私の質問は、ObjectARX に対して .NET で同じ結果を得るにはどうすればよいですか? 非同期 (コールバックなし) であるため使用できませSendStringToExecute
ん。つまり、実行が完了すると、現在のレイヤーをリセットできません。おそらく を使用して、純粋な .NET コードでこの機能を複製する何らかの方法が必要BlockTable
ですが、その方法はわかりません。
http://through-the-interface.typepad.com/through_the_interface/2006/08/import_blocks_f.htmlにある記事に従ってみましたが、ドキュメントに目に見える影響はまったくありませんでした。私も使用しようとしましmyDatabase.Insert(transform, otherDatabase, False)
たが、コマンドプロンプトはブロックが既に存在しているためスキップされたことについて何かを言いましたが、それでも変更は見られませんでした。「-INSERT」コマンドが実際に舞台裏でどれほど魔法をかけているかはわかりませんが、それを .NET で複製することは可能でしょうか? それとも、(AutoCAD によって処理されるように送信されたテキスト コマンドとしてではなく) 通常の方法として呼び出すことができるのでしょうか?