数据交换系列-DWG数据交换方案选型

目录

1.背景介绍

1.1 什么是块

1.2 增强属性块

1.3 自定义实体

2.可行技术方案介绍

2.1 应用FreeCAD内置库

2.2 开源LibreDWG库

2.3 OpenDwg 工具库

2.4  ODA的Drawing工具库

2.5 采用ObjectArx开发库

3.技术总结



1.背景介绍

1.1 什么是块

块相当于一个“标准件”,当你要用的时候可以随意插入,插入的时候可以旋转角度,还可以定义比例。块 ,在CAD中,就是一个、或一组图形实体的总称,可以包含任意对象,简单的点、复杂的图纸集合均可。定义块之后,就可以多处应用,减轻重复性绘图工作,定义块的属性后,可以便于统计。

1.2 增强属性块

增强属性块可以理解为添加了自定义属性的块。增强属性块由两个部分组成:

  • 固定属性图形,比如图中的圆形和圆中间的分隔线;
  • 变量属性内容,图中的数字编号就是可以编辑的变量。
1.3 自定义实体

自定义实体可以理解为应用cad提供的基础绘制功能(画线,画圆等)绘制好图形后,并赋予自定义的属性信息,后续按照自己的类型定义命名为特定的类型。例:我们可以画Line,然后命名为CustomLine。

2.可行技术方案介绍

2.1 应用FreeCAD内置库
  • FreeCAD:开源,2D支持较好,对DXF支持较好需要使用 TeighaFileConverter(商业软件)将 DWG格式转换为 DXF格式因为 FreeCAD 基本不支持DWG格式。

参考:FreeCAD and DWG Import - FreeCAD Documentation

结论:不支持DWG格式,不满足技术要求。

2.2 开源LibreDWG库
  • 版本支持

LibreDWG能够解析CAD 2000-2022不同版本,对于低版本的cad有待验证(2008版本以下).

  • 2008版本DWG在进行解析时,会丢失以下图元(图片、句柄对象、代理对象、用户坐标系、VBA对象、被引用和参照对象等
  • 解析能力:

解析增强块解析:下图ATTRIB为属性块的属性定义,经过调试,libredwg未能读取属性定义key和value。

解析自定义实体:LibreDWG未有CAD自定义实体,libredwg会将自定义实体按照基础图元进行解析(点、直线、多义线等),下边左边的图是天正墙(自定义实体),右边为libredwg解析后画线的效果。

结论:LibreDWG不能读取增强属性块内的 自定义属性信息。LibreDWG不能解析自定义实体。

2.3 OpenDwg 工具库

官网地址opendwg.org(怀疑官网被买了,全是投资交易的内容)。个人用途使用此第三方开源库免费,如果是商用用途,需要交纳版权费用。

LX-Viewer基于OpenDWG进行的开发,但是用来进行dwg格式解析、转换等,但此项目2005年之后不再进行维护https://lx-viewer.sourceforge.net/download.php

结论:opendwg的代码国外已经不再进行维护,已经停止升级。所以此技术路线不能做为开发。

2.4  ODA的Drawing工具库

开放设计联盟是一个非营利性技术联盟,为开发工程应用程序提供高级工具包。该联盟的产品组合包括可在所有常见桌面、移动和网络平台上运行的互操作性、可视化、发布和 CAD 编辑解决方案。

解析能力:可以应用ODA解析属性块的属性数据:可以解析得到增强属性块的内部属性信息,无法用ODA提取自定义实体的属性信息。另外,它支持跨平台开发,支持Windows,Linux,Unix和Mac等。

ODA的收费:

收费版本1(限制版): 只提供SDK、技术文档,但不能给予第三方或者子公司使用,不能进行商业分销。

不能选择 可以解析Revit、Civil等 定制包。不提供源码

费用 第一年为3K 美元/年,后续为2250美元/年。

收费版本2(专业版): 可以进行商业分销,但是不能给予第三方或子公司使用,可以提供完全定制的功能。 不提供源码

费用第一年 为7500美元/年, 后续为4500美元。

如果额外选择解析revit的费用为:

收费版本3(完全版): 可以进行商业分销,能给予第三方或子公司使用,可以提供完全定制的功能可以提供源码

直接访问ODA Git存储库ODA董事会提名业务延续权

费用第一年 为37500美元/年, 后续为18000美元

如果增加额外的revit解析需要增加12500美元

2.5 采用ObjectArx开发库

ObjectARX是AutoDesk公司针对AutoCAD平台上的二次开发而推出的一个开发软件包,它提供了以C++为基础的面向对象开发环境应用程序接口,能真正快速的访问AutoCAD图形数据库

与以往的 AutoCAD 二次开发工具 AutoLISP 和ADS不同,ObjectARX应用程序是一个DLL(动态链接库),共享AutoCAD的地址空间,ARX 类库采用了标准的C++类库的封装形式。ObjectARX必须依赖CAD环境。

解析能力:应用ObjectARX脚本可以获取块、属性块的文字属性和几何信息。关于objectArx /CAD二次开发中“属性块”操作_cad二次开发遍历acadblock 属性-CSDN博客下图为具体实现代码

3.技术总结

不依赖Autodesk CAD环境,应用第三方库进行解析DWG文件。

名称

获取块几何信息

获取属性块几何信息

获取属性块属性信息

获取自定义实体几何信息

获取自定义实体属性

费用

FreeCAD

X

X

X

X

X

LibreDWG

X

X

X

免费

OpenDwg ToolKit

X

X

X

X

X

收费

ODA

X

收费

依赖Autodesk CAD环境,应用欧特克提供的ObjectArx开发包进行编程

名称

获取块几何信息

获取属性块几何信息

获取属性块属性信息

获取自定义实体几何信息

获取自定义实体属性

费用

ObjectArx编程

待验证

免费

从跨平台,解析能力和开发效率等综合平库,选择使用ODA的Drawing SDK来实现。

  • 30
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值