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

Snapping to ghost objects and curves while dragging


JGD

Recommended Posts

Hi all!

 

When re-re-re-reading all the stuff I wrote on the other thread, I came to a sudden realization: I won't be able to easily do incremental, exponential duplication of objects and *many* other procedures because AD doesn't (yet?) support an extremely important function: snapping to ghost objects and curves while dragging.

 

This seems to be a common thread with AD; It's not that I don't want to give it fair a chance; it's just that *every* seemingly basic and expectable timesaver from my regular workflows under Ai seem to have gotten “lost in translation”. And it really frustrates me, because I do recognize just how much of a leap in functionality and attention to UX AD really is… except for my workflows. I really, honestly, can't even begin to [re-]make some of my favorite projects in AD. Sure, drawing logos, dabbling in digital illustration, etc., are all nice and dandy, but that is definitely the core of what I do these days. :\ But I digress…

 

I love how AD renders objects while dragging and, in fact, believe that WYSIWYG approach is probably the most intuitive, as opposed to Ai's “outline when dragging”. However, not having a “ghost”, meaning, a representation of the starting point (be it in a drag, resize, or distort operation), breaks transience and doesn't allow for quick before/after comparisons. Also, it doesn't allow “snapping to itself”, or snapping, mid-drag, to the former positions of nodes and curves.

 

This, in and of itself and depending on what exactly you are trying to achieve (geometric/rigorous drawing with modules being a poster example), can be a severe usability hindrance that should be addressed either through a modifier (which would be very unlikely, as you have probably run out of them already) or a *very* visible toggle (much like basic stuff that you may or may not wish to do on a per-document or per-operation basis, like snapping or “scale strokes and effects” – which, incidentally, doesn't have a visible toggle in Ai, AFAIK).

 

So, what do you think? Is it in the cards? Pretty please? ;)

Link to comment
Share on other sites

  • Staff

 

 

This seems to be a common thread with AD; It's not that I don't want to give it fair a chance; it's just that *every* seemingly basic and expectable timesaver from my regular workflows under Ai seem to have gotten “lost in translation”. And it really frustrates me, because I do recognize just how much of a leap in functionality and attention to UX AD really is… except for my workflows. I really, honestly, can't even begin to [re-]make some of my favorite projects in AD. 

 

Hi JGD,

If you wan to give it a fair chance don't compare a software that's in beta and doesn't even have a first version released with another in the market for decades, which have seen 18 versions.

 

Off course there's lot of stuff unfinished or lacking. You are working with a development version. If there's features you're missing just post them in the Feature Requests section (ideally one per thread so others can comment and follow more easily). That's the idea of a public beta...

Link to comment
Share on other sites

JGD,


 


Not sure I fully understand exactly what you meant by “Snapping to ghost objects…” but here is something I discovered in playing around with AD that you may find useful.


 


This was not intuitive at first but now that I understand what you can do it is really quite easy.


 


If you have several paths made of of say about four segments each of add shapes. Now you want to snap one point of an entire object to one point on another. Using the move tool you may not be able to do this because the move tool will create a bounding box when you select an object and the point you need to snap to a point on another object does not line up with any corner. Plus if you try to move the selected object by a point that falls on a corner you will end up resizing the object.


 


Here is how to do it easily using the “Node Tool”.


 


First a short explanation of behavior of that tool I discovered. Even if you have several paths that overlap each other you can still select every node of any path using this technique without any other path getting in the way. First with the node tool click on the path you wish to select, then drag a selection rectangle around the entire path to select every nod on it. This action will not select any nodes from other paths even if they fall inside the selection rectangle.


 


Once all the node are selected you can then move the entire path by clicking on any node and dragging the entire path around by that node. When you get over a node from any other path the two nodes will snap to each other.


 


You can also use this same technique if only selecting one or any number of nodes on the path.


 


In the cue of selecting the entire path nodes it will not distort the path as you move it around.


 


Hope this is helpful in some way.


 


Max



OS X Ventura 13.0.1, Mac Studio M1 Max, 27" Apple Studio Display, 32 GB SSD. Affinity Universal License for 2.0.

Mac User & Programmer since 1985 to date. Author of “SignPost” for vinyl sign cutting.

Link to comment
Share on other sites

Hi MEB,

 

Well, while it may not seem so, I will be giving it a fair chance, rest assured. I was just venting some of my frustration at the fact that my favorite kind of projects, which would make for the best benchmarks for performance and usability, have been immediately stopped at their tracks. You see, I have been very busy, and I mostly work on InDesign in a corporate, production environment. It's not like I can create AD (or APub, when available) projects without approval from the upper management, so the only remaining venues for testing would be, well, my personal side projects.

 

