diff --git a/src/components/layout/CadSidebar.vue b/src/components/layout/CadSidebar.vue index adaaf1c..c66f50c 100644 --- a/src/components/layout/CadSidebar.vue +++ b/src/components/layout/CadSidebar.vue @@ -187,14 +187,22 @@ const handleOpenModel = async () => { const { value: filePath } = await ElMessageBox.prompt('请输入模型文件路径', '打开模型文件', { confirmButtonText: '打开', cancelButtonText: '取消', - inputPlaceholder: '例如: C:/Users/Documents/model.asm' + inputPlaceholder: '例如: Z:\\工具\\Revit2017(64bit)\\model.asm' }) if (filePath && connectedCAD.id === 'creo') { - const result = await creoApi.openModelFile(filePath) - if (result.success) { - cadStore.currentProjectName = result.data.data.fileName - emit('show-model-viewer', result.data) + // 处理文件路径格式,支持中文字符和特殊字符 + const processedFilePath = filePath.trim() + + // 第一步:打开模型文件 + const openResult = await creoApi.openModelFile(processedFilePath) + if (openResult.success) { + // 第二步:获取当前模型详细信息 + const modelResult = await creoApi.getCurrentModel() + if (modelResult.success) { + cadStore.currentProjectName = modelResult.data.data.fileName + emit('show-model-viewer', modelResult.data) + } } } } catch (error) { diff --git a/src/services/creoApi.js b/src/services/creoApi.js index 4166046..90ab896 100644 --- a/src/services/creoApi.js +++ b/src/services/creoApi.js @@ -55,7 +55,9 @@ class CreoApiService { const url = buildApiUrl(this.softwareName, 'open') return await apiClient.post(url, { - filePath: filePath + "software_type": "creo", + "file_path": filePath, + "open_mode": "active" }, { operationContext: { software: 'Creo',