如何在导入DWF文件时获取对象属性?
示例组件路径 Sample Components/Dwfdb/Examples/OdDwfLoad 中的程序支持属性导出,执行时添加参数 -D 即可实现。
如何向 MTEXT 实体添加超链接?
OdWriteEx 示例包含了创建带超链接的圆。请在 DbFiller.cpp 中搜索 ""hyperlink""。
以下是创建带超链接字段的 MTEXT 的示例代码:
OdDbMTextPtr pMText = OdDbMText::createObject();
pMText->setDatabaseDefaults(pRecord->database());
pRecord->appendOdDbEntity(pMText);
/**********************************************************************/
/* Set some properties */
/**********************************************************************/
pMText->setLocation(point);
pMText->setTextHeight(0.2);
pMText->setAttachment(OdDbMText::kTopLeft);
pMText->setContents(OD_T("Sample Hyperlink"));
pMText->setWidth(w * 7.0 / 8.0);
pMText->setTextStyle(styleId);
OdDbFieldPtr pTextField3 = OdDbField::createObject();
OdDbFieldPtr pField3_1 = OdDbField::createObject();
OdDbObjectId textFldId3 = pMText->setField(OD_T("TEXT"), pTextField3);
OdDbObjectId fldId3_1 = pTextField3->setField(OD_T(""), pField3_1);
pField3_1->setEvaluationOption(OdDbField::kAutomatic);
OdString fc6(OD_T("\\AcVar \\href \"http://forum.opendesign.com/showthread.php?14172-How-do-I-add-a-hyperlink-to-an-MTEXT-entity##Open Design Alliance Forum > Teigha, C++ version#0\""));
pField3_1->setFieldCode(fc6);
OdDbEntityHyperlinkPEPtr hpe = pField3_1;
OdDbHyperlinkCollectionPtr urls = hpe->getHyperlinkCollection(pField3_1);
urls->addTail(L"http://forum.opendesign.com/showthread.php?14172-How-do-I-add-a-hyperlink-to-an-MTEXT-entity##ForumLink#0\"",
L"Open Design Alliance Forum > Teigha, C++ version");
hpe->setHyperlinkCollection(pField3_1, urls);
pTextField3->setEvaluationOption(OdDbField::kAutomatic);
OdString fc7(OD_T("HyperLink sample %<\\_FldIdx 0>%"));
pTextField3->setFieldCode(fc7, OdDbField::FieldCodeFlag(OdDbField::kTextField | OdDbField::kPreserveFields));
pField3_1->evaluate(OdDbField::kAutomatic);
如何调试ODA .NET应用程序?
目前我们提供的示例均为Release编译配置,如需Debug配置需手动创建。请注意:创建Drawings.NET调试配置时需使用Kernel和Drawings的Release版本存档(例如""amd64dll"")。
- 请基于Release配置新建""Debug""配置,并按以下步骤修改生成设置并重新编译解决方案:
项目属性 -> 选择""生成""选项卡 -> 取消勾选""优化代码""
项目属性 -> 选择""生成""选项卡 -> 点击""高级""按钮 -> 将""调试信息""从""none""改为""full""
项目属性 -> 选择""生成""选项卡 -> ""输出路径""字段 -> 复制Release配置路径(例如:...\exe\vc15_amd64dll)
支持哪些文件类型作为DGN参考文件?
目前我们支持附加引用DXF/DWG和DGN文件。同时我们也支持光栅附件形式的图像文件和pdf文件。
你们是否有剖面处理的示例代码?
剖面处理示例已集成在我们的示例应用程序中,更多详细信息可查阅相关文档 the documentation.
如何计算模型空间的范围?
参见 AbstractViewPE.h。该协议扩展可应用于 OdDbViewport、OdDbViewportTableRecord 和 OdDbViewTableRecord。
示例代码可在 Kernel/Examples/Exports/RasterExport 中找到。AbstractViewPE 的 zoomExtents() 和 viewExtents() 方法仅考虑可见几何体,并遵循图层状态(如果图层关闭或冻结)。
是否有任何库支持从IFC文件生成2D .dwg平面图?
在Visualize库中,您可以将IFC转换为.vsf,然后再从.vsf转换为.dwg。具体示例位于/Examples/Ifc2Visualize和/Extensions/Visualize2Dwg目录中
在哪里可以找到关于打印图纸的信息?
有关打印选项,您可以参考 Drawing SDK 存档中的example 示例:Drawing\Examples\Qt\OdaQtPlotSettingsValidator
使用 OdCopyEx.cpp 转换 CAD 文件版本时,会弹出内存不足对话框,并且在 readFile 时代码抛出异常。
DWG 文件格式高度压缩,图形占用的内存远大于文件大小。
32 位应用程序的内存限制为 2GB,而 64 位应用程序没有此限制。
在某些情况下,部分加载和分页可以减少内存使用,但将图形保存到文件时要求所有数据都必须加载到内存中。
如何将图像'嵌入'到图纸中?
您可以将图像作为OLE实体嵌入。参考路径:/Drawing/Examples/ExCommands/ExInsertRaster.cpp
如何读取 OBJ 文件数据?
主模块项目位于 Components/OBJToolkit 文件夹中。包含所有必要方法声明的头文件是 OBJToolkit.h。要导入 .obj 文件,请创建一个 OdObjImport 对象,调用 importFile 方法,即可访问 OdObjDb 的组和几何对象:
OdObjImportPtr pObjImporter = OBJToolkit::createObjImporter();
pObjImporter->importFile(filePath, &importOptions);
OdObjDbPtr pObjDb = pObjImporter->getObjDb();
导入示例位于 Components/Examples/Obj2Visualize 项目中,并可在 Components/Visualize/Examples/Visualize Viewer(文件->打开->Obj)中进行测试。
将 .dwg 导出为 .obj 的示例位于 Drawing/Examples/ExCustObjs 项目(函数名为 _OBJExport_func)。这是 OdaMfcApp 示例应用程序的 OBJExport 命令。另一个从 Visualize 导出到 OBJ 的示例可在 Visualize Viewer 的文件->导出->Obj 菜单中找到。
能否直接获取标注/引线/延伸线的起点和终点等多段线信息?
标注实体包含dimBlockId()方法。该块包含所有标注几何图形。当任何标注属性被修改时,该块会重新计算。
您可以通过遍历标注块来获取简单实体,如直线、多行文字等。
如何获取与 .dwg 文件中使用的确切字体类型匹配的多段线形式文本字符串?
请参考 Drawings/Examples/ExCommands/ExTxtExp.cpp 中 TxtExp 命令的实现。该命令可将文本转换为多段线和圆弧。
ODA File Converter 的源代码是否可用?
您可以在 Drawings 存档中找到该示例的源代码:
Drawings_XX\Drawing\Examples\Qt\OdaFileConverter。
你能提供C#的ODA示例代码吗(关于如何创建圆、圆弧等)?
请找到 Drawings.NET\Swig\SwigODAExamples\Drawings\Csharp\OdReadExSwig
如何在WPF中执行重生成?
实现方式如下:
m_pDevice->invalidate();
if(m_pDevice->gsModel())
m_pDevice->gsModel()->invalidate(OdGsModel::kInvalidateAll);
其中m_pDevice是OdGsDevice类的派生类
如何从实体获取几何图形?
请参考 OdGetGeomEx 示例项目:\Drawing\Examples\OdGetGeomEx
OdaMfcApp 和 ODA Viewer 有什么区别?
OdaMfcApp 可以使用多种渲染设备(WinGDI、Silicon Graphics OpenGL®®、Microsoft® DirectX®、Bitmap、GLES2)。ODA Viewer 仅使用 OpenGL。
OdaMfcApp 可以启用或禁用图形缓存(工具->选项->使用 GS 模型)。ODA Viewer 无法禁用此选项。