• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
2

Shape layer resizing from non-centered anchor point

Explorer ,
Dec 22, 2020 Dec 22, 2020

Copy link to clipboard

Copied

I'm sorry the title is confusing. I'm not sure how to describe this more succintly, but an example will tell you what I'm after:

 

Temp screen shot.png

 

I have a shape layer, a rectangle with rounded corners. I want it anchored from the top edge and I want to maintain the same radius of the rounded corners no matter what size changes I make to the rectangle. The size property seems to ignore both the layer anchor point and the (smaller) shape anchor point. Changes to the size property are anchored in the center of the shape. All I can get to work is an expression. It works great, but there must be an easier way that I'm missing! Can anyone tell me an easier way?

 

Here's my expression solution:

 

Temp screen shot.png

 

On the Rectangle Path 1 > Position property

x = content("Rectangle 1").content("Rectangle Path 1").position[0];
y = content("Rectangle 1").content("Rectangle Path 1").position[1];
y += .5*content("Rectangle 1").content("Rectangle Path 1").size[1];
[x,y]

Essentially I have the shape positioning itself according to the size property, freezing the top edge in place no matter what height changes I make to Rectangle 1.

 

Any tips appreciated. Thanks!

TOPICS
Expressions , How to

Views

3.6K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Valorous Hero , Dec 22, 2020 Dec 22, 2020

This is how it's done. However, it's much more intuitive to apply the Expression to the Rectangle's Content>Transform>AnchorPoint property.

And your Expression can be simplified since you're only wanting to offset the AnchorPoint's y value.

y = -.5*content("Rectangle 1").content("Rectangle Path 1").size[1];
[0,y]

Votes

Translate

Translate
Valorous Hero ,
Dec 22, 2020 Dec 22, 2020

Copy link to clipboard

Copied

This is how it's done. However, it's much more intuitive to apply the Expression to the Rectangle's Content>Transform>AnchorPoint property.

And your Expression can be simplified since you're only wanting to offset the AnchorPoint's y value.

y = -.5*content("Rectangle 1").content("Rectangle Path 1").size[1];
[0,y]

Motion Graphics Brand Guidelines & Motion Graphics Responsive Design Toolkits

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Dec 30, 2020 Dec 30, 2020

Copy link to clipboard

Copied

Thank you Roland!

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Valorous Hero ,
Dec 30, 2020 Dec 30, 2020

Copy link to clipboard

Copied

It took you a while to come back onboard, Michael.
😉

Thanks for replying and have a great year ahead.

Do keep us in mind as you push ahead in 2021 — Happy New Year to You and Your Lovely Ones.

Motion Graphics Brand Guidelines & Motion Graphics Responsive Design Toolkits

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Oct 27, 2023 Oct 27, 2023

Copy link to clipboard

Copied

LATEST

Is there any way to use this expression for both X and Y axes? I've been messing around for like an hour trying to get my rectangle to grow from the bottom left corner, to no avail.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Mar 29, 2021 Mar 29, 2021

Copy link to clipboard

Copied

It's great to have a solution but how lame is it that we need to write code to overcome a system that completely ignores 2 anchor points! 🙂 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Sep 13, 2022 Sep 13, 2022

Copy link to clipboard

Copied

Just another way Adobe products actively work against it's users.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Sep 22, 2023 Sep 22, 2023

Copy link to clipboard

Copied

@Roland Kahlenberg 's solution works perfectly. It could also be applied to the x-axis:

x = -.5*content("Rectangle 1").content("Rectangle Path 1").size[0];
[x,0]

 

GabrieleLS_0-1695387940082.png

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines