FreeCAD icon indicating copy to clipboard operation
FreeCAD copied to clipboard

PartDesign: 1.1RC1 Errors When Recomputing 1.0.X Files

Open TH1813254617 opened this issue 3 months ago • 15 comments

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:

Image

Expected behavior

In FreeCAD 1.0.X, a full recompute of the file yields no errors.

Actual behavior

Image

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

TH1813254617 avatar Nov 27 '25 05:11 TH1813254617

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.

TH1813254617 avatar Nov 27 '25 05:11 TH1813254617

@PaddleStroke @drwho495 is this a TNP issue or a regression from external geometry / pad/pocket update?

maxwxyz avatar Nov 27 '25 07:11 maxwxyz

@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.

drwho495 avatar Nov 30 '25 19:11 drwho495

I have this 200MB file from 1.0.2 with a LOT of fillets (some linked to faces instead of edges): Image 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: Image 1.0.2: Image 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.

TH1813254617 avatar Nov 30 '25 20:11 TH1813254617

@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.

TH1813254617 avatar Dec 02 '25 19:12 TH1813254617

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
Image Sometimes, recomputing in MacOS 1.0.2 does not throw up `Failed to project external geometry` and `External geometry missing reference` errors. Basically, the red text does not always appear. I don't know what causes the errors to only show up sometimes.

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.

TH1813254617 avatar Dec 03 '25 19:12 TH1813254617

@drwho495 did you get a look?

Reqrefusion avatar Dec 06 '25 15:12 Reqrefusion

@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 avatar Dec 09 '25 22:12 drwho495

@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?

Reqrefusion avatar Dec 09 '25 23:12 Reqrefusion

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.

TH1813254617 avatar Dec 10 '25 07:12 TH1813254617

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.

TH1813254617 avatar Dec 10 '25 07:12 TH1813254617

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: Image Pocket013 was not done from a sketch, but from a face: Image

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

TH1813254617 avatar Dec 10 '25 07:12 TH1813254617

If the Google Drive link is inconvenient, I have also updated the original linked file for good measure.

TH1813254617 avatar Dec 10 '25 08:12 TH1813254617

@drwho495 are these files enough for you to test?

Reqrefusion avatar Dec 10 '25 14:12 Reqrefusion

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.

TH1813254617 avatar Dec 11 '25 17:12 TH1813254617

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: Image 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: Image

I wonder if this sort of change is stacking up to cause recompute problems further down the line.

TH1813254617 avatar Dec 11 '25 17:12 TH1813254617

Here is a simpler demonstration of this phenomenon: bsplinetoline.zip 1.0.2 (bsplinetoline10.FCStd): Image 1.1RC1 (bsplinetoline11.FCStd): Image 1.2Dev (bsplinetoline12.FCStd): Image

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?

TH1813254617 avatar Dec 11 '25 18:12 TH1813254617

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.

TH1813254617 avatar Dec 11 '25 18:12 TH1813254617