- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在处理一个项目,我需要从 C++ 中的 .dwg 文件导入线数据,但我不知道从哪里开始。我看过这个 http://opendesign.com/files/guestdownloads/OpenDesign_Specification_for_.dwg_files.pdf ,我认为这对我来说可能太硬核了,除非有人知道一种简单地用代码描述解码策略的方法吗?例如,大概每一个操作都必须是明智的?
除此之外,我可能不得不依赖一些第三方库,但问题是:是否有任何此类(开源)库获得了许可许可?我无法在该项目中使用复制左侧代码。
为了澄清对评论的回应,我正在寻找宽容 许可库(参见 http://en.m.wikipedia.org/wiki/Permissive_free_software_licence )。这包括例如 MIT 和 BSD 许可证,但不包括 GPL(LGPL 可能会起作用,但前提是静态链接有异常(exception))。当然,公共(public)领域也可以。 GPL 是强烈的 copyleft,这意味着即使您不更改它,但使用单独的原始代码链接到它,该代码必须也根据 GPL 获得许可。
最佳答案
为什么要重新发明轮子?有大量可用的 DWG 库。尝试 LibDWG .它根据 GNU GPL 获得许可(即开源)。还有LibreDWG它基于 LibDWG,但可直接从 GNU 项目网站获得。在 github 上有一个使用 LibreDWG 的例子 opens a DWG file, and converts it to an SVG .
阅读文件似乎很简单:
int error;
Dwg_Data dwg;
error = dwg_read_file(filename, &dwg);
if (!error)
{
model_xmin = dwg_model_x_min(&dwg);
model_ymin = dwg_model_y_min(&dwg);
double dx = (dwg_model_x_max(&dwg) - dwg_model_x_min(&dwg));
double dy = (dwg_model_y_max(&dwg) - dwg_model_y_min(&dwg));
double scale_x = dx / (dwg_page_x_max(&dwg) - dwg_page_x_min(&dwg));
double scale_y = dy / (dwg_page_y_max(&dwg) - dwg_page_y_min(&dwg));
//...
}
dwg_free(&dwg);
关于c++ - 如何在 C++ 中处理 DWG 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22597111/
我是一名优秀的程序员,十分优秀!