PartDesign: 1.1RC1 Errors When Recomputing 1.0.X Files
Workbench affected?
Part Design
Problem description
When recomputing certain files made in 1.0.X, FreeCAD 1.1RC1 seems to have issues.
Example file provided in link: https://www.printables.com/model/1072912-cateye-reflex-auto-replacement-shell/files
Steps to reproduce
Download the 31MB cateye-reflex.fcstd (last file in link).
Open the file in FreeCAD 1.1RC1
In Tree View, select all
Mark to recompute
Recompute
Errors should start popping up in the Report View:
Expected behavior
In FreeCAD 1.0.X, a full recompute of the file yields no errors.
Actual behavior
Development version About Info (in Safe Mode)
OS: Windows 11 build 26200
Architecture: x86_64
Version: 1.1.0rc1.20251125 (Git shallow)
Build date: 2025/11/25 17:53:08
Build type: Release
Branch: (HEAD detached at 5376760)
Hash: 53767601ea65de7cd9f6590e7d5856afc0841635
Python 3.11.14, Qt 6.8.3, Coin 4.0.3, Vtk 9.3.1, boost 1_86, Eigen3 3.4.0, PySide 6.8.3
shiboken 6.8.3, xerces-c 3.3.0, IfcOpenShell 0.8.2, OCC 7.8.1
Locale: English/Canada (en_CA)
Navigation Style/Orbit Style/Rotation Mode: CAD/Rounded Arcball/Window center
Stylesheet/Theme/QtStyle: FreeCAD.qss/FreeCAD Dark/
Logical DPI/Physical DPI/Pixel Ratio: 96/94.0767/1.25
Last known good version (optional)
OS: Windows 11 build 26200
Architecture: x86_64
Version: 1.0.2.39319 (Git) Conda
Build type: Release
Branch: (HEAD detached at 1.0.2)
Hash: 256fc7eff3379911ab5daf88e10182c509aa8052
Python 3.11.13, Qt 5.15.15, Coin 4.0.3, Vtk 9.3.0, OCC 7.8.1
Locale: English/Canada (en_CA)
Stylesheet/Theme/QtStyle: FreeCAD Dark.qss/FreeCAD Classic/Fusion
Installed mods:
* CurvedShapes 1.0.14
* Curves 0.6.70
* fasteners 0.5.43
* freecad.gears 1.3.0
* FusedFilamentDesign 0.25.380
* InventorLoader 1.5.1
* manifest.json
* sheetmetal 0.7.58
This is why you should follow CAD best practices.
Most of my later files do not have compatibility issues.
I think the issue happens when you use Pad/Pocket to a face or from a face.
@PaddleStroke @drwho495 is this a TNP issue or a regression from external geometry / pad/pocket update?
@PaddleStroke @drwho495 is this a TNP issue or a regression from external geometry / pad/pocket update?
Looks like a tnp issue
I bet it can be fixed by enabling element map migration.
I have this 200MB file from 1.0.2 with a LOT of fillets (some linked to faces instead of edges):
Here's a more specific error message from this file:
15:04:42 <PropertyLinks> PropertyLinks.cpp(512): Tripod_Case___Copy#Chamfer003.Base missing element reference Tripod_Case___Copy#AdditiveLoft ;#12747:2;:M;FUS;:H-a8c:7,E.Edge29
15:04:42 <Exception> FeatureDressUp.cpp(217): Invalid edge link: ;#12747:2;:M;FUS;:H-a8c:7,E.Edge29
15:04:42 Chamfer003: Invalid edge link: ;#12747:2;:M;FUS;:H-a8c:7,E.Edge29
1.1RC1:
1.0.2:
This is the only error when recomputing the entire file in 1.1RC1. I have had a pad to face fail in this file, but I could not reproduce this for whatever reason.
Actually, Now that I've closed this file without saving, recomputing that part NO LONGER produces this error. I think you have to recompute the other parts first for that chamfer to fail... I have no idea what is going on. Maybe that pad to face failing was also dependent on the order you recompute parts. I hope this info helps.
I can share this file, but given the size and recompute times it might be more productive if I try to make a file that sepcifically triggers this migration error. https://drive.google.com/file/d/1vZGK8alHP5KiGVOd7HvpK3qvF4-YLXQb/view?usp=sharing
BTW, this file really shows issue #25598. The GUI becomes unresponsive on recomputes, though a 200MB file with hundreds of fillets may be an edge case for GUI responsiveness on recompute.
@maxwxyz
I don't think issue #25787 is linked to this issue. #25787 happens without migrating files across versions and can happen in 1.0.2.
This issue seems more about element references and edge links breaking when migrating files from 1.0.2 to newer verions.
I am not knowledgeable enough to see if this is linked to 25811 or this issue.
In Windows FreeCAD 1.0.2 x86-64, I saw no errors recomputing the Cateye Reflex file linked above (I'll double check that tonight). However, recomputing said file in MacOS FreeCAD 1.0.2 arm64 sometimes generates errors. I don't know if its OS differences, CPU archtecture differences, or me uploading a wrong version of my Cateye Reflex file.
14:08:52 (qt.qpa.fonts) Populating font family aliases took 147 ms. Replace uses of missing font family "Sans" with one that exists to avoid this cost.
14:09:08 <PropertyLinks> PropertyLinks.cpp(449): cateye_reflex#Sketch003.ExternalGeometry missing element reference cateye_reflex#Fillet003 ;#48024:f;:Hf3f,E.Edge138
14:09:08 <Sketch> SketchObject.cpp(9051): Failed to project external geometry in cateye_reflex#Sketch003: Fillet003.;#48024:f;:Hf3f,E
Invalid shape name ?Edge138
14:09:08 <Sketch> SketchObject.cpp(9133): External geometry cateye_reflex#Sketch003.e1 missing reference: Fillet003.;#48024:f;:Hf3f,E
14:09:10 <PropertyLinks> PropertyLinks.cpp(429): cateye_reflex#Fillet006.Base auto change element reference cateye_reflex#Fillet005 ;#1d31:4;:Hf57,E.Edge16 -> ;#803de:5;:Hf57,E.Edge16
14:09:10 <PropertyLinks> PropertyLinks.cpp(429): cateye_reflex#Fillet006.Base auto change element reference cateye_reflex#Fillet005 ;#48ccd:5;:Hf57,E.Edge127 -> ;#803e1:4;:Hf57,E.Edge127
14:09:10 <PropertyLinks> PropertyLinks.cpp(429): cateye_reflex#Fillet007.Base auto change element reference cateye_reflex#Fillet006 ;#40d0:4;:Hf6c,E.Edge22 -> ;#8042a:10;:Hf6c,E.Edge22
14:09:10 <PropertyLinks> PropertyLinks.cpp(429): cateye_reflex#Fillet008.Base auto change element reference cateye_reflex#Fillet007 ;#3767:4;:M;FLT;:Hf73:7,E.Edge376 -> ;#8046a:3;:M;FLT;:Hf73:7,E.Edge376
14:09:10 <PropertyLinks> PropertyLinks.cpp(429): cateye_reflex#Fillet008.Base auto change element reference cateye_reflex#Fillet007 ;#374d:4;:M;FLT;:Hf73:7,E.Edge147 -> ;#804b6:3;:M;FLT;:Hf73:7,E.Edge147
14:09:51 <PropertyLinks> PropertyLinks.cpp(449): cateye_reflex#Sketch035.ExternalGeometry missing element reference cateye_reflex#Pad015 ;#52a72:7;:Hfe9,E.Edge1100
14:09:52 <Sketch> SketchObject.cpp(9051): Failed to project external geometry in cateye_reflex#Sketch035: Pad015.;#52a72:7;:Hfe9,E
Invalid shape name ?Edge1100
14:09:52 <Sketch> SketchObject.cpp(9133): External geometry cateye_reflex#Sketch035.e6 missing reference: Pad015.;#52a72:7;:Hfe9,E
Recomputing this in MacOS arm64 1.1RC1 produces different errors from MacOS arm64 1.0.2 and Windows 1.1RC1:
14:14:21 (qt.qpa.fonts) Populating font family aliases took 147 ms. Replace uses of missing font family "Sans" with one that exists to avoid this cost.
14:15:46 <PropertyLinks> PropertyLinks.cpp(512): cateye_reflex#Sketch021.ExternalGeometry missing element reference cateye_reflex#Sketch004 ;g12;SKT;:H,E.Edge3
14:15:59 <Sketch> SketchObject.cpp(9101): Failed to project external geometry in cateye_reflex#Sketch021: Sketch004.;g12;SKT;:H,E
Invalid shape name ?Edge3
14:15:59 <Sketch> SketchObject.cpp(9186): External geometry cateye_reflex#Sketch021.e20 missing reference: Sketch004.;g12;SKT;:H,E
14:15:59 <PropertyLinks> PropertyLinks.cpp(512): cateye_reflex#Sketch022.AttachmentSupport missing element reference cateye_reflex#Pocket010 ;#4da81:2;:M;CUT;:Hfad:7,F.Face74
14:15:59 <PropertyLinks> PropertyLinks.cpp(512): cateye_reflex#Sketch022.ExternalGeometry missing element reference cateye_reflex#Pocket010 ;#d92f:10;:G11#4da8b;CUT;:H-fb0:f,E.Edge291
14:15:59 <PropertyLinks> PropertyLinks.cpp(512): cateye_reflex#Sketch022.ExternalGeometry missing element reference cateye_reflex#Pocket010 ;#d92f:10;:G10#4da85;CUT;:H-fb0:f,E.Edge264
14:15:59 <PropertyLinks> PropertyLinks.cpp(512): cateye_reflex#Sketch022.ExternalGeometry missing element reference cateye_reflex#Pocket010 ;#d92f:10;:G9#4da83;CUT;:H-fb0:e,E.Edge166
14:16:02 <Sketch> SketchObject.cpp(9101): Failed to project external geometry in cateye_reflex#Sketch022: Pocket010.;#d92f:10;:G11#4da8b;CUT;:H-fb0:f,E
Invalid shape name ?Edge291
14:16:02 <Sketch> SketchObject.cpp(9101): Failed to project external geometry in cateye_reflex#Sketch022: Pocket010.;#d92f:10;:G10#4da85;CUT;:H-fb0:f,E
Invalid shape name ?Edge264
14:16:02 <Sketch> SketchObject.cpp(9101): Failed to project external geometry in cateye_reflex#Sketch022: Pocket010.;#d92f:10;:G9#4da83;CUT;:H-fb0:e,E
Invalid shape name ?Edge166
14:16:02 <Sketch> SketchObject.cpp(9186): External geometry cateye_reflex#Sketch022.e2 missing reference: Pocket010.;#d92f:10;:G11#4da8b;CUT;:H-fb0:f,E
14:16:02 <Sketch> SketchObject.cpp(9186): External geometry cateye_reflex#Sketch022.e4 missing reference: Pocket010.;#d92f:10;:G10#4da85;CUT;:H-fb0:f,E
14:16:02 <Sketch> SketchObject.cpp(9186): External geometry cateye_reflex#Sketch022.e5 missing reference: Pocket010.;#d92f:10;:G9#4da83;CUT;:H-fb0:e,E
14:16:02 <PropertyLinks> PropertyLinks.cpp(512): cateye_reflex#Sketch023.ExternalGeometry missing element reference cateye_reflex#Pocket011 ;#12c81:a;:G#6b2e1;RFI;:H-fb7:d,E.Edge716
14:16:02 <PropertyLinks> PropertyLinks.cpp(512): cateye_reflex#DatumPlane.AttachmentSupport missing element reference cateye_reflex#Pocket011 ;#12b3f:a;:G#6b2e3;RFI;:Hfb0:d,F.Face403
14:16:02 <PropertyLinks> PropertyLinks.cpp(512): cateye_reflex#DatumPlane.AttachmentSupport missing element reference cateye_reflex#Pocket011 ;#12b42:a;:G#6b2e5;RFI;:Hfb0:d,F.Face404
14:16:04 <Sketch> SketchObject.cpp(9101): Failed to project external geometry in cateye_reflex#Sketch023: Pocket011.;#12c81:a;:G#6b2e1;RFI;:H-fb7:d,E
Invalid shape name ?Edge716
14:16:04 <Sketch> SketchObject.cpp(9186): External geometry cateye_reflex#Sketch023.e1 missing reference: Pocket011.;#12c81:a;:G#6b2e1;RFI;:H-fb7:d,E
14:16:05 <PropertyLinks> PropertyLinks.cpp(512): cateye_reflex#Pocket013.Profile missing element reference cateye_reflex#Pocket012 ;#135e8:6;:M;CUT;:Hfc4:7,F.Face175
14:16:05 <Exception> FeatureSketchBased.cpp(241): Sub shape not found: cateye_reflex#Pocket012.?Face175
14:16:05 Pocket013: Sub shape not found: cateye_reflex#Pocket012.?Face175
When I get back home, I'll double check if I accidently picked an older revision of my Cateye Reflex file.
@drwho495 did you get a look?
@drwho495 did you get a look?
I've been looking at this, and I can't get it to load in 1.0.2 properly without it crashing. I need a copy of the file that has been recomputed in 1.0.2 without any unrecomputed modification before saving so I can fairly test it with the migration system.
If you try to open a file in a version not used to make that project which has unrecomputed modifications then changes in toponaming can cause errors like this, and I want to make sure that is not a factor in this issue.
@drwho495 did you get a look?
I've been looking at this, and I can't get it to load in 1.0.2 properly without it crashing. I need a copy of the file that has been recomputed in 1.0.2 without any unrecomputed modification before saving so I can fairly test it with the migration system.
If you try to open a file in a version not used to make that project which has unrecomputed modifications then changes in toponaming can cause errors like this, and I want to make sure that is not a factor in this issue.
@TH1813254617 can you provide such a file?
I have recomputed then saved this file in Windows FreeCAD 1.0.2. No crash, no errors, no warnings.
Here is a Google Drive link in case I messed things up with the original upload: https://drive.google.com/file/d/1o3WFAckf1-K7DcIp6-2YQgC5MMJvykk6/view?usp=sharing
The initial linked file also opens and recomputes fine on my Windows machine, but not on MacOS.
Just to make absolutely sure there were no unrecomputed changes this time, I expanded everything in tree view before selecting things to recompute.
I made a screen recording to make sure I did not do anything improperly (please tell me if I did anything wrong): https://imgur.com/a/qr3wwvm
Then I uploaded another file, this one after the above screen recording but renamed. https://drive.google.com/file/d/1ky9JdVBZJcNCu_0uChoOAiXptb7CD9eZ/view?usp=sharing (I hope I set the download permissions right)
If this still crashes we may have deeper problems.
Something did change in 1.1RC1 after doing the above. I no longer get that long list of errors and warnings in Report View, I get this:
Pocket013 was not done from a sketch, but from a face:
I guess I did have unrecomputed stuff saved in the original uploaded file, sorry about that. Hope the Google Drive file does not cause any further issues in testing.
The file still generates errors recomputing in MacOS 1.0.2, but that's a different issue #25939
If the Google Drive link is inconvenient, I have also updated the original linked file for good measure.
@drwho495 are these files enough for you to test?
I will try to hone in on what specific CAD practice I used in this particularly recalcitrant file that causes so many issues.
I know I used a lot of horrible CAD practices in there -- this file was before I learned proper habits.
If I can do that I can submit smaller files that better pinpoint specific compatibility issues.
One problem I found that does not appear to be causing problems in this particular file (I'll check more carefully) and might be somewhat related to #15943.
Pocket 001 has an angle of -30 degrees. In Sketch003 there is a projected geometry that is straight, but treated as a b-spline:
Actually, upon closer inspection, the thing making that referenced geometry a b-spline and not a line is not actually the angled pocket, but some fillets. So it may not be related to 15943 after all.
After recomputing in 1.1RC1, that b-spline is now a proper line:
I wonder if this sort of change is stacking up to cause recompute problems further down the line.
Here is a simpler demonstration of this phenomenon:
bsplinetoline.zip
1.0.2 (bsplinetoline10.FCStd):
1.1RC1 (
bsplinetoline11.FCStd):
1.2Dev (
bsplinetoline12.FCStd):
I don't know if this is worthy of a new issue because I don't know if this change is catually causing any migration issues. I assume this is already known?
Back to the Cateye Reflex file and the issue of recomputing files made in 1.0.2:
The latest weekly also does not like recomputing that Cateye file (both the properly recomputed original AND the one I tried fixing in 1.1RC1), but we should probably focus on fixing 1.1RC1's compatibility issues first.