Cut/knock one shape out of another shape

Let's say I have 2 vector shapes on 2 separated layers, A and B.
Both are circles, B is smaller than A.

I want to "cut out" the smaller circle (B) from A, to obtain a donut (A minus B), on a single layer.

In adobe flash it's just a matter of move B over A and then press delete, can't find the equivalent in photoshop.


Solution 1:

sorta kinda works the same way in Photoshop. Use the fact that a selection is defined independently of layers:

assuming that the object to subtract is all by itself on it's layer B:

  1. Cmd-click on the layer icon of layer B, to select the shape's outline
  2. make layer A active (the selection is still the outline of the shape in B)
  3. hit delete (or menu Edit->Clear)
  4. hide or delete layer B

Let's now assume your object is in the form of a vector mask. You could rasterize it, then it's normally editable. Or, you could create a layer mask from the selection (you created earlier from the other vector mask) to hide what's underneath.

Solution 2:

stumble across your question, don't know if this answer might help or not since you have asked long ago. From your elaboration, I think you can work out this way:

Use direct selection tool.

Select vector B and click on the path of circle B, select the whole path by using shift key (select all path dots, 4 dots)

Copy (Ctrl+C), then select vector A, click on the path of circle A, Paste (Ctrl+V).

Up until this, you will have two different paths in the same layer presumably on layer vector A.

With pen tool function selected. Make sure the path B still highlighted (all path dots), choose the Subtract from shape area from the available options.

Then you will get your donut shape, while maintaining as a vector. Hope it helps. =)

ps: I'm using CS2, it could be different in other versions.

Solution 3:

I have been trying to do this (well atleast what i think you are trying to achieve) for quiet a while now.. but never knew what to do.. i understand this is old but i thought for those who are still looking around for an Updated/more specific(CS6) answer all you have to do is

select the two shapes in layer panel with ("cntrl + click" (this is for windows))

i made sure that the one i cut out is on top of the other(i am certain that is necessary) and than right click on the two on the main screen.. (work area) and there is a tab available that says "subtract front shape" and that works perfectly..

Hope that helped..