An Adobe Illustrator plug-in that visually highlights path endpoints. (A tool I need when editing imported CAD artwork.) The plug-in draws a criss and a cross on all start and end points of selected open paths using the current layer color. The circles are not part of the artwork, but is drawn on the UI layer; using the AIAnnotationDrawerSuite.
This is the Macos version, Windows version is found here.
Written in C.
Based on the HelloWorld project from the getting-started-guide.pdf
in Adobe Illustrator SDK Docs.
Next step: add menu item for turning functionality on/off.
Use Xcode 11.3 (not the latest Xcode).
-
Download the Illustrator SDK
https://console.adobe.io/downloads/ai
-
Place project in the
samplecode
folder -
Open Illustrator. Go to
Preferences/Plug-Ins & Scratch Disks
and set the additional plug-in:s folder toSDK/samplecode/output
-
Build project
-
Restart Illustrator
These things seems to be missing in the SDK documentation for the HelloWorld project setup for Macos Xcode.
-> Targets
-> Build Phases
-> Link Binary with Libraries
Add (+): CoreFoundation.framework
-> Project
-> Build settings
-> Search Paths
Set Rez Search Path to: ./../common/mac
I used the Attributes panel for debug output. Each Illustrator object can have a user note (string) that is displayed in the Attributes panel. This is usually empty, and can be set with SetNote
from the AIArtSuite
.
Plug-in notifiers and timers are used by a plug-in to have Illustrator inform it of certain events. A notifier plug-in is notified when the state of an Illustrator document changes. For example, a plug-in may request to be notified when the selection state changes. A notifier plug-in registers for one or more notifications during start-up. A timer plug-in is notified at regular time intervals. For example, a timer plug-in may request to be notified once a second. For more information, see AINotifierSuite and AITimerSuite in Adobe Illustrator API Reference.
PiPL is updated to latest framework and works with Adobe Illustrator 25.1.
By convention, the entry point is called PluginMain
and is compiled with C linkage:
extern "C" ASAPI ASErr PluginMain(char* caller, char* selector, void* message);
All plugin's recieve at least four message actions (during it's lifetime):
reload
unload
startup
shutdown
reload
seems to be called before startup
and probably unload
before shutdown
for