diff --git a/src/group.cpp b/src/group.cpp index 0f5a9e6..1cb1a1b 100644 --- a/src/group.cpp +++ b/src/group.cpp @@ -404,7 +404,11 @@ bool Group::IsForcedToMeshBySource() const { } bool Group::IsForcedToMesh() const { - return forceToMesh || IsForcedToMeshBySource(); + return forceToMesh || IsTriangleMeshAssembly() || IsForcedToMeshBySource(); +} + +bool Group::IsTriangleMeshAssembly() const { + return type == Type::LINKED && linkFile.Extension() == "stl"; } std::string Group::DescriptionString() { diff --git a/src/importmesh.cpp b/src/importmesh.cpp index 2115175..df9a65b 100644 --- a/src/importmesh.cpp +++ b/src/importmesh.cpp @@ -171,7 +171,6 @@ bool LinkStl(const Platform::Path &filename, EntityList *el, SMesh *m, SShell *s addUnique(verts, tr.b, normal); addUnique(verts, tr.c, normal); } - SK.GetGroup(SS.GW.activeGroup)->forceToMesh = true; dbp("%d verticies", verts.size()); BBox box = {}; diff --git a/src/sketch.h b/src/sketch.h index 6b58bb8..812375f 100644 --- a/src/sketch.h +++ b/src/sketch.h @@ -269,6 +269,7 @@ public: void Generate(EntityList *entity, ParamList *param); bool IsSolvedOkay(); void TransformImportedBy(Vector t, Quaternion q); + bool IsTriangleMeshAssembly() const; bool IsForcedToMeshBySource() const; bool IsForcedToMesh() const; // When a request generates entities from entities, and the source diff --git a/src/textscreens.cpp b/src/textscreens.cpp index 628aff3..2255382 100644 --- a/src/textscreens.cpp +++ b/src/textscreens.cpp @@ -124,7 +124,7 @@ void TextWindow::ShowListOfGroups() { } } std::string suffix; - if(g->forceToMesh) { + if(g->forceToMesh || g->IsTriangleMeshAssembly()) { suffix = " (∆)"; } @@ -495,7 +495,7 @@ void TextWindow::ShowGroupInfo() { &TextWindow::ScreenChangeGroupOption, g->visible ? CHECK_TRUE : CHECK_FALSE); - if(!g->IsForcedToMeshBySource()) { + if(!g->IsForcedToMeshBySource() && !g->IsTriangleMeshAssembly()) { Printf(false, " %f%Lf%Fd%s force NURBS surfaces to triangle mesh", &TextWindow::ScreenChangeGroupOption, g->forceToMesh ? CHECK_TRUE : CHECK_FALSE);