Jump to content
Our response time is longer than usual currently. We're working to answer users as quickly as possible and thank you for your continued patience.

Scaling Tool


Recommended Posts

Hi, I really can’t believe that such a great app does not have a scaling tool that could scale objects f. e. by a factor 10. It is possible to do this with a *10. But not the real internal sizes are resized, but the inaccurate numbers in the transform box.  :(

 

A scaling tool is not on the feature roadmap?! Will it be changed?

Link to comment
Share on other sites

you mean like this?

Of course not: My method is only OK yet when the objects are not something like 100.1232532405403… In AD users have no access to the exact size of the objects (not all digits are shown in the transform box) and a 2* or 10* results in faults because the developers made a fault. Example: 210 mm / 9 and after a RETURN 23,3 mm * 9 … you get 209,7: High Quality Destructively  :(  :(  :(

Link to comment
Share on other sites

Well, the same "high quality destructive" result appears, when you are using the calculator.. Just saying  :)

What do you mean? Which calculator? Joking? A scientific calculator is not comparable with this situation: Here we have not a single true decimal place in the transform fields. AD could easily get the correct results. Seems to be just one reason why the developers did not use the correct internal numbers. For a very late update.  :(

 

Hoping one of them will get it fixed soon.

Link to comment
Share on other sites

  • Moderators

Hi, I really can’t believe that such a great app does not have a scaling tool that could scale objects f. e. by a factor 10. It is possible to do this with a *10. But not the real internal sizes are resized, but the inaccurate numbers in the transform box.  :(

 

A scaling tool is not on the feature roadmap?! Will it be changed?

 

That's not right.

 

We display the values in the Transform panel to one decimal place, but the actual value held internally is accurate.

 

If you type "* 2", for example, at the end of the current value - so "100mm * 2", the whole line is parsed and you get a result of 200 mm.

 

If, you instead type "*=2", removing the value currently displayed, the internal value (with all it's precision) will be multiplied by 2.  So, if the internal value was 100.0001 mm, the result will be 200.0002 mm.  Of course, it will still only display "200 mm" since the result shown is only displayed to one decimal place.

 

The +=, =+, *= and /= operators work on the internal values, and only require the right operand in the text box.  In order to preserve accuracy, you should be using them.

We also have a number of variables that you can use.  So, if you type "w * 2", the result will be the current accurate width multiplied by 2.  Use the name of the field in the Transform panel as the variable name.

 

So, if the complete line you typed was "23,3 mm * 9", you will get 209,7.  And that is the correct result for the function you typed - even if you started typing at the end of the current display text (since what is displayed is a rounded version of the internal value).  Whatever is there when you hit Enter is parsed as you have typed it.

 

Our approach is much more accurate in reality.  Even if we showed you ten decimal places, it's still not perfectly accurate.  There will always be rounding in the displayed value.  Use the variable names, or the other operators, and the accuracy is preserved internally.

SerifLabs team - Affinity Developer
  • Software engineer  -  Photographer  -  Guitarist  -  Philosopher
  • iMac 27" Retina 5K (Late 2015), 4.0GHz i7, AMD Radeon R9 M395
  • MacBook (Early 2015), 1.3GHz Core M, Intel HD 5300
  • iPad Pro 10.5", 256GB
Link to comment
Share on other sites

The +=, =+, *= and /= operators work on the internal values, and only require the right operand in the text box.  In order to preserve accuracy, you should be using them.

We also have a number of variables that you can use.  So, if you type "w * 2", the result will be the current accurate width multiplied by 2.  Use the name of the field in the Transform panel as the variable name.

 

It is about usability and communication. You know: German users do not know a single option because they did not get these infos. This is why users use the usual and faster way of other apps! We cannot believe that Serif believes that German users know that essential information is missing in the German help and should be found somewhere in space!   :angry:   :angry:  Other options are shown directly, but none for the fields.   :(

 

 

Other apps do it the way without a "=". So we need more time for an additional click and for typing an additional character.  :( Crazy. Would make sense to change that. Think like users and their needs not like mathematicians, please.

 

Not stringent: A copied and pasted “1,253” is not 1,3 internally and “w=1,253” / “=1,253” do not work.

 

Would be great to get an options field above where we can type in all options, because e.g. “w * 2” does not work in the H field. OK?

 

Miau!

Link to comment
Share on other sites

Can you please add this formula parsing of the transform dialog also to the dialogs

Change document size

Change canvas size

 

This would make it easy to add a 5% frame around an image by using

    w+w*0.05  h+h*0.05 in the change canvas dialog. 

(btw: When you add scripting, please store the formulas, not the results in the macros)

 

Can you please also add the variable "d" which is evaluated to  sqrt(w*w+h*h) and "a" which is evaluated to (w+h)/2.

 

Maybe you can also allow automatic parsing of the % sign to be *w/100 respectively *h/100. So to add 5% margin we just type 105% 

 

Julian

Link to comment
Share on other sites

We also have a number of variables that you can use.  So, if you type "w * 2", the result will be the current accurate width multiplied by 2.  Use the name of the field in the Transform panel as the variable name.

Is there a list of the variables that you have defined?

Link to comment
Share on other sites

Is there a list of the variables that you have defined?

You can find them in the help (Expressions for field input Affinity). E.g. still not in the Swiss one and not everything is working expectably: e.g. “s+20” ENTER in the field H does not change anything.

Link to comment
Share on other sites

  • Moderators

You can find them in the help (Expressions for field input Affinity). E.g. still not in the Swiss one and not everything is working expectably: e.g. “s+20” ENTER in the field H does not change anything.

 

That is because S is for shear/shew, which is displayed as an angle.  So, "s+20" would add 20 degrees onto the value of s, resulting in an angle.  Since H is a size, the result has to be a size type value (such as mm or in).  Our parser will just revert the value if the result is in the wrong units.  It is the same if you write "20mm" in the rotation R or skew S fields.  They require an angle, so it fails and reverts to the original value.

SerifLabs team - Affinity Developer
  • Software engineer  -  Photographer  -  Guitarist  -  Philosopher
  • iMac 27" Retina 5K (Late 2015), 4.0GHz i7, AMD Radeon R9 M395
  • MacBook (Early 2015), 1.3GHz Core M, Intel HD 5300
  • iPad Pro 10.5", 256GB
Link to comment
Share on other sites

Thank you. That means, we cannot get the internal values for calculating in other fields when the unit is incompatible.

 

Would be great if we could make entries like h=6inch, w=RND*5pt in every field. What do you think?

 

Would be logical, when we make entries with variables in that form, we could do it in any field and the parser would “sort” it. E.g. it would be easier for users if they have many entries to do them all in any field.

Link to comment
Share on other sites

  • Moderators

You can use any inputs you like.  The rule is that the result has to be in the correct unit type - the intermediate steps don't have to be.  If the result has no unit type (is just a number) then we promote it to the required unit type (so "10 * 2" becomes "20mm, for example).

 

So, to convert an angle to a number you would use a function like "sin(s)" to find the sin of the skew. This results in a real number, which can then be multiplied with another constant.  So, "w * sin(s)" should result in a proportion of the width based on the skew angle.

 

@Oval

What you are describing sounds more like a higher level scripting language.  I don't think it would be logical to allow this to be entered into the field for a specific property.

SerifLabs team - Affinity Developer
  • Software engineer  -  Photographer  -  Guitarist  -  Philosopher
  • iMac 27" Retina 5K (Late 2015), 4.0GHz i7, AMD Radeon R9 M395
  • MacBook (Early 2015), 1.3GHz Core M, Intel HD 5300
  • iPad Pro 10.5", 256GB
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...
 Share

×
×
  • Create New...

Important Information

Please note there is currently a delay in replying to some post. See pinned thread in the Questions forum. These are the Terms of Use you will be asked to agree to if you join the forum. | 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.