私の経験はC#とAutoCadではありません。私はAutoLISPのトレーニングを受けました。しかし、ACがどのように機能するかを知っていると、ここに記載されているように、コマンドプロンプトを制御するのが最善の策だと思います。
あなたが言ったことによって、私はあなたがモデル空間にあるものを何でも印刷したいと思っていると思います。あれは正しいですか?
._MSPACE
PaperSpaceを使用している場合は、コマンドラインで入力してModelSpaceに切り替えることができます。これにより、いわばPSpaceの穴からMSpaceで作業できるようになります。したがって、PSpaceのレイアウトにMSpaceの内容全体が表示されていない場合は、MSpaceに切り替えて、コマンドラインで入力z
または入力できます。zoom
これにより、ツールを使用してモデル空間内でユーザーが行うすべてのオプションzoom
(All / Center / Dynamic ...)を使用できるようになります。All
おそらく最善の策でしょう。
したがって、ユーザーがボタンをクリックするかエイリアスを入力すると、プロセス全体を自動化できます。MSpace->すべてズーム->プロット->レイアウト(何をプロットするか)に切り替えることができます。
アップデート:
私のリンクが私が意図した特定のトピックにあなたを連れて行かなかったことに今気づきました。(?)
これはあなたが試してみるべきだと思うものの抜粋です-
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.Runtime;
[CommandMethod("selectEntireAutoCadDrawing")]
public static void selectEntireAutoCadDrawing()
{
//This sets up your doc. Not sure if this is the way you're doing it.
//I imagine you'd probably pass the doc into the method.
Document yourACDoc = Application.DocumentManager.MdiActiveDocument;
//When your plug-in is invoked the first thing I'd do is make sure they're
//in PaperSpace
yourACDoc.SendStringToExecute("tilemode 0 ");
//Next enable ModelSpace through PaperSpace.
yourACDoc.SendStringToExecute("_mspace ");
//Now we zoom to the extents of the drawing.
//Not sure about the bools at the end. The AC documentation has it there for a
//zoom all example but AC doesn't ask any further questions after selecting the
//all or extents zoom types and doesn't elaborate on it?
yourACDoc.SendStringToExecute("._zoom _extents "/*, true, false, false*/);
//Head back to PaperSpace
yourACDoc.SendStringToExecute("_pspace ");
}
この時点で、図面はすべてPaperSpaceにあるはずです。次に、残りの実行を続行します。
ACコマンドラインでは、スペースバー、リターン、または正しく設定されている場合はマウスクリックでコマンドを実行する必要があります。そのため、一部のパラメーターの間にスペースがあります。このようにすることが不可欠です。そうしないと、不明なコマンドとして解釈されます。
少し試してみるか、APIリファレンスを確認するか、別のズームタイプを使用する必要があるかもしれません。特に管理が緩いショップで、スタイルの異なる複数のユーザーがいる場合、ズームは扱いにくい場合があります。これが制限を認識している環境で実装される場合は、問題ないはずです。
また、ACに慣れておくとよいでしょう。入力されたすべてのコマンドのリストとエラーメッセージが表示されるため、コマンドラインをデバッガーとして使用できます。また、事前にデザインすることもできます。ACにコマンドを入力するだけで、プロンプトの順序と目的をメモし、それに応じてコードを記述します。プログラミングの知識がない多くの人がたどるルートであるマクロにアクションを記録する方法もあります。
頑張ってください〜