wandererfan wrote: ↑Fri Mar 18, 2022 7:16 pm
Not a regression in TD. Seems to be a change in Part.getShape or maybe 'PartDesign::CoordinateSystem'.
This bug has bothered me for a while now, so I did a
git bisect and did out some digging in order to find out what has happened. Turns out it's a regression in TechDraw after all, accordind git bisect the culprit is commit
https://github.com/FreeCAD/FreeCAD/comm ... 0c260c9419. And, indeed, the completely removed function
std::vector<TopoDS_Shape> ShapeExtractor::extractDrawableShapes(const TopoDS_Shape shapeIn) has some logic removing infinite shapes here and there, e.g.:
Code: Select all
if (!s.IsNull() && !Part::TopoShape(s).isInfinite()) {
extShapes.push_back(s);
}
I think I understand the reason why you removed the function: Most of it should not be necessary anymore, and it has been there for historical reasons, because the really old shape and toposhape stuff classes did not originally return reasonable shapes automagically when this stuff was first coded. But, nowadays, the shapes are returned automatically and no filtering is necessary, except for the isInfinite() case, which still needs to be handled within TechDraw. I would suggest reverting this commit for now, and re-writing it later so that it only checks if the sub-shapes are infinite and drops them if they are.
EDIT: Here's my simple FCStd test file, it should show a TD drawing of a cube with the bug fixed, and an empty drawing with the aforementioned commit.