I will instead, of course, do different projects here at my job (like pure, hard-core vector drawing saved in .PDF which I can later paste into Ai files or link to in ID documents, the kind of stuff that doesn't impact management or my colleagues as it doesn't create a dependence on a new piece of software) that doesn't require that level of snapping precision and those specific, time-saving shortcuts to test for bugs (and not just ommissions), because I'm not temporarily freeloading or anything; I signed for a public beta, which is, I'm guessing, a two-way street, and I intend to correspond to your expectations as well in due time (before the beta period is over, obviously). And, unlike some other products from the competition (you know which), I also very much intend to buy AD on release day, even in its current RC/GM 1.0 incarnation, as your openness bodes well as far as feature parity with the competition is concerned, and because you have to get paid somehow in order to keep fleshing out this fine piece of software and its upcoming siblings. :)

 

And, while I do concede that I have been fairly impatient as of late (I said as much on an earlier post, on the “Beta Update” thread), you must also recognize that I'm doing precisely what you just suggested. We are, as far as I can tell, posting inside of the “Feature Request” section, and the feature request I am doing right now is a very precisely defined one (I'm sorry if my venting about its lack thereof sounds off-topic or in bad form, but at least the *subject* of said venting is very much on-topic). I also asked if it “[was] in the cards”, so a simple Y/N answer, preferrably but not necessarily followed by a rough ETA, would suffice (as it has on other occasions). ;)

 

Anyway, with this RC thing and whatnot I guess you must be under stress, and hearing frustrations from users which are not [yet] even depending on your software for their bread-and-butter won't help much, so I'll try and keep those to myself henceforth.

 

As always, keep up the great work! :)

Link to comment
Share on other sites

Hi Max,

 

Thank you for your suggestion! Well, I had reached that conclusion already and, in fact, it was the subject of some deep, long (TL;DR?) musings on my part on the aforementioned “Beta Update” thread. The suggestions you gave are still not the ideal scenario, so you'll probably be happy to try a new (and already implemented) feature that was also mentioned in that thread by MattP, which makes working with the Node tool and selecting multiple nodes in complex projects much more palatable:

 

Try selecting multiple curves with the Move tool, then switch to the Node tool, and then pressing Command+A (or use the menu item Select > Select All). Cool, right?

 

You will find that, while not as quick to use as Illustrator's default behaviour of selecting all nodes when toggling from the Selection to the Direct selection tool while having selected objects previously (some people, devs included, don't really like that behaviour at all, which explains why it wasn't and probably never will be implement in AD) or just toggling from the Selection Tool to the Direct Selection tool using Command (this one, as I said, would be a good compromise as it's difficult to trigger by accident), it's much easier than Shift-clicking all nodes or dragging a selection Marquee (even with the “Marquee Select on Touch” preference unchecked – which I will leave checked as makes AD behave much like Ai –, there might be smaller overlapping/adjacent/neighbouring objects which could fall into that Marquee as well) like you suggested. You should try it yourself some time, it's intuitive enough and much quicker. ;)

 

As for the feature I was requesting, I will show you a screenshot of what I'm referring to (it is, after all, something a bit difficult to explain in a straightforward way in plain text). You see, both our mutual suggestions are complimentary to that functionality, since it could pertain not only to the Move tool and simple bounding boxes or regular geometric shapes, but also to the Node tool and curves as well: [see attachments]

 

See? When you move an object in Illustrator, it shows you the object still rendered in its original position, and an “outlined destination ghost” that serves as a (sub-optimal, IMHO) preview of where it will end up when you finish the drag operation. But, while sub-optimal, it has the added UX benefit of allowing you both to do an immediate before/after comparison *and* to snap an object to “itself” (the future position to the original position, that is), mid-drag, just like my screenshots demonstrate.

 

The suggestion I'm making is having AD do sort of the reverse behaviour of Ai, namely rendering the object while moving as it already does (which, I'm guessing, is possible because of OpenGL and Affinity's leaner, more modern engine), while still keeping an “outlined origin ghost” in the *original* position instead. It would be much, much more intuitive than Ai, while still allowing to perform said comparisons and snapping. ;) Also, snapping a duplicate to its original would behave in pretty much the same way, with the difference that both objects would be fully rendered (also, while I'm at it, I might as well add that I just noticed, while doing the second screenshot, that Ai doesn't render Nodes during move operations on either the fully-rendered original object or the “outlined destination ghost”, even when using the direct selection tool; AD could easily one-up Ai and render those on the proposed “outlined origin ghost”, at least while dragging using the Node tool, which would be a killer feature for geometric node/snap-freaks like myself). Alas, none of these functions are yet possible in AD and, as I said, MEB's response was inconclusive as to their ETA, but being such basic features I'm hoping we will see something along these lines implemented before long. :)

