Ориентация объекта просмотра Forge, созданного при автоматизации проектирования в Forge Viewer, не соответствует ориентации в Inventor

#autodesk-forge #autodesk-designautomation #autodesk-inventor

#autodesk-forge #autodesk-designautomation #autodesk-inventor

Вопрос:

Я экспортирую SVFS из модели, используя API автоматизации проектирования. В некоторых моделях ориентация объекта просмотра в средстве просмотра не соответствует ориентации в Inventor. введите описание изображения здесь

В Viewer против в Inventor

Как мне исправить это, чтобы все модели выходили с ориентацией для просмотра, соответствующей входной модели Inventor? Следующий код — это то, куда экспортируется SVF. Сообщение в блоге об этой функциональности было бы полезно.

 private string SaveForgeViewable(Inventor.Document doc) {
    string viewableOutputDir = null;
    using(new HeartBeat()) {
        //LogTrace($"** Saving SVF");
        try {
            TranslatorAddIn oAddin = null;

            foreach(ApplicationAddIn item in inventorApplication.ApplicationAddIns) {

                if (item.ClassIdString == "{C200B99B-B7DD-4114-A5E9-6557AB5ED8EC}") {
                    //Trace.TraceInformation("SVF Translator addin is available");
                    oAddin = (TranslatorAddIn) item;
                    break;
                }
                else {}
            }

            if (oAddin != null) {
                //Trace.TraceInformation("SVF Translator addin is available");
                TranslationContext oContext = inventorApplication.TransientObjects.CreateTranslationContext();
                // Setting context type
                oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism;

                NameValueMap oOptions = inventorApplication.TransientObjects.CreateNameValueMap();
                // Create data medium;
                DataMedium oData = inventorApplication.TransientObjects.CreateDataMedium();

                Trace.TraceInformation("SVF save");
                var workingDir = Path.GetDirectoryName(doc.FullFileName);
                var sessionDir = Path.Combine(workingDir, "SvfOutput");

                // Make sure we delete any old contents that may be in the output directory first,
                // this is for local debugging. In DA4I the working directory is always clean
                if (Directory.Exists(sessionDir)) {
                    Directory.Delete(sessionDir, true);
                }

                oData.FileName = Path.Combine(sessionDir, "result.collaboration");
                var outputDir = Path.Combine(sessionDir, "output");
                var bubbleFileOriginal = Path.Combine(outputDir, "bubble.json");
                var bubbleFileNew = Path.Combine(sessionDir, "bubble.json");

                // Setup SVF options
                if (oAddin.get_HasSaveCopyAsOptions(doc, oContext, oOptions)) {
                    oOptions.set_Value("GeometryType", 1);
                    oOptions.set_Value("EnableExpressTranslation", true);
                    oOptions.set_Value("SVFFileOutputDir", sessionDir);
                    oOptions.set_Value("ExportFileProperties", false);
                    oOptions.set_Value("ObfuscateLabels", true);
                }

                oAddin.SaveCopyAs(doc, oContext, oOptions, oData);
                LogTrace($ "** Saved SVF as {oData.FileName}");
                File.Move(bubbleFileOriginal, bubbleFileNew);
                viewableOutputDir = sessionDir;
            }
        }
        catch(Exception e) {
            LogError($ "********Export to format SVF failed: {e.Message}");
            return null;
        }
    }
    return viewableOutputDir;
}
  

Комментарии:

1. На самом деле я не могу установить для просмотра правильную ориентацию и изменить рабочий стол — что-то не так с view cube. Я нажимаю на угол, и он поворачивается в нужной мне ориентации.

Ответ №1:

мы также столкнулись с этой проблемой, это наша настройка вывода SVF, которая учитывает основу вашего дизайна:

 oOptions.set_Value("EnableExpressTranslation", false);
oOptions.set_Value("ExportFileProperties", true);
oOptions.set_Value("ObfuscateLabels", false);
  

Полный код вы можете посмотреть в нашем новом репозитории примеров приложений https://github.com/Developer-Autodesk/forge-configurator-inventor/blob/master/AppBundles/CreateSVFPlugin/CreateSvfAutomation.cs#L96