Skip to main content
Participant
May 19, 2015
Question

What is difference between plug-in and extension and what are their capabilities?

  • May 19, 2015
  • 1 reply
  • 3795 views

I am trying to estimate what it is about to develop something for Illustrator.

I have found Illustrator Developer Center | Adobe Developer Connection but it raises more questions that it answers.

1. What is a difference between a plug-in (which seems to be supposed to be written in C++) and an extension (which seems to be supposed to be written in HTML/JS)? What they are for / what is basically possible with them?

2. What languages are really supported?

3. Is there some more newbie friendly documentation that the one linked from the page?

4. We need to extend a path in Illustrator such that it adds two new anchors to each of the point on the path (I mean the points which are between path segments; so the point will have up to for points - one per each path segment starting from the point and two specific for our plug-in). Based on that (the path with points and segments, and our new anchors) we want to compute a new outline as a new layer (or in a user-specified layer). Is this or something like this possible? What would you suggest as the best extension points/strategy to achieve that?

This topic has been closed for replies.

1 reply

Inspiring
May 20, 2015

alikforum wrote:

I am trying to estimate what it is about to develop something for Illustrator.

I have found Illustrator Developer Center | Adobe Developer Connection but it raises more questions that it answers.

1. What is a difference between a plug-in (which seems to be supposed to be written in C++) and an extension (which seems to be supposed to be written in HTML/JS)? What they are for / what is basically possible with them?

2. What languages are really supported?

I would say a plugin is a shared library loaded by Illustrator from the Plug-ins folder and an extension is something that is installed by the Extensions manager. A hybrid extension is an Extension Manager installer package that includes both a plugin and an extension.

A plugin is written in C++ using the Illustrator SDK. An extension is written in either flex and actionscript or html and javascript. Normally the extension provides the UI and the plugin handles the interaction with Illustrator.

3. Is there some more newbie friendly documentation that the one linked from the page?

Most of the documentation is not very newbie friendly.

4. We need to extend a path in Illustrator such that it adds two new anchors to each of the point on the path (I mean the points which are between path segments; so the point will have up to for points - one per each path segment starting from the point and two specific for our plug-in). Based on that (the path with points and segments, and our new anchors) we want to compute a new outline as a new layer (or in a user-specified layer). Is this or something like this possible? What would you suggest as the best extension points/strategy to achieve that?

Not sure exactly what you are trying to do, but you can almost certainly do it with a plugin, but may also be able to do it using scripting:

http://www.adobe.com/devnet/illustrator/scripting.html

Rick E Johnson
Inspiring
May 21, 2015

Hi, I'm also not sure what you were trying to do, but it sounds like you're trying to find two equidistant intermediate points on path segments, presumably 1/4 of the distance, and create anchor points. AppleScript doesn't support plotting points along  segment, JavaScript might, and plugins definitely do. The trade-off is that plugins run quickly but take longer to create, while scripts are more limited and run slower, but can be written fairly quickly. I use a combination of both, depending on the task that needs to be done. Perhaps you could script the native function Edit -> Paths -> Add Anchor Points and create the new layer to move your duplicated path. Best of luck! -- Rick

alikforumAuthor
Participant
May 21, 2015

Hi Leo and Rick, we are willing to create something which will compute a path/region based on something the user already has drawn. For this we need to have a path (or set of paths) which is defined by a set of points, type of lines between and anchors defining these lines (for example, the most commonly used is cubic bezier line which is defined by two points and two anchors). Up to this, everything is fully available in each vector drawing application. However, on top of that, we need something special for our calculation. The special thing needs to be tied to each of the points (for example, it might be two more anchors, a line, a closed path) - one special data for each participating point.

Our code will use that information - that standard one and the special one - to calculate its output which will be separate from the input (it will be put in a separate layer). Our code should recalculate its output every time the input is changed or is just being changed (the user should have immediate feedback).

I am not sure about being compatible with the scripting approach as the redrawing should be triggered by changing the path, anchors etc. Basically, if the user draws anything on the canvas, our plug-in should automatically trigger and update its result. It also needs to make some decisions and alter its behavior based on them.

Hope, it is now more clear.