部分図ツリーで選択している用紙のプロパティをコピーして用紙を新規作成するスクリプトのサンプルコードです。
[ユーザー設定] ダイアログボックスで、部分図ツリーウィンドウの右クリックメニューにスクリプトを追加することができます。
■ スクリプトのインストール方法 (Ver9 以降)
- RootPro CAD の [スクリプト] メニューの [スクリプトの管理] をクリックする
[アドイン/スクリプトの管理] ダイアログボックスが表示されます。 - 左側のメニューで [スクリプト] - [すべて] または各カテゴリーを選択する
公開されているスクリプトが表示されます。 - インストールしたいスクリプトを選択して、[インストール] をクリックする
- [閉じる] をクリックする
■ スクリプトのインストール方法 (Ver9 以降の手動インストール)
- 以下のリンクからスクリプトファイル(拡張子 .zip)をダウンロードする
- RootPro CAD の [スクリプト] メニューの [スクリプトのフォルダーを開く] をクリックして、スクリプトのフォルダーを表示する
- ダウンロードした圧縮ファイル(拡張子 .zip)を解凍して、RootPro.Script.DuplicatePaper フォルダーをスクリプトのフォルダーへコピーする
■ スクリプトのインストール方法 (Ver8)
- 以下のリンクからスクリプトファイル(拡張子 .zip)をダウンロードする
- RootPro CAD の [スクリプト] メニューの [スクリプトのフォルダーを開く] をクリックして、スクリプトのフォルダーを表示する
- ダウンロードした圧縮ファイル(拡張子 .zip)を解凍して、用紙の複製.csx ファイルをスクリプトのフォルダーへコピーする
■ スクリプトの動作を確認する
- RootPro CAD を起動する
- 部分図ツリーウィンドウで、複製したい用紙を選択する
- [スクリプト] メニューの [用紙の複製] を実行する
選択した用紙と同じ設定の用紙が新規作成されます。
#r "System.Windows.Forms" using System.Windows.Forms; using System.Linq; var node = Application.DrawingBar.SelectedNode; if(node == null || node.Drawing == null || !(node.Drawing is Paper)) { MessageBox.Show("部分図ツリーウィンドウで複製する用紙を選択してください。"); return; } // 部分図ツリーウィンドウで選択されている用紙を取得します。 Paper selectedPaper = (Paper)node.Drawing; // 追加する用紙の名前は、元の用紙名の後ろに (2) を付けます。 int n = 2; while(ActiveDocument.Drawings.Any(drawing => drawing.Name == n.ToString(selectedPaper.Name + " (0)"))) n++; // UNDO 処理を開始します。 ActiveDocument.UndoManager.BeginUndoUnit(); // 新しい用紙を追加します。 Paper newPaper = ActiveDocument.Drawings.AddPaper(n.ToString(selectedPaper.Name + " (0)")); // 用紙のプロパティをコピーします。 newPaper.State = selectedPaper.State; newPaper.Landscape = selectedPaper.Landscape; newPaper.PaperType = selectedPaper.PaperType; if(selectedPaper.PaperType == PaperType.Custom) { newPaper.PaperWidth = selectedPaper.PaperWidth; newPaper.PaperHeight = selectedPaper.PaperHeight; } newPaper.Printable = selectedPaper.Printable; newPaper.PrintScale = selectedPaper.PrintScale; newPaper.UserOrigin = selectedPaper.UserOrigin; // グリッド設定をコピー newPaper.GridSettings.AngleX = selectedPaper.GridSettings.AngleX; newPaper.GridSettings.AngleY = selectedPaper.GridSettings.AngleY; newPaper.GridSettings.Color = selectedPaper.GridSettings.Color; newPaper.GridSettings.Enabled = selectedPaper.GridSettings.Enabled; newPaper.GridSettings.EnableGridBounds = selectedPaper.GridSettings.EnableGridBounds; newPaper.GridSettings.GridType = selectedPaper.GridSettings.GridType; newPaper.GridSettings.Origin = selectedPaper.GridSettings.Origin; newPaper.GridSettings.SpaceX = selectedPaper.GridSettings.SpaceX; newPaper.GridSettings.SpaceY = selectedPaper.GridSettings.SpaceY; newPaper.GridSettings.Unit = selectedPaper.GridSettings.Unit; newPaper.GridSettings.UnitColor = selectedPaper.GridSettings.UnitColor; if(selectedPaper.GridSettings.EnableGridBounds) { newPaper.GridSettings.SetGridBounds( selectedPaper.GridSettings.GridBoundsBottomLeft, selectedPaper.GridSettings.GridBoundsTopRight); } // UNDO 処理を終了します。 ActiveDocument.UndoManager.EndUndoUnit();
ファイル
添付 | サイズ |
---|---|
(Ver8用) : 用紙の複製.zip | 956 バイト |
(Ver9以降用) : RootPro.Script.DuplicatePaper.zip | 5.29 KB |