I think there's a bug in the Draft.py, but there are also other issues with your model according to the Dependency Graph, which shows some red arrows indicating links going out of the allowed scope. For example, you have the Pad as the base of the array, when it should probably be the body instead. You also have a link from a sketch in one body to the array as well as the Pad in the other body to the same array. But despite those issues, it looks "okay" once the bug in Draft.py is fixed and once you modify the attachment of Sketch001, but... you probably need to fix those issues or else they will likely cause more problems later.
First, fix what I believe to be a bug. Open a file called Draft.py in a text editor. This file is found at /Mod/Draft/Draft.py within your FreeCAD folder, wherever you have FreeCAD installed. Go to line 6040 and change it from this:
Code: Select all
if not lnodes.isEqual(nullv,1e-7): #was if lnodes != nullv:
These two lines of code do essentially the same thing except in the original case it's looking for an exact match to nullv, which is 0,0,0 whereas the proposed change will look for a match within 1e-7 (.000001) tolerance and figure that's close enough to be getting on with. This check is there to prevent attempting to normalize a null vector. The #was if... bit isn't absolutely necessary since it's only a comment, but if you need to change it back later you'll have that as a reference.
Next step is to close and reload FreeCAD in order for it to reload that module you just changed.
Now it "works", but you still aren't getting the result you probably want:
What's needed now is to adjust Sketch001's placement slightly.