zoukankan      html  css  js  c++  java
  • C# AutoCAD NetApi xclip 删除 边界

    不说了,直接上代码,参照kean的博客吗,这是添加边界的代码 https://www.keanw.com/2012/10/querying-for-xclip-information-inside-autocad-using-net.html

     1 using Autodesk.AutoCAD.ApplicationServices.Core;
     2 using Autodesk.AutoCAD.DatabaseServices;
     3 using Autodesk.AutoCAD.DatabaseServices.Filters;
     4 using Autodesk.AutoCAD.EditorInput;
     5 using Autodesk.AutoCAD.Runtime;
     6 using System;
     7 using System.Collections.Generic;
     8 using System.Linq;
     9 using System.Text;
    10 using System.Threading.Tasks;
    11 
    12 namespace ClassLibrary1
    13 {
    14     public class Class1
    15     {
    16         const string filterDictName = "ACAD_FILTER";
    17         const string spatialName = "SPATIAL";
    18         [CommandMethod("DXC")]
    19         static public void DetectXClip()
    20         {
    21             var doc = Application.DocumentManager.MdiActiveDocument;
    22             var ed = doc.Editor;
    23             // Ask for an xclipped xref to be selected
    24             var peo =new PromptEntityOptions( "
    Select xclipped block or xref" );
    25             peo.SetRejectMessage("Must be a block or xref.");
    26             peo.AddAllowedClass(typeof(BlockReference), false);
    27             var per = ed.GetEntity(peo);
    28             if (per.Status != PromptStatus.OK)return;
    29             var tr = doc.TransactionManager.StartTransaction();
    30             using (tr)
    31             {
    32                 // Open the selected BlockReference
    33                 var br =  tr.GetObject(per.ObjectId, OpenMode.ForRead) as BlockReference;
    34                 // To save multiple codepaths with the same message
    35                 // ("No clipping information found"), we'll use a flag to
    36                 // see whether we've found anything
    37                 // It should always be a block reference, but it might
    38                 // not have an extension dictionary
    39                 if ( br != null && br.ExtensionDictionary != ObjectId.Null)
    40                 {
    41                     // The extension dictionary needs to contain a nested
    42                     // dictionary called ACAD_FILTER
    43                     var extdict =tr.GetObject(br.ExtensionDictionary, OpenMode.ForRead) as DBDictionary;
    44                     if (extdict != null && extdict.Contains(filterDictName))
    45                     {
    46                         var fildict =tr.GetObject(extdict.GetAt(filterDictName), OpenMode.ForWrite ) as DBDictionary;
    47                         if (fildict != null) fildict.Erase();
    48                     }
    49                 }
    50                 tr.Commit();
    51                 doc.Editor.Regen();
    52             }
    53 
    54         }
    55 
    56     }
    57 }

    执行前

    执行后,相当于执行命令, xclip,选择外部参照,delete

  • 相关阅读:
    Odoo Documentation : Fields
    Odoo models.py BaseModel
    Odoo Documentation : Environment
    Odoo Documentation : Recordsets
    Odoo中使用的部分表名及用途
    Odoo启动过程
    6779. Can you answer these queries VII
    1874 素数和最大
    3150 Pibonacci数
    2817 Tangent的愤怒
  • 原文地址:https://www.cnblogs.com/NanShengBlogs/p/13822495.html
Copyright © 2011-2022 走看看