Jump to content
You must now use your email address to sign in [click for more info] ×

Why doesn't Subtract work in Designer?


Recommended Posts

1 hour ago, anon2 said:

The lower shape has fill-rule nonzero (Winding) specified in the SVG, so it gets Winding mode in Affinity and so the result of the subtraction is given Winding mode which makes no hole appear.

 

51 minutes ago, Stokestack said:

Thanks.  Hopefully Affinity can get this fixed. Pretty sure nobody's holding his breath at this point, though.

If the SVG has the fill-rule defined as non-zero then why should Affinity discard that? Just because in this case you wanted the inner curve unfilled doesn't mean that's the correct way. If the SVG was one where it needed to be set to non-zero to display as intended then discarding that would break it.

I'd be interested to see what Illustrator/Corel do when the non-zero rule is needed to be preserved - do they still discard it?

Link to comment
Share on other sites

  • 1 year later...

Attempt 1: Ive created a large Square using the rectangle tool, filled for my background. I place 3 smaller circles in it plus a smaller square. I select all of the smaller shapes inside the large main background square. I select the Subtract boolean command. Result? The three circles are cut of out the background square but the smaller square is not!! 

 

Attempt 2: I create the same background square in a new project as in Attempt 1. This time I just place a smaller square (as in Attempt 1) into the large background square. I select subtract tool as I did in Attempt 1 to cut out the the small square. This time it worked! But now Adding the circles as I did in Attempt 1, do not cut out!!

 

WTF!!!

 

The boolean operations - especially subtract, don't make any sense in Affinity Designer!

Link to comment
Share on other sites

Hi @RealStingand welcome to the forums.

For me the boolean opertions working as expected.

See my example.

Designer_jA7EokoIW1.thumb.gif.d52d8b9007e25a397eb34de306ed0d49.gif

AMD Ryzen 7 5700X | INTEL Arc A770 LE 16 GB  | 32 GB DDR4 3200MHz | Windows 11 Pro 23H2 (22631.3296)
AMD A10-9600P | dGPU R7 M340 (2 GB)  | 8 GB DDR4 2133 MHz | Windows 10 Home 22H2 (1945.3803) 

Affinity Suite V 2.4 & Beta 2.(latest)
Better translations with: https://www.deepl.com/translator  
Interested in a robust (selfhosted) PDF Solution? Have a look at Stirling PDF

Life is too short to have meaningless discussions!

Link to comment
Share on other sites

Mmmm I'm gonna say it's probably working correctly. The operation only affects layers you have selected. Did you have all the shapes selected? Look at the difference...

Only the small shapes selected:

There was no overlap among those shapes. So if you take away each of the top layers from the one below it (and itself), you wind up with only the bottom layer (because it wasn't subtracted from anything).

Here the three shapes are indeed subtracted from the bottom one.

Link to comment
Share on other sites

42 minutes ago, Stokestack said:

The operation only affects layers you have selected. Did you have all the shapes selected?

Of course you must select all layers which have to be taken into account here by a geometric subtract operation, especially the big red rectangle from which the others have to been subtracted. Only selected objects are performed by such operations and when you don't select your big red background rect too, from what should the others then be subtracted from (then there is nothing they can be subtracted from)? - Thus always select all object/layers which are involved and part of that boolean operation!

☛ Affinity Designer 1.10.8 ◆ Affinity Photo 1.10.8 ◆ Affinity Publisher 1.10.8 ◆ OSX El Capitan
☛ Affinity V2.3 apps ◆ MacOS Sonoma 14.2 ◆ iPad OS 17.2

Link to comment
Share on other sites

Yes, all the layers were selected. I’m not a newbie to this game.. been doing it for decades on Adobe and others. This is definitely a bug! No doubts, because the operations outcome is erratically different though I’m doing the exact same thing each time. It either works or it doesn’t.. it doesn’t (reliably). I’m surprised there are issues with these fundamental functions - illustrator never gave me these issues.. it just worked! 

 

UPDATED - See Video link below:

https://youtu.be/lS27xv58Kr0

Edited by RealSting
Link to comment
Share on other sites

6 hours ago, RealSting said:

This is definitely a bug!

It's certainly a weird bug, as it doesn't seem to be reproducible. (I have tried several times!)

Could you post a video showing exactly what you are doing for this bug to manifest? (Even a screenshot might help.)

Acer XC-895 : Core i5-10400 Hexa-core 2.90 GHz :  32GB RAM : Intel UHD Graphics 630 : Windows 10 Home
Affinity Publisher 2 : Affinity Photo 2 : Affinity Designer 2 : (latest release versions) on desktop and iPad

Link to comment
Share on other sites

Yes, I've tried converting it to curves. Im now doing the same and now the square is working but the circles are not!!! Its a bug! If you look carefully at other attempts in the layers panel in the video I've attached here, you'll see it did work at one point. But it then stops working. I also tried it without any texture fills and/or strokes.

 

Thank you kindly to everyone for your responses. 

AD2.mov

Edited by RealSting
Link to comment
Share on other sites

  • Staff

Hi @RealSting,

Welcome to the Affinity Forums :)

