如何使用Design Automation将SVG标记导入DWG并保存至APS存储桶?
解决APS查看器标记保存到DWG的可行方案
首先明确:APS Viewer的标记默认是独立存储在云端Markup Service,并未嵌入原始DWG文件中,所以直接"保存带标记的DWG"需要分两种场景处理,以下是具体方案:
方案一:导出包含标记的可视化文件(无需修改原始DWG)
如果不需要修改DWG本身,只是需要带标记的可视化副本,可通过两种方式实现:
- Viewer客户端导出:利用Viewer的
MarkupsCore模块提供的导出功能,将标记和图纸视图合并导出为PDF或PNG。示例代码片段:const markupsCore = viewer.getExtension('Autodesk.Viewing.MarkupsCore'); // 导出为带标记的PDF markupsCore.exportPDF({ includeMarkups: true }).then(pdfBlob => { // 将blob上传到APS存储桶(用.NET Core的OSS SDK实现上传) }); - Model Derivative API批量导出:通过调用APS Model Derivative的导出接口,指定包含标记,生成带标记的PDF文件,再将成品存到存储桶。需要在导出任务中指定
markups参数关联标记ID。
方案二:将标记嵌入原始DWG文件(需Design Automation)
如果必须修改DWG文件本身,把Viewer标记转为DWG原生实体,需要结合Design Automation for AutoCAD:
- 获取标记数据:通过APS Markup API(
GET /data/v1/projects/{projectId}/markups/{markupId})获取Viewer中的标记JSON数据,里面包含标记的类型(文字、线条、云线等)、坐标、样式等信息。 - 编写AutoCAD处理插件:用.NET/C#编写AutoCAD插件,解析标记JSON数据,将其转换为AutoCAD原生实体(比如
DBText、Line、RevisionCloud等),并添加到DWG文件中。 - 配置Design Automation工作流:在APS中创建Design Automation活动(Activity),调用上述AutoCAD插件,传入原始DWG文件和标记数据,执行处理后生成新的DWG文件。
- 保存到存储桶:将Design Automation输出的新DWG文件上传回APS存储桶,可选择覆盖原文件或保存为新文件。
注意:Design Automation处理DWG时,需要确保插件适配AutoCAD的核心库,并且正确处理坐标转换(Viewer的坐标和AutoCAD原生坐标需要映射)。
内容的提问来源于stack exchange,提问作者Plarent Haxhidauti
相关产品推荐
相关产品推荐