post-440-0-69461900-1411121019_thumb.png

post-440-0-63682600-1411122443_thumb.png

Link to comment
Share on other sites

  • Staff

JGD,

I understand one can become frustrated when the software isn't doing or is missing something obvious. But the point is, this is just the beginning, you must assume that a lot of stuff will work differently from your usual software (and that's good if it does it better) and some features will still be missing. I've been following the development of Affinity almost since the beginning and things are improving a lot with each new beta/release. Just give them some time and i'm sure all those things will be refined/fixed. Just make sure to post them as you find them. By the way, i do not work for Affinity, i'm just an user like you. I just think people sometimes have unrealistic expectations about the software. This is just a beta of the first release!

Link to comment
Share on other sites

  • Staff

Speaking as the snapping guy, any reasonable feature request is welcome.  I'll admit, I've taken the approach of designing the thing from the bottom up without too much reference to other apps.  We initially looked at many apps and tried to cherry pick nice snapping features from them all.  The result was not good.

 

So, I recently rewrote it again, but with a more flexible and modular approach, taking what we learnt but doing it our way.  Under the hood, snapping has been reduced to a small number of primitive types, and the choice of what snaps and how is now more controlled by individual tools (this had benefits for the Pen/Node tool) and has been opened up to allow future improvements to be made more easily.

 

All of what you have described is easily achievable with the current snapping engine.  But, as MEB says, I am being careful about what features go into snapping now so as to not make it too complicated and keep it useable.  It's a fine balance - common use, versus a whole list of options and toggles for special cases.  I also have an eye on future features that we intend to add.

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

Hi Ben,

 

I realize you are being careful and all, but… Showing live and actionable “ghosts” (whether they are from the before or after state), thus allowing both for immediate before/after comparisons and advanced ways of working with objects is just plain good UX (I do admit that in some use cases it may not be useful, and if you think that it may confuse novices or more artistic-bound illustrators, by all means make it a custom preference, which doesn't even have to be the default), and the ultimate time-saver for many, even with *a lot* of objects present in a document and a lot of snapping going around (again: that's what fine-grained snapping customization – which you provide already, and in a clean fashion at that – and layer management – which seems poised to become a much nicer and cohesive experience in the Affinity suite than in any of Adobe's applications – are for).

 

Allow me to give you a very specific example: I “made” this isometric grid to place objects (to make one of those background textures I alluded to) … Except I did not have to make a grid per se, I just had to make one grid module (which I promptly deleted afterwards, so as not to leave my document littered with extraneous objects), duplicate it in order to make two appropriately staggered columns, and then further duplicate the whole thing exponentially on the x axis (nevermind the fact that I also took the time to change the scale of each of the rows afterwards; that was just an added bonus, my personal touch of sorts, to create a density gradient instead of relying on opacity alone).

 

Did I use the distribute function? No, absolutely not. That wouldn't allow me to have fine control over absolute distance values, and make an already established design grow to fit my needs while keeping the grid unchanged. The easiest way to achieve that is to start with a module, with said discrete distance values, and duplicate the whole thing, as I said, and, if necessary, to keep doing that to bigger and bigger blocks. And the quickest way to do that, without having to resort to “auxiliary objects” or custom background grids to keep things snapped and in check is to just be able to duplicate stuff and snap it to itself. Please check the linked YouTube video I made. It is, IMHO, a pretty strong use case for the feature I am requesting…

 

Snap to Ghost Objects in Adobe Illustrator

 

How could I, pray tell, do such a thing in AD as quickly and simply as I can right now in Ai, relying on such a basic (and pervasive) function? Well, Corel doesn't have it (and you might have heard that professional designers don't usually take Corel very seriously), Serif's own DrawPlus doesn't have it (and, with all due respect – and professed admiration for what you managed to achieve in such a short timespan –, I must confess that I had never even heard of Serif until the whole CC debacle came about, so you really have to thank Adobe and its own hubris for you being in the spotlight right now), but the hugely popular and sorely missed FreeHand had it (I vividly remember using the very same workflow under MX) *and* the (by some, and in some regards, begrudgingly soon-to-be-abandoned industry standard) Illustrator has it. Well, this is one of those cases where a teensy little feature can make a world of difference and either turn people away from your software package or, in case that's not really an option (and, in my case, it probably won't be, on strictly financial grounds), leave them frustrated with a lesser experience.

 