Many thanks for providing this screen recording - I've created a document in similar setup to yours, and this is working as expected for me - 

6fbf6b9d71b0db5e0efc24431d008624.gif

Can you please attach a copy of the .afdesign file, before using the Subtract operation? Many thanks in advance!

Please Note: I am now out of the office until Tuesday 2nd April on annual leave.

If you require urgent assistance, please create a new thread and a member of our team will be sure to assist asap.

Many thanks :)

Link to comment
Share on other sites

I have attached the .afdesign file. There is a texture applied to the background square which may or may not show up on your machine, though texture or not, didn't make any difference to the problem on my machine.

I'm using Mac OS 11.6 on a L2013 MacPro, 32GB RAM, D700 Graphics.

Thank you.

Test.afdesign

Edited by RealSting
Link to comment
Share on other sites

  • Staff

Many thanks for that! This is caused due to the Fill Mode for the Curve layer at the bottom of your layers stack.

After selecting your layers and using Subtract, with the Curve layer selected, please navigate to Layer > Fill Mode > Alternate (Even-Odd)

You should now find the shape appears as expected :) 

image.png

Please Note: I am now out of the office until Tuesday 2nd April on annual leave.

If you require urgent assistance, please create a new thread and a member of our team will be sure to assist asap.

Many thanks :)

Link to comment
Share on other sites

  • Staff

No problem at all, I would certainly leave this as Alternate - as I suspected your file was from Illustrator, please see the excerpt from the online helpfile regarding this below:

Quote

Fill mode is a property of any polycurve that has intersecting lines. Because a polycurve is a complex shape, what is considered inside and outside the shape can becomes unclear. The fill mode is an algorithm that decides the shape's inside and outside so that filling can be understood when exporting complex shapes to SVG document fragments for use in web applications.

  • The Alternative mode determines whether a segment of the shape will be filled by drawing a ray from that point to infinity in any direction, and counting the number of segments within the given shape that the ray crosses through. If this number is odd, the segment exists in the fill region; if even, the segment is outside the fill region.
  • The Winding mode determines whether a segment of the shape will be filled by drawing a ray from that point to infinity in any direction, and counting the number of instances in which a segment of the shape crosses the ray. Starting from zero, one count is added each time a segment crosses the ray from left to right and one count is subtracted each time a path segment crosses the ray from right to left, from the perspective of the ray. After the number of crossings has been counted, if the result is zero, then the point is considered to be outside the fill path. Otherwise, it is inside the path.

I hope this clears things up :)

Please Note: I am now out of the office until Tuesday 2nd April on annual leave.

If you require urgent assistance, please create a new thread and a member of our team will be sure to assist asap.

Many thanks :)

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.