明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3316|回复: 0

c#读取cad中的块的问题

[复制链接]
发表于 2007-10-13 17:15 | 显示全部楼层 |阅读模式

using System;
using Autodesk.AutoCAD.Interop;
using dbx=Autodesk.AutoCAD.Interop.Common;

namespace ConsoleApplication
{
 /// <summary>
 /// Class1 的摘要说明。
 /// </summary>
 class Class1
 {
  /// <summary>
  /// 应用程序的主入口点。
  /// </summary>
  [STAThread]
  static void Main(string[] args)
  {
   
   using(AutoCADConnector connector=new AutoCADConnector())
   {
    string progid="ObjectDBX.AxDbDocument.16";
    AcadApplication acadApp=connector.Application;
    Autodesk.AutoCAD.Interop.Common.AxDbDocument dbxDoc;
    dbxDoc=(Autodesk.AutoCAD.Interop.Common.AxDbDocument)acadApp.GetInterfaceObject(progid);
    dbxDoc.Open(@"f:\Test.dwg",null);
    foreach(Autodesk.AutoCAD.Interop.Common.AcadEntity entity in dbxDoc.ModelSpace)
    {
     if(entity.EntityName=="AcDbBlockReference")
     {//判断实体是否是块参照
      dbx.AcadBlockReference blkRef;
      blkRef=(dbx.AcadBlockReference)entity;
      //将是块参照的实体强制转换为块参照类型
      object[] atts=(object[])blkRef.GetAttributes();
      //获取块参照中的属性(为对象类型)
      for(int i=0;i<atts.Length;i++)//遍历块参照属性
      {
       dbx.AcadAttributeReference att;
       //dbx.AcadAttributeReference att;
       att=(dbx.AcadAttributeReference)atts;
       //将块参照属性(对象类型)强制转换为块参照属性类型
       Console.WriteLine("Tag:{0}\tValue:{1}\n",att.TagString,att.TextString);
       //显示块参照属性的Tag和Text的值
      }
     }
    }
    Console.ReadLine();
   }
  }
 }
}
添加的应用为AUTOCAD 和AXDBLib

如果用断点察看entity.EntityName的值是不存在的 这是怎么回事啊?

另外用网上很多朋友介绍的方法无法用ilasm编译成Interop.AutoCAD.dll文件,有完整的程序给我发过来也行, 在此谢谢大家。我的邮箱:sgt24680@163.com

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-3 11:53 , Processed in 0.224232 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表