C#开发AutoCad,利用ObjectDbx技术在当前dwg文件中插入其它未打开的dwg文件中的图块
    纠结了两天,在http://forums.autodesk.com/t5/Visual-Basic-Customization/Possible-to-insert-block-from-external-DWG-w-o-inserting-whole/td-p/2001460 这里找到了 vb实现的方法,自己整理下 就变成了如下方法,请看代码

    1. /// <summary>
    2. /// 添加块
    3. /// </summary>
    4. /// <param name="StartX">插入起始点X值</param>
    5. /// <param name="StartY">插入起始点Y值</param>
    6. /// <param name="FilePath">块文件路径</param>
    7. public void AddBlock(double StartX, double StartY, string FilePath)
    8. {
    9. string programeID = "ObjectDBX.AxDbDocument.18";
    10. AxDbDocument dbxDoc;
    11. dbxDoc = (AxDbDocument)connector.Application.GetInterfaceObject(programeID);
    12. dbxDoc.Open("C:\\Users\\Administrator\\Desktop\\4025all.dwg");//包含多个块的文件
    13. AcadBlock block = dbxDoc.Blocks.Item("4025-dowm");//4025-dowm 该块只是文件中的其中一个,可以将其参数化,此处只为实现功能设定
    14. AcadObject[] obj = new AcadObject[1] ;
    15. obj[0] = (AcadObject)block;
    16. dbxDoc.CopyObjects(obj, connector.Application.ActiveDocument.Database.Blocks);//将块信息拷贝到当前块集合中
    17. connector.Application.ActiveDocument.ModelSpace.InsertBlock(new double[3] {StartX, StartY, 0 }, "4025-dowm", 1, 1, 1, 0);//插入到当前文件
    18. }