89495


現在、IJCAD 2022で.NET API(C#)を使用して開発を行っています。

クリップされたビューポートをEditorクラスのGetEntity()メソッドで選択すると、Viewport型ではなくPolyline型で入ってきます。  
PolylineではなくViewportオブジェクトを取得したいのですが、方法を教えていただけないでしょうか？

以下はサンプルコードです。

[code]

    [CommandMethod("SAMPLE_VIEWPORT", CommandFlags.NoTileMode)]
            public void SAMPLE_VIEWPORT() {
                var doc = Application.DocumentManager.MdiActiveDocument;
                var db = doc.Database;
                var ed = doc.Editor;
    
                var opt = new PromptEntityOptions("\nビューポートを選択:");
                opt.AllowNone = false;
                var selRes = ed.GetEntity(opt);
                if (selRes.Status != PromptStatus.OK) return;
    
                using (var tr = db.TransactionManager.StartTransaction()) {
                    var dbObj = tr.GetObject(selRes.ObjectId, OpenMode.ForWrite);
                }
            }
    
[/code]

[![画像](https://i.stack.imgur.com/5VyDo.png)](https://i.stack.imgur.com/5VyDo.png)


CC BY-SA 4.0
2022-06-06T09:16:57.477
89255
2022-07-20T00:20:22.160
52807
question
ijcad
クリップされたビューポートオブジェクトを取得する方法について


> PolylineではなくViewportオブジェクトを取得したいのですが、方法を教えていただけないでしょうか？

(2022/7/20 追記)  
取得したポリラインオブジェクトに対して、LayoutManager.GetNonRectangularViewportIdFromClipId(ObjectId
clipId)メソッドを実行することでビューポートのオブジェクトIDを取得することが可能です。

または、取得したポリラインオブジェクトに対して、DBObject.GetPersistentReactorIds()メソッドを実行することでクリップされたビューポートのオブジェクトIDを取得することができるようです。


CC BY-SA 4.0
2022-06-21T01:10:48.547
89495
2022-07-20T00:20:22.160
2022-07-20T00:20:22.160
52306
52306
89255
answer