0d657b3c Posted July 30, 2021 Posted July 30, 2021 (edited) I was trying to subtract two simple shapes from each other in Affinity Designer (version 1.9.3 on macOS). The result is not what I expected. See the screenshots below. I also attached the original file. Why does subtract not work as expected in this example? When increasing the size of the document and shapes, subtract actually gives the expected result. PS I already found a workaround in another topic: option-click subtract, then convert the compound shape to curves. subtract.afdesign Edited July 30, 2021 by 0d657b3c Smaller screenshots and extra info Quote
David in Яuislip Posted July 30, 2021 Posted July 30, 2021 If you rotate the circle around its centre a bit then subtract works As to why, dunno Quote Microsoft Windows 11 Home, Intel i7-1360P 2.20 GHz, 32 GB RAM, 1TB SSD, Intel Iris Xe Affinity Photo - 24/05/20, Affinity Publisher - 06/12/20, KTM Superduke - 27/09/10
R C-R Posted July 30, 2021 Posted July 30, 2021 10 hours ago, 0d657b3c said: Why does subtract not work as expected in this example? It seems that it is because somehow the boolean calculations are not completely resolution independent so at small sizes they are not reliable. That's why if you increase the dimensions enough it works like it should. This has been an issue since the first releases & still there is no complete fix for it. Quote All 3 1.10.8, & all 3 V2.6 Mac apps; 2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7 All 3 V2 apps for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7
Alfred Posted July 30, 2021 Posted July 30, 2021 11 hours ago, 0d657b3c said: I was trying to subtract two simple shapes from each other in Affinity Designer (version 1.9.3 on macOS). The result is not what I expected. See the screenshots below. In this particular case there’s no need to perform a subtraction at all. The Donut Tool isn't limited to creating whole donuts: you can specify start and end angles (e.g. 135° and 45°) if you want a donut with a bite taken out of it. Quote Alfred Affinity Designer/Photo/Publisher 2 for Windows • Windows 10 Home/Pro Affinity Designer/Photo/Publisher 2 for iPad • iPadOS 17.5.1 (iPad 7th gen)
0d657b3c Posted July 30, 2021 Author Posted July 30, 2021 (edited) 30 minutes ago, Alfred said: In this particular case there’s no need to perform a subtraction at all. The Donut Tool isn't limited to creating whole donuts: you can specify start and end angles (e.g. 135° and 45°) if you want a donut with a bite taken out of it. Thank you for your suggestion. Unfortunately the donut tool only allows defining a hole radius as a percentage of the donut. I wanted to have a border of exactly 2 pixels wide. Edited July 30, 2021 by 0d657b3c Quote
Old Bruce Posted July 30, 2021 Posted July 30, 2021 I think the actual problem is that you are subtracting a curve from a curves layer. If you go to Layers > Geometry > Separate Curves and then subtract the triangle from the larger disk and then subtract the smaller disk from the larger (with the triangle cut out) disk you'll see what you are striving for. Quote Mac Pro (Late 2013) Mac OS 12.7.6 Affinity Designer 2.6.0 | Affinity Photo 2.6.0 | Affinity Publisher 2.6.0 | Beta versions as they appear. I have never mastered color management, period, so I cannot help with that.
0d657b3c Posted July 30, 2021 Author Posted July 30, 2021 (edited) 12 minutes ago, Old Bruce said: I think the actual problem is that you are subtracting a curve from a curves layer. If you go to Layers > Geometry > Separate Curves and then subtract the triangle from the larger disk and then subtract the smaller disk from the larger (with the triangle cut out) disk you'll see what you are striving for. That sounds like a lot of work for something that should be a trivial operation. Seeing that it actually gives the correct result when rotating the circle, or when increasing the size I would rather think I found a bug. I would expect these simple path operations to work just like they do in other tools like Illustrator. Besides, if the tool couldn't handle compound curves I would expect the tool not to work at all, instead of giving a strange and unexpected result, right? Edited July 30, 2021 by 0d657b3c Quote
R C-R Posted July 30, 2021 Posted July 30, 2021 4 minutes ago, Old Bruce said: I think the actual problem is that you are subtracting a curve from a curves layer. If you go to Layers > Geometry > Separate Curves and then subtract the triangle from the larger disk and then subtract the smaller disk from the larger (with the triangle cut out) disk you'll see what you are striving for. That works but the real problem is the booleans do not work reliably with objects that have small pixel dimensions (like the 7x14 px triangular shape & the 14x14 circular one). To demonstrate this, you can go to File > Document Setup > Dimensions, set it so objects will rescale, & increase the document size slightly, first to 15x15 px & then to 16x16 px. At 15 px it glitches; at 16 it does not. Quote All 3 1.10.8, & all 3 V2.6 Mac apps; 2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7 All 3 V2 apps for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7
R C-R Posted July 30, 2021 Posted July 30, 2021 3 minutes ago, 0d657b3c said: Seeing that it actually gives the correct result when rotating the circle, or when increasing the size I would rather think I found a bug. Like I mentioned earlier, the booleans have been buggy since the very first release. They have improved them somewhat since then but they still fail under certain conditions, for example with very small objects. Quote All 3 1.10.8, & all 3 V2.6 Mac apps; 2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7 All 3 V2 apps for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7
Alfred Posted July 30, 2021 Posted July 30, 2021 43 minutes ago, 0d657b3c said: Unfortunately the donut tool only allows defining a hole radius as a percentage of the donut. I wanted to have a border of exactly 2 pixels wide. In that case, you’ve already identified best way forward: 12 hours ago, 0d657b3c said: I already found a workaround in another topic: option-click subtract, then convert the compound shape to curves. Quote Alfred Affinity Designer/Photo/Publisher 2 for Windows • Windows 10 Home/Pro Affinity Designer/Photo/Publisher 2 for iPad • iPadOS 17.5.1 (iPad 7th gen)
David in Яuislip Posted July 31, 2021 Posted July 31, 2021 Separate Curves Change inner disc to 10 x 10 Select all layers Click Subtract Quote Microsoft Windows 11 Home, Intel i7-1360P 2.20 GHz, 32 GB RAM, 1TB SSD, Intel Iris Xe Affinity Photo - 24/05/20, Affinity Publisher - 06/12/20, KTM Superduke - 27/09/10
PixelPest Posted July 31, 2021 Posted July 31, 2021 It works here even in this small size - but what I find is Mr. Boolean don´t like touching edges: Alfred and Old Bruce 2 Quote
Old Bruce Posted July 31, 2021 Posted July 31, 2021 9 minutes ago, PixelPest said: I find it Mr. Boolean don´t like touching edges: I am going to have to remember this tip. Quote Mac Pro (Late 2013) Mac OS 12.7.6 Affinity Designer 2.6.0 | Affinity Photo 2.6.0 | Affinity Publisher 2.6.0 | Beta versions as they appear. I have never mastered color management, period, so I cannot help with that.
R C-R Posted July 31, 2021 Posted July 31, 2021 2 hours ago, PixelPest said: It works here even in this small size - but what I find is Mr. Boolean don´t like touching edges: It isn't just touching edges. Consider this subtract v2.afdesign file. All I changed from the OP's version was the height of the triangular curve to 8 px, leaving the width at the same 14 px width of the circular curves layer. Boolean subtraction works fine with it. Also, subtraction works as expected if the triangular curve is moved downward slightly, cutting the circular curves layer into two parts. Quote All 3 1.10.8, & all 3 V2.6 Mac apps; 2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7 All 3 V2 apps for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.