What people really, absolutely hate about Ai (also about CC and CC, in part, but mostly about Ai) is the fact that it's a crumbling, cumbersome, unwieldy, bloated, buggy old piece of software with very, very bad drawing/pen/node tools (yes, they are *that* bad) and distributed under a draconian licensing scheme, not the fact that it has a lot of interface elements and tools (seriously… if I wanted a simpler interface I'd turn to Sketch/iDraw and Pixelmator/Acorn – as for DTP software, I'd just be SOL because besides the infamous and expensive QuarkXPress, there are no viable alternatives –, and I don't even think that Ai's preference options are *that* excessive or confusing… As for the tools, it's not the sheer number that's the problem, but the unintuitive and sluggish way some of them work). To add insult to injury, FreeHand was a much better piece of software, and Adobe killed it off and only salvaged but a few useful functions (the belated multiple artboards come to mind, but replacing the god-awful pen tool should've been a top priority, muscle-memory be damned)… Fortunately, AD captured some of the spirit of FH's drawing features, I'll give you that. But you really shouldn't chuck some of Ai's and FH's best and *standard* object manipulation features in the name of user-friendliness (and even that is debatable) just for the sake of it…

 

I'm sorry for my apparent narrow-mindedness, spoiled-bratness, self-entitledness and impatience, and for sounding a lot like Henry Ford's customers (who just wanted a better, faster horse), but right now, most of us just need “a better, faster Illustrator” and “a better, faster Creative Suite” (for the opposite approach, take Macaw or Capture One, for instance… Though they are, indeed, positioned as alternatives to Adobe's offerings, they are most definitely not just a better, faster Fireworks and Lightroom, but wholly different products; Affinity Suite, on the other hand and judging from the promised feature set and even the product branding, is squarely positioned as a better CS6 Design Standard – though not as mature, it indeed seems much better and more cohesive from the get go – sans Acrobat Pro, so having me and others venting on the forums is not only expected, but unavoidable – and a great sign that we *do* care deeply about the future of this Suite and its viability in the market at large as a replacement for CS/CC). I'm not usually one to spew FUD, but I am personally afraid (as it's in mine and the other current users' best interests that the total number of adopters is as big as possible) that you will face a tough, uphill battle if you keep the learning curve too steep and the feature set (both current and promised) and muscle-memory (bear in mind that there's “good muscle-memory” and “bad, mental-RSI-inducing muscle-memory” – can you tell I really *hate* working in nodes in Ai on account of its technical limitations and lack in geometric rigour?) economies of scale too limited. Not being able to deliver fully in v.1 is not really a problem in and of itself, but outright eschewing some much-needed features from the development roadmap may just well push some people away for good (I am not saying I fit into that camp, but I'd very much like to have strong arguments to convince as many colleagues as possible and, dare I say it, my own boss). :/ Just my €0,02…

Link to comment
Share on other sites

Hi again Ben,

 

Being the snapping guy, this should be of great interest to you… I just remembered something that could alleviate the lack of said snapping behaviour (though I, once again, must stress they aren't mutually exclusive and we would be better served by having the option to toggle either or both): a function implemented, inexplicably, only in InDesign and not Illustrator, which I'd call “auto-distribute” (in fact, it's officially called “Smart Spacing”).

 

Apparently, ID can extrapolate from a single gap and allow you to do cumulative, exponential duplicates (or take pre-existing, diverse objects such as logos) and evenly line them up, automagically and on the spot, without resorting to the techique I demonstrated on that YouTube video… It can also detect evenly distributed objects and match new ones (or duplicates) to that implicit “grid”. So, that would definitely be a very useful function to look into, as it would also be easily fitted into the snapping drop-down menu (though I sometimes use that function, more often than not I find it a bit frustrating in ID that I can't turn that off quickly via a keyboard shortcut or interface element; the quickest way is to turn off smart guides altogether, but that's like throwing the baby out with the bathwater as I may wish to deactivate only that “Smart Spacing” portion while keeping the rest – and, in order to do so, I have no other option than to go to the cumbersome preference panel, which is plain stupid for a function that should be toggleable on a need-to basis). Also, I'm pretty sure most of the snapping functions will very much look the same across Designer and Publisher (and Photo, too?), so… if you could add that, more points to you as you would simultaneously one-up Ai and ID! :)

Link to comment
Share on other sites

  • Staff

We do appreciate all feedback from our users.  I want to stress though, that we do not dismiss any requests... and you could give us a little more time to respond. We are, however, a relatively small team, and so all features need to go into a prioritised list.  As I've indicated a number of times, snapping is nowhere near finished.  I have a bunch of features that are presently disabled due to not being good enough (yet), and a whole list of features I intend to add over time.  I have every intention of making our snapping features the standard, but it's a delicate balance.  What may be a useful feature to one person in what they produce or how they work may prove to be obstructive or annoying to another.  So, we have a bunch of options to try alleviate that - it's unavoidable.  The difficulty for us is deciding how to group those options to enhance work flow and how to balance them.  Another difficulty is scalability - how we handle manipulation of large numbers of objects, and how we scale back when it impacts on performance significantly.  Snapping is a good example of how complexity can quickly cripple a tool.

 

I am at present tied up with PSD import/export.  Once I'm done with that I will have more time to look at snapping again.

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

  • Staff

Yes, as Dale says - we have gaps and sizes detection for placement and sizing of objects.  Since the rewrite, I've had to disable it as it required a little more thought than I had time for. We used to deal with single objects when snapping, which was simple - the new engine provides multi-object snapping, so the way I form the snapping results is now more complex.  It will go back in as soon as possible.

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

Hi Ben,

 

Thank you for the heads-up. I am aware developing such a complex piece of software must be hard, especially for a small team like yours. The thing is, you got us all stoked… so please take my nitpicking as a compliment. ;)

 

As for my apparent obsession with Ai workflows, make no mistake about it: I can and will adapt to AD. But… some minimal functionality must be present, and I can't stress this enough: for moderately rigorous geometric drawing (I am not talking about full-blown technical drawing – which can be better achieved with a proper CAD package –, though I sometimes use Ai to do some light technical drawing myself), some degree of self-snapping, intersection detection, snapping to outlines, et cetera, must be present (be it activated by default, toggleable, that is your decision to make).

 

I'm sorry if I sometimes may be pointing out stuff you are either actively developing or temporarily deactivated on account of it being buggy/unfinished (which most of us, being potential Ai switchers, can live with as we have it already installed on our work computers as a fallback); it's just that I wish to make sure that the gridniks' point of view and use cases are at least taken into account during development, and keeping up with the forums from this side of the fence is not exactly easy either (I will, however, try to search them more thoroughly before posting and to stay on topic). I understand that while Ai is super versatile, and said versatility usually equates to feature creep and UX degradation, its failings ultimately lie in its horrid pen/node tool, terrible performance, and unexcusable incompatibilities with ID; therefore, it stands to reason that if Adobe managed to cater to such a vast crowd even early on and with such functional ailments, so can you (especially when your recent achievements are taken into account), with the added help from the community and the benefit of a fresh start. I mean, I'm talking about pretty basic stuff here; I never even mentioned more advanced stuff like gradients, blends, auto-tracing, etc., and it was actually you who surprised me with the whole 3D grid thing being in the pipeline, for instance. ;)

 

Anyway, as usual, I digress… You see, unlike before, I've been using AD a bit more as of late (especially since, you know, I am intending on *buying* it :P ). Right now and just for kicks, I'm trying to do basic stuff like building an equilateral triangle (weirdly, the triangle shape tool, when shift-constrained, doesn't actually produce such a triangle by default, but an isosceles triangle instead) and drawing a circle that touches its vertices, and I'm having a really, really hard time getting it even half-right and rigorous. On that regard, I'll be sure to send you discrete bug reports for each particular snag I've hit along the process.

 

So, to wrap it up: while I may come across as impatient and self-entitled, the truth is I'm absolutely, positively excited by the Affinity Suite and your development ethos; it's much more similar to Google's “perpetual Betas” and the “new” Apple's Public Betas than Adobe's, err, “pseudo-Cloud” extortionate thing, and gives me and my colleagues hope in a better professional future with better tools. That we can try (I'm not holding my breath here, just giving you informed guesses and warnings in our collective best interests) and have our favourite tools and UX nuances implemented is just the icing on the cake. ;)

Link to comment
Share on other sites

  • Staff

Quick suggestion - for an equilateral triangle - try using creating a constrained Polygon and give it three sides.

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

  • Staff

To create an equilateral inside a circle, first create the constrained circle, turn on snap to bounds, then create a polygon using the snapped bounds of the circle, and set the side count to three (works for all polygons).

 

post-17-0-53517300-1412166932_thumb.png

 

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...
×
×
  • 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.