diff --git a/trunk/code/inc/DataManager/Infrastructure.Data/Model/Geometry_M.h b/trunk/code/inc/DataManager/Infrastructure.Data/Model/Geometry_M.h index bfc93de..a34065a 100644 --- a/trunk/code/inc/DataManager/Infrastructure.Data/Model/Geometry_M.h +++ b/trunk/code/inc/DataManager/Infrastructure.Data/Model/Geometry_M.h @@ -502,6 +502,7 @@ struct DATAMANAGER_DLL_API_EXPORTS Solid_M : public IModel solid.CopyOffsetY = this->m_CopyOffsetY; // 复制偏移分量 solid.CopyOffsetZ = this->m_CopyOffsetZ; // 复制偏移分量 solid.m_objType = (E_GEO_3D_OBJ_TYPE)this->m_objType; + copyQVectorToArray(this->m_BoolMode, solid.BoolMode); return solid; } diff --git a/trunk/code/projects/DataManager/Logic/Logic.DataManagement/Interpreters/CurveInterpreter.cpp b/trunk/code/projects/DataManager/Logic/Logic.DataManagement/Interpreters/CurveInterpreter.cpp index 3383e37..babec41 100644 --- a/trunk/code/projects/DataManager/Logic/Logic.DataManagement/Interpreters/CurveInterpreter.cpp +++ b/trunk/code/projects/DataManager/Logic/Logic.DataManagement/Interpreters/CurveInterpreter.cpp @@ -712,7 +712,7 @@ void CurveInterpreter::ExecuteCommand(std::vector &commandLines, Cu tp.m_Z = curve.m_OZ + curve.m_R2 * std::sin(curve.m_A2 * Degree); } tp.m_ID = GenerateObjectID(&tp); - + addPointIfNotExists(pointList,tp); // Corrected syntax curve.m_KnotID[1] = tp.m_ID; // 20170501 by czb curve.m_Src[1] = tp.m_ID; } @@ -775,6 +775,9 @@ void CurveInterpreter::ExecuteCommand(std::vector &commandLines, Cu curve.m_OX = tp2d2.m_X; curve.m_OY = tp2d2.m_Y; curve.m_OZ = tp2d2.m_Z; + curve.m_SplitX = tp2d2.m_X; + curve.m_SplitY = tp2d2.m_Y; + curve.m_SplitZ = tp2d2.m_Z; Point3D_M tp2d3; ParsePointLoc2D(tp2d3, linePara1e[3], dir_Ellipse, loc_Ellipse); diff --git a/trunk/code/projects/DataManager/Logic/Logic.DataManagement/Interpreters/ObjectInterpreter.cpp b/trunk/code/projects/DataManager/Logic/Logic.DataManagement/Interpreters/ObjectInterpreter.cpp index e3ed319..43eeb93 100644 --- a/trunk/code/projects/DataManager/Logic/Logic.DataManagement/Interpreters/ObjectInterpreter.cpp +++ b/trunk/code/projects/DataManager/Logic/Logic.DataManagement/Interpreters/ObjectInterpreter.cpp @@ -688,7 +688,7 @@ bool ObjectInterpreter::ParsePointLoc(Point3D_M &o, const std::string &loc, bool { throw std::runtime_error("未找到曲线" + locs[0]); } - //o.m_Src.reserve(ModelData::ARRAY_SIZE_NORMAL); + o.m_Src.reserve(ModelData::ARRAY_SIZE_NORMAL); o.m_Src[0] = baseCurve; std::vector locxyz = StringHelper::split(locs[1], std::vector{EQUAL}); bool IsN = false; @@ -1315,6 +1315,7 @@ int ObjectInterpreter::GenerateObjectID(IModel *o) if (it != Model3D_MCommanData::TypeNameMaxId.end()) { max = ++Model3D_MCommanData::TypeNameMaxId[typeName]; + return max; } int prefix = Model3D_MCommanData::TypeNamePrefixId[typeName]; return prefix * MAX_SIZE_OF_OBJECT_GROUP + max;