Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从AutoCAD中创建的DXF中提取零部件?_Java_Parsing_Autocad_Cad_Dxf - Fatal编程技术网

Java 如何从AutoCAD中创建的DXF中提取零部件?

Java 如何从AutoCAD中创建的DXF中提取零部件?,java,parsing,autocad,cad,dxf,Java,Parsing,Autocad,Cad,Dxf,我试图找到一种方法,如何从AutoCAD创建的.dxf文件中获取一些具体组件。具体而言,将在AutoCAD中绘制一座建筑物,并指定窗、门和其他类似构件 我从ribbonsoft或kabeja中找到了一些库,如dxflib,它们能够提取直线、圆弧等。但是,如果我能直接识别窗、门等组件,这将非常有帮助。我需要它的原因是,我必须在应用程序中将现有建筑转换为我自己的数据模型(抽象一些不必要的属性) 有这样的解决办法吗?不管是免费的还是付费的。解决方案是否使用C/C++、Java、Lisp等语言也无关紧要

我试图找到一种方法,如何从AutoCAD创建的.dxf文件中获取一些具体组件。具体而言,将在AutoCAD中绘制一座建筑物,并指定窗、门和其他类似构件

我从ribbonsoft或kabeja中找到了一些库,如dxflib,它们能够提取直线、圆弧等。但是,如果我能直接识别窗、门等组件,这将非常有帮助。我需要它的原因是,我必须在应用程序中将现有建筑转换为我自己的数据模型(抽象一些不必要的属性)

有这样的解决办法吗?不管是免费的还是付费的。解决方案是否使用C/C++、Java、Lisp等语言也无关紧要。。。(最好是java:)


非常感谢您的回答和帮助:)

使用下面的代码。。。它会帮助你的。它是用C写的#

List tlistenties=new List();
Database Database=HostApplicationServices.WorkingDatabase;
使用(Transaction=database.TransactionManager.StartTransaction())
{
BlockTableRecord btRecord=(BlockTableRecord)transaction.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(数据库),OpenMode.ForRead);
foreach(btRecord中的ObjectId)
{
添加((实体)transaction.GetObject(id,OpenMode.ForRead));
}
Commit();

}

您能具体说明我如何从cad cia获取对象吗?:)一些互连或soIt实际上取决于这些组件是否以任何方式存储。如果有,kaps有你的答案。如果不是,我想答案是否定的。
List<Entity> tListEntities = new List<Entity>();
Database database = HostApplicationServices.WorkingDatabase;
using (Transaction transaction = database.TransactionManager.StartTransaction())
{
BlockTableRecord btRecord = (BlockTableRecord)transaction.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(database), OpenMode.ForRead);
foreach (ObjectId id in btRecord)
{
    tListEntities.Add((Entity)transaction.GetObject(id, OpenMode.ForRead));
}
transaction.Commit();