优化了打开模型处理
This commit is contained in:
parent
549fa21bd1
commit
d133cb6322
@ -1374,6 +1374,47 @@ HttpResponse CloseModelHandler(const HttpRequest& request) {
|
||||
return response;
|
||||
}
|
||||
|
||||
// 辅助函数:去除 Creo 文件路径末尾的版本号后缀
|
||||
// 例如: D:\path\file.prt.1 -> D:\path\file.prt
|
||||
// D:\path\file.asm.123 -> D:\path\file.asm
|
||||
std::string StripCreoVersionSuffix(const std::string& file_path) {
|
||||
// 查找最后一个路径分隔符
|
||||
size_t last_sep = file_path.find_last_of("/\\");
|
||||
std::string dir_part = (last_sep != std::string::npos) ? file_path.substr(0, last_sep + 1) : "";
|
||||
std::string file_name = (last_sep != std::string::npos) ? file_path.substr(last_sep + 1) : file_path;
|
||||
|
||||
// 检查文件名是否以 .数字 结尾 (Creo 版本号格式)
|
||||
size_t last_dot = file_name.rfind('.');
|
||||
if (last_dot != std::string::npos && last_dot < file_name.length() - 1) {
|
||||
std::string suffix = file_name.substr(last_dot + 1);
|
||||
// 检查后缀是否全为数字
|
||||
bool all_digits = !suffix.empty();
|
||||
for (char c : suffix) {
|
||||
if (!isdigit(static_cast<unsigned char>(c))) {
|
||||
all_digits = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (all_digits) {
|
||||
// 去除版本号后缀
|
||||
std::string stripped_name = file_name.substr(0, last_dot);
|
||||
// 确保去掉版本号后仍然有 Creo 扩展名 (.prt, .asm 等)
|
||||
size_t ext_dot = stripped_name.rfind('.');
|
||||
if (ext_dot != std::string::npos) {
|
||||
std::string ext = stripped_name.substr(ext_dot + 1);
|
||||
// 验证是 Creo 扩展名
|
||||
if (ext == "prt" || ext == "asm" || ext == "drw" || ext == "frm" || ext == "lay" || ext == "sec") {
|
||||
return dir_part + stripped_name;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 不匹配 Creo 版本号格式,返回原路径
|
||||
return file_path;
|
||||
}
|
||||
|
||||
// 打开模型路由处理器
|
||||
HttpResponse OpenModelHandler(const HttpRequest& request) {
|
||||
HttpResponse response;
|
||||
@ -1410,6 +1451,9 @@ HttpResponse OpenModelHandler(const HttpRequest& request) {
|
||||
file_path = dirname + "/" + filename;
|
||||
}
|
||||
|
||||
// 去除 Creo 文件版本号后缀 (如 .prt.1 -> .prt)
|
||||
file_path = StripCreoVersionSuffix(file_path);
|
||||
|
||||
if (software_type != "creo") {
|
||||
response.status_code = 400;
|
||||
response.body = "{\"success\": false, \"error\": \"Invalid software_type, must be 'creo'\"}";
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
MFCCreoDll/x64/Debug/MFCCreoDll.res
Normal file
BIN
MFCCreoDll/x64/Debug/MFCCreoDll.res
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
21
MFCCreoDll/x64/Debug/MFCCreoDll.tlog/Cl.items.tlog
Normal file
21
MFCCreoDll/x64/Debug/MFCCreoDll.tlog/Cl.items.tlog
Normal file
@ -0,0 +1,21 @@
|
||||
C:\Users\sladr\source\repos\MFCCreoDll\AuthManager.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\AuthManager.obj
|
||||
C:\Users\sladr\source\repos\MFCCreoDll\BatchOperationManager.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\BatchOperationManager.obj
|
||||
C:\Users\sladr\source\repos\MFCCreoDll\ComponentChildrenManager.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\ComponentChildrenManager.obj
|
||||
C:\Users\sladr\source\repos\MFCCreoDll\CreoManager.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\CreoManager.obj
|
||||
C:\Users\sladr\source\repos\MFCCreoDll\CreoUtilities.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\CreoUtilities.obj
|
||||
C:\Users\sladr\source\repos\MFCCreoDll\GeometryAnalyzer.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\GeometryAnalyzer.obj
|
||||
C:\Users\sladr\source\repos\MFCCreoDll\HierarchyStatisticsAnalyzer.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\HierarchyStatisticsAnalyzer.obj
|
||||
C:\Users\sladr\source\repos\MFCCreoDll\HttpRouter.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\HttpRouter.obj
|
||||
C:\Users\sladr\source\repos\MFCCreoDll\HttpServer.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\HttpServer.obj
|
||||
C:\Users\sladr\source\repos\MFCCreoDll\JsonHelper.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\JsonHelper.obj
|
||||
C:\Users\sladr\source\repos\MFCCreoDll\Logger.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\Logger.obj
|
||||
C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\MFCCreoDll.obj
|
||||
C:\Users\sladr\source\repos\MFCCreoDll\ModelAnalyzer.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\ModelAnalyzer.obj
|
||||
C:\Users\sladr\source\repos\MFCCreoDll\ModelSearchEngine.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\ModelSearchEngine.obj
|
||||
C:\Users\sladr\source\repos\MFCCreoDll\ModelSearchHandler.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\ModelSearchHandler.obj
|
||||
C:\Users\sladr\source\repos\MFCCreoDll\PathDeleteManager.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\PathDeleteManager.obj
|
||||
C:\Users\sladr\source\repos\MFCCreoDll\pch.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\pch.obj
|
||||
C:\Users\sladr\source\repos\MFCCreoDll\ServerManager.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\ServerManager.obj
|
||||
C:\Users\sladr\source\repos\MFCCreoDll\ShellExportHandler.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\ShellExportHandler.obj
|
||||
C:\Users\sladr\source\repos\MFCCreoDll\ShrinkwrapManager.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\ShrinkwrapManager.obj
|
||||
C:\Users\sladr\source\repos\MFCCreoDll\WebSocketServer.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\WebSocketServer.obj
|
||||
BIN
MFCCreoDll/x64/Debug/MFCCreoDll.tlog/link.command.1.tlog
Normal file
BIN
MFCCreoDll/x64/Debug/MFCCreoDll.tlog/link.command.1.tlog
Normal file
Binary file not shown.
BIN
MFCCreoDll/x64/Debug/MFCCreoDll.tlog/link.read.1.tlog
Normal file
BIN
MFCCreoDll/x64/Debug/MFCCreoDll.tlog/link.read.1.tlog
Normal file
Binary file not shown.
@ -0,0 +1,3 @@
|
||||
^C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\AUTHMANAGER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\BATCHOPERATIONMANAGER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\COMPONENTCHILDRENMANAGER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\CREOMANAGER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\CREOUTILITIES.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\GEOMETRYANALYZER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\HIERARCHYSTATISTICSANALYZER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\HTTPROUTER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\HTTPSERVER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\JSONHELPER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\LOGGER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\MFCCREODLL.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\MFCCREODLL.RES|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\MODELANALYZER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\MODELSEARCHENGINE.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\MODELSEARCHHANDLER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\PATHDELETEMANAGER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\PCH.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\SERVERMANAGER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\SHELLEXPORTHANDLER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\SHRINKWRAPMANAGER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\WEBSOCKETSERVER.OBJ
|
||||
C:\Users\sladr\source\repos\MFCCreoDll\x64\Debug\MFCCreoDll.lib
|
||||
C:\Users\sladr\source\repos\MFCCreoDll\x64\Debug\MFCCreoDll.EXP
|
||||
BIN
MFCCreoDll/x64/Debug/MFCCreoDll.tlog/link.write.1.tlog
Normal file
BIN
MFCCreoDll/x64/Debug/MFCCreoDll.tlog/link.write.1.tlog
Normal file
Binary file not shown.
BIN
MFCCreoDll/x64/Debug/MFCCreoDll.tlog/rc.command.1.tlog
Normal file
BIN
MFCCreoDll/x64/Debug/MFCCreoDll.tlog/rc.command.1.tlog
Normal file
Binary file not shown.
BIN
MFCCreoDll/x64/Debug/MFCCreoDll.tlog/rc.read.1.tlog
Normal file
BIN
MFCCreoDll/x64/Debug/MFCCreoDll.tlog/rc.read.1.tlog
Normal file
Binary file not shown.
BIN
MFCCreoDll/x64/Debug/MFCCreoDll.tlog/rc.write.1.tlog
Normal file
BIN
MFCCreoDll/x64/Debug/MFCCreoDll.tlog/rc.write.1.tlog
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
MFCCreoDll/x64/Debug/ShrinkwrapManager.obj
Normal file
BIN
MFCCreoDll/x64/Debug/ShrinkwrapManager.obj
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
x64/Debug/MFCCreoDll.dll
Normal file
BIN
x64/Debug/MFCCreoDll.dll
Normal file
Binary file not shown.
BIN
x64/Debug/MFCCreoDll.exp
Normal file
BIN
x64/Debug/MFCCreoDll.exp
Normal file
Binary file not shown.
BIN
x64/Debug/MFCCreoDll.lib
Normal file
BIN
x64/Debug/MFCCreoDll.lib
Normal file
Binary file not shown.
BIN
x64/Debug/MFCCreoDll.pdb
Normal file
BIN
x64/Debug/MFCCreoDll.pdb
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user