4551986 发表于 2023-8-21 09:15:14

百度文心一言生成的程序,不知道对不

C#编程读取AutoCAD数据    在C#中读取AutoCAD数据可以通过几种不同的方式实现,主要取决于你想要从AutoCAD中获取的数据类型和你正在使用的AutoCAD版本。以下是一些可能的方法:
[*]使用.NET API: AutoCAD提供了一个.NET API,允许你使用C#或其他.NET语言编写代码来与AutoCAD交互。这包括读取和修改AutoCAD文件中的数据。
[*]使用ObjectARX: ObjectARX是AutoCAD的一个C++ API,可以通过C#使用COM Interop来访问。然而,这需要更深入的编程知识,并且可能比使用.NET API更复杂。
[*]使用AutoLISP: AutoLISP是一种简单的编程语言,可以创建在AutoCAD中运行的自动执行程序。你可以使用AutoLISP编写脚本来读取数据,并通过.NET或ObjectARX API将其传递给C#程序。
以下是一个使用.NET API的简单示例,读取AutoCAD中的实体的信息:csharp复制代码


using Autodesk.AutoCAD.Runtime;

using Autodesk.AutoCAD.ApplicationServices;

using Autodesk.AutoCAD.DatabaseServices;

using Autodesk.AutoCAD.Geometry;



public class Program

{

    [CommandMethod("ReadData")]

    public void ReadData()

    {

      // 获取当前文档

      Document acDoc = Application.DocumentManager.MdiActiveDocument;

      Database acCurDb = acDoc.Database;



      // 打开一个块

      using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())

      {

            BlockTable acBlkTbl;

            acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable;

            BlockTableRecord acBlkTblRec;

            acBlkTblRec = acBlkTbl as BlockTableRecord;



            foreach (ObjectId id in acBlkTblRec)

            {

                if (id.ObjectClass.DxfName == "TEXT") // 如果该对象是文字

                {

                  // 获取文字对象

                  Text acText = (Text)acTrans.GetObject(id, OpenMode.ForRead);

                  // 打印文字内容

                  System.Console.WriteLine(acText.TextString);

                }

            }

      }

    }

}

请注意,这只是一个简单的示例,实际的读取操作可能需要处理更复杂的数据结构和更多的对象类型。此外,你还需要处理异常和错误,并确保你的代码在AutoCAD关闭时正确地清理资源。

Bao_lai 发表于 2023-8-21 12:03:10

贴AI生成的代码,大概率要被关小黑屋,下次别发了。

sunny_8848 发表于 2023-8-22 10:15:28

Bao_lai 发表于 2023-8-21 12:03
贴AI生成的代码,大概率要被关小黑屋,下次别发了。

能解决问题就好,不管是AI还是编程高手

d1742647821 发表于 2023-8-22 14:19:07

漏洞百出,自己用没关系,给人开发要被骂死
页: [1]
查看完整版本: 百度文心一言生成的程序,不知道对不