Illustrator یک سری ابزار دارد ، اما حتی با وجود این همه فراوانی ، همیشه چیزی کم خواهد بود. این جایی است که اسکریپت ها و پلاگین ها به کمک می آیند. با استفاده از آنها می توانید کارهایی را انجام دهید که Illustrator به تنهایی قادر به انجام آنها نیست. در این مقاله ، شما 10 اسکریپت رایگان و مفید را برای Illustrator کشف خواهید کرد!

فیلمنامه ها؟

Illustrator از اسکریپت نویسی از AppleScript ، Visual Basic ، JavaScript و ExtendScript پشتیبانی می کند. هنگامی که فعال می شوند ، آنها عملیات مختلفی را در Illustrator انجام می دهند ، و همچنین می توانند برنامه های دیگری مانند پردازش کلمه ، پایگاه داده و برنامه های صفحه گسترده را درگیر کنند. می توانید از اسکریپت های پیش فرض یا اسکریپت های آماده شخص دیگری استفاده کنید ، یا اسکریپت های خود را ایجاد کنید. برای کسب اطلاعات بیشتر در مورد برنامه نویسی در Illustrator ، به اسناد موجود در پوشه Adobe Illustrator CS3 / Scripting مراجعه کنید.

اسکریپت ها را نصب کنید

اسکریپت مورد نظر خود را بارگیری کنید. سپس آن را در پوشه Adobe Illustrator CS3 / Presets / Scripts قرار دهید تا در زیر منوی اسکریپت ها ظاهر شود. برای اجرای اسکریپت مورد نیاز در Illustrator ، روی File\u003e Scripts کلیک کرده و آن را از لیست کشویی انتخاب کنید.


1) بستن همه مسیرها بستن همه مسیرهای انتخاب شده (بستن همه مسیرها / بستن همه مسیرهای انتخاب شده)

اسکریپت ساده و در عین حال بسیار قدرتمند. به شما امکان می دهد جعبه های متن چند خطی را به اشیا frame جداگانه قاب متن تقسیم کنید ، تقسیم لیست ها ، موارد ناوبری و موارد دیگر را آسان تر می کند.


3) به متن فریم ها بپیوندید

این اسکریپت می تواند کادرهای تقسیم شده متن را دوباره بهم متصل کند. در صورت نیاز به باز کردن یک فایل illustrator قبل از CS یا نیاز به ترکیب چندین فریم متن با یکدیگر ، بسیار مفید است.


این اسکریپت قادر است اشکال گل را از اشکال منظم ایجاد کند. برای ایجاد طرح های عجیب و غریب ، آرم یا فقط آزمایش عالی است.


این اسکریپت می تواند از شکل هایی که ایجاد می کنید قوس های اتصال دهنده ایجاد کند. هنگام ایجاد اشکال رایج برای ایجاد اشکال پیچیده تر برای آرم ها ، نمادها و تصاویر بسیار مفید است.


6) انتقال CMYK به Pantone v.2 (CMYK به Pantone v.2)

این اسکریپت دقیق ترین مطابقت پنتون را برای یک رنگ CMYK مشخص برای شما انتخاب می کند.


7) رنگ های مختلف / تصادفی سازی رنگ ها

این اسکریپت یک بیضی با تعداد مشخص شده از نقاط اصلی ایجاد می کند. ممکن است ساده به نظر برسد ، اما این عملیات روند ویرایش حلقه ها ، ایجاد قلم مو ، اشکال پیچیده و موارد دیگر را آسان تر می کند. Illustrator دارای یک ویژگی است که نقاط اصلی بیشتری به یک شکل اضافه می کند ، با این وجود نمی توانید تعداد نقاط اصلی خاص را اضافه کنید.

میکرواستوکر و تصویرگر اولگا زاخاروا مجموعه فیلمنامه های خود را که روزانه در کارهای خود استفاده می کند به اشتراک گذاشت. این شامل اسکریپت های هم برای ایجاد تصاویر و هم برای خودکار کردن برخی از گردش کارها در Adobe Illustrator است.

همانطور که احتمالاً قبلاً متوجه شده اید ، من همیشه سعی می کنم تا حد ممکن گردش کار را بهینه کنم :) و امروز می خواهم در مورد چندین اسکریپت برای تصویرگر برای شما بگویم که در این زمینه بسیار به من کمک می کند. با کلیک بر روی نام اسکریپت ، به مکانی که می توانید آن را بارگیری یا خریداری کنید ، منتقل می شوید.

بستن همه مسیرها

هزینه: رایگان است
او چه می کند: از شر مسیرهای باز که نباید در تصویر موجود باشد خلاص می شود

برای ارسال یک تصویر برداری به سهام ، باید تعدادی از "قوانین" را دنبال کنید - به ویژه ، پرونده را از مسیرهای باز پاک کنید. به هر حال ، یافتن تعداد آنها در سند بسیار آسان است - شما باید همه چیز را انتخاب کنید (ctrl + A) ، به منوی بالا بروید Window-Document Info - در پنجره ظاهر شده ، منو را در بالا رها کنید راست را انتخاب کنید و Objects را انتخاب کنید. اگر Open: 0 در پرانتز در کنار Paths نوشته شده باشد ، تبریک می گویم ، هیچ خطایی در تصویر شما وجود ندارد (حداقل در مسیرهای باز). اگر عدد بیشتر از صفر باشد ، این یک نقض قوانین سهام است. و من نمی دانم که چقدر زمان صرف می کنیم تا به دنبال این مسیرهای باز غالباً کاملاً غیرقابل درک باشیم که از کجا شکل می گیرد ، اگر نه این اسکریپت شگفت انگیز رایگان - پارچه تمام مسیرها ، که معمولاً به شما امکان می دهد تمام مسیرهای باز را در کمتر از یک دقیقه ، بدون مزاحمت جستجوی دستی آنها. در این حالت ، خود تصویر اصلاً تغییر نمی کند. الزامی برای همه سهامداران!

پاک کن جادویی

هزینه: $5
او چه می کند: آثار هنری را تا لبه صحنه برش می دهد و همه اشیا outside خارج از تخته هنر را از بین می برد
یک فیلم نامه جادویی ، که بدون آن دیگر نمی توانم زندگی خود را تصور کنم. مخصوصاً برای کسانی که دوست دارند الگوهایی درست کنند بسیار مفید است ، اما من از آن به معنای واقعی کلمه برای هر تصویر استفاده می کنم - بنابراین من را خراب کرد. به جای اندازه گیری یک مربع یکنواخت برای قرار دادن آن در زیر پس زمینه ، من آن را به سادگی بزرگتر از سطح کار می کنم ، و پس از اتمام نقاشی ، پاک کن را روشن می کنم - و این همه چیزهای غیر ضروری را از بین می برد.

وقتی تازه می آموختم که در Illustrator نقاشی می کشم و سعی کردم اولین الگوهایم را بسازم ، از فرایند بریدن قطعات غیرضروری و جستجوی "مانده های" کوچک بسیار افسرده شدم. به نظر می رسد همه چیز را پاک کرده است - شما اندازه را بررسی می کنید ، و یک مربع مساوی وجود ندارد ، اما مثلا 2001.38 به جای 2000 پیکسل ارتفاع. و شما دوباره به دنبال جستجو می گردید - ریز قطعه اضافی برش خورده ، اما حذف نشده در آنجا گم شده است ... اکنون همه الگوهای من همیشه کاملاً مربعی هستند. و من به طور قطع می دانم که وقتی می خواهم آنها را تکثیر کنم ، با "loose fit" و سایر اشکالات زننده روبرو نخواهم شد. Magic Eraser و همه چیز را در اطراف لبه برش می دهد ، و همه چیزهایی را که بریده می شوند از بین می برد.

لازم به یادآوری است که هنگام پاک کردن یک پرونده سنگین ، پیشرفت اسکریپت بلافاصله نشان داده نمی شود (یعنی برای چند ثانیه - گاهی اوقات 10-20 - نوار پیشرفت ممکن است خالی بماند) ، مهمترین چیز این است که دست نزنید آن ، اما به نوشیدن چای و قهوه ، قطع خواهد شد. او گاهی اوقات به مدت 15-20 دقیقه بر روی خشخاش نسبتاً زیرکانه آثار آبرنگی را برش می دهد ، اما همه چیز راحت تر از دستی است - آیا می توانید تصور کنید که چند قطعه اضافی وجود دارد؟ :)

رنگهای مختلف

هزینه: رایگان است
او چه می کند: اشیا selected انتخاب شده را با رنگهای تصادفی رنگ آمیزی می کند

من می خواهم هنگام ترسیم گلهای برگ ، از این خط استفاده كنم ، وقتی "ذرات" مختلف وجود دارد كه باعث می شود آنها را در یك رنگ نقاشی كنند خسته كننده است. برای استفاده از اسکریپت ، باید یک عدد از 0 تا 100 وارد کنید که نشان دهنده "دامنه" گسترش رنگ های جدید رنوم است. هرچه عدد بزرگتر باشد ، تصویر رنگی و متنوع تر خواهد بود. من معمولاً 15-25 وارد می کنم ، این برای من کافی است :) فیلمنامه از رنگ اصلی تصویر رقصیده است. برای افزودن الهام و تنوع به تصاویر مناسب است.

گوشه های پویا

هزینه: 82 دلار (برای مجموعه ای از چهار اسکریپت ، نمی توان یکی را جداگانه خریداری کرد)
او چه کاری انجام می دهد: گوشه ها را به صورت پویا گرد می کند ، به شما امکان می دهد در هر زمان به عقب برگردید و شعاع را تغییر دهید

به طور کلی ، این اسکریپت یکی از چهار اسکریپتی است که در بسته کاتب بردار از خالق مشهور فیلمنامه Astute Graphics گنجانده شده است. همه آنها بسیار عالی هستند ، اما از هر چهار من هنوز فقط از بلندگوی گوشه ای استفاده می کنم ، زیرا من فقط توانایی کامل عملکرد دیگران را ندارم :)

این اسکریپت نه رایگان است و نه ارزان - بسته کاتب Vector $ 82 دلار هزینه دارد ، اما شما می توانید نسخه آزمایشی را بارگیری کرده و به مدت 30 روز به صورت رایگان امتحان کنید. Vaughn Glitchka با گوشه های بلندگوی فیلمنامه مرا اغوا کرد (به یاد داشته باشید ، من در مورد آن صحبت کردم دوره های lynda.com) ، با بیان اینکه این اسکریپت را در عمل امتحان کرده ، تصور اینکه چگونه او بدون آن زندگی کرده غیرممکن است. و این درست است.

من آن را بارگیری کردم تا آزمایش کنم - و آنقدر به آن عادت کردم که دور هر گوشه ای ، که مجبور شدم پس از پایان دوره آزمون به آن برگردم ، به نظر می رسد یک ابزار فوق العاده تاریخی و دست و پا چلفتی است ، انگار که در حال پوست گرفتن هستی سیب زمینی با تبر ... و من تصمیم به خرید - و متاسف نیست. این امر به ویژه در ترسیم گرافیک ، اینفوگرافیک و آیکون ها و همچنین هر چیزی که می توان با استفاده از اشکال ساده و یک پنتول ترسیم کرد ، مفید است. کسانی که منحصراً با یک قطره با برس نقاشی می کشند به سختی به آن احتیاج دارند

اتوسویور

هزینه: رایگان - پس از ثبت نام
او چه می کند: به طور خودکار آثار هنری را در فواصل زمانی مشخص ذخیره می کند

این اسکریپت از قبل در لیست موجود بود ، زیرا تاکنون خوشبختانه هیچ لحظه ای نبوده است که فرصتی پیدا کنم تا آن را در عمل امتحان کنم. اما از آنجا که برای برخی منطق های نامفهوم ، تصویرگر فاقد عملکرد "ذخیره خودکار" است ، این اسکریپت تاکنون تنها راه حل مشکل خروج ناگهانی و از دست دادن همه داده ها است. در عرض شش ماه ، تصویرگر بدون هشدار پنج یا شش بار پرواز کرد ، و البته هر یک از آنها - چند ثانیه قبل از صرفه جویی در یک برنامه جهانی ، که زمان قابل توجهی از زمان کار را صرف کرد :) من واقعاً می خواهم باور کنم که این پلاگین به دفعات بعدی که لوسترهای پرنده پرواز می کنند ، به حداقل ضرر کمک می کند.

پس از نصب ، هنگام ایجاد سند جدید یا باز کردن اسناد قدیمی ، اسکریپت به طور خودکار اجرا می شود. شما باید یک دوره ذخیره را انتخاب کنید (همچنین می توانید انتخاب کنید که آن را ذخیره نکنید ، اما به شما یادآوری می کند که ذخیره کنید - ظاهراً در صورت ترس از بازنویسی تصادفی پرونده).

به طور کلی ، شما می توانید صدها اسکریپت متنوع را در اینترنت پیدا کنید ، اما امروز من فقط از این پنج اسکریپت استفاده کردم که یک بسته اسکریپت پولی از Astute Graphics خریداری کردم ، که به معنای واقعی کلمه دنیای من را برعکس کرد :)

من اغلب در مورد چگونگی نصب اسکریپت بارگیری شده / خریداری شده از من سال می شود ، اما افسوس ، من به شما کمک نمی کنم ، زیرا این به سیستم عامل و نسخه آن بستگی دارد. در سطح جهانی ، ایده این است که پوشه ای را که در آن تصویرگر دارید پیدا کنید و پوشه ای را که با جست و جو در آن قرار دارد پیدا کنید. با استفاده از جملاتی مانند "نصب اسکریپت ها در illustrator on ... (نام سیستم عامل و نسخه)" ، می توانید به راحتی دستورالعمل مورد استفاده را پیدا کنید.

پس از نصب اسکریپت ، دسترسی به آن از طریق منوی بالای پرونده - اسکریپت ها - انجام می شود و سپس می توانید اسنادی را که اکنون نیاز دارید انتخاب کنید.

معمولاً ، وقتی صحبت از نرم افزار برای طراحان می شود ، توجه اصلی به توانایی های هنری برنامه ها - ابزارهای رسم ، فیلترها و غیره توجه می شود. اما در زندگی روزمره باید با کارهای روزمره کنار بیایید. خوشبختانه ، اکنون نرم افزار Adobe (از جمله Illustrator) از نوشتن اسکریپت هایی پشتیبانی می کند که به شما امکان می دهد کار یکنواخت را بر روی شانه های دستگاه قرار دهید. و دیگر در Illustrator کار نمی کنید - آن را کنترل می کنید و اینها ، همانطور که در اودسا می گویند ، دو تفاوت بزرگ هستند!

با درک اینکه اکثریت قریب به اتفاق کاربران Illustrator هنرمندان و طراحانی هستند که با برنامه نویسی روبرو نشده اند ، سعی می کنم مروری بر عملکرد اسکریپت ها داشته باشم تا خوانندگان تصور نکنند که این درس به نوعی ذهنیت "خاص" نیاز دارد و آموزش ویژه طولانی مدت. در عین حال ، به دلیل در دسترس بودن مطالب ، از حرفه ای ها به دلیل برخی ساده سازی ها در متن عذرخواهی می کنم. خود نویسنده یک بار در وضعیت مشابهی قرار داشت و در ابتدا این حوزه را اسقف نشین خود نمی دانست. اما من کمتر از دو هفته به مطالعه پرداختم و اکنون تأیید می کنم: داشتن حداقل درک از برنامه نویسی ، تسلط بر اسکریپت ها یک کار عملی است.

اسکریپت های Illustrator را می توان به هر زبانی نوشت: JavaScript ، Visual Basic (Windows) و AppleScript (Mac OS). از آنجا که بیشتر خوانندگان با کتاب اول آشنا هستند (بسیاری از طراحان چاپ با موفقیت با ایجاد صفحات اینترنتی استفاده می شوند) ، ما به آن اعتماد خواهیم کرد. علاوه بر این ، جاوا اسکریپت مستقل از سیستم عامل است: اسکریپت های نوشته شده در آن هم در ویندوز و هم در سیستم عامل مک کار می کنند. راه دستیابی به عناصر شی گرا است: برای یافتن ، برای مثال ، ضخامت حاشیه عنصر بردار دوم در لایه اول ، باید ساختار زیر را بنویسید:

app.activeDocument.Layer.pathItems.strokeWidth

این را می توان به شرح زیر تفسیر کرد: ابتدا ، شی در بالاترین سطح در سلسله مراتب Illustrator نشان داده شده است (برنامه یک برنامه است ، به اختصار از برنامه استفاده می شود) ، و سپس انتخاب به تدریج به یک عنصر خاص محدود می شود (در سند فعال ، کار در لایه اول ؛ سپس در لایه مشخص شده ، عمیق ترین شی object برداری را انتخاب کنید و ضخامت حاشیه را از آن بخواهید). این روش مراجعه به عناصر بسیار راحت است ، زیرا پیمایش در انواع مختلف موجود در ویرایشگر را آسان می کند. یک مدل کامل از روابط را می توان در توضیحات خوب نوشته شده (همراه با Illustartor) یافت.

براکت های مربع نشان می دهد که مورد بخشی از یک آرایه است. Array مجموعه ای از چندین شی است که توسط یک ویژگی خاص به هم پیوسته اند. به عنوان مثال ، لایه ها ، pathItems ، RasterItems ، GroupItems ، Selection و غیره آرایه هایی هستند که از اشیایی از همان نوع تشکیل شده اند (لایه های سند ، رئوس مطالب برداری ، بیت مپ ها ، گروه ها و ...). شاخص (شماره ترتیبی) عنصر مورد نیاز در آرایه در براکت ها نشان داده شده است. بنابراین ، لایه ورودی نشانگر لایه اول است ، زیرا اولین شاخص همیشه "0" است.

به اشیاer همچنین می توان با نام Layer ["نمودار"] دسترسی پیدا کرد. برای انجام این کار ، عنصر باید صریحاً نامگذاری شود - به صورت دستی ، با استفاده از پالت لایه ها (با دوبار کلیک بر روی نام شی پنجره ای با ویژگی های آن باز می شود) ، یا از یک اسکریپت. برای اینکه هر بار لیست کامل "شجره نامه" را ننویسید ، از منابع استفاده کنید:

pI \u003d activeDocument.Layer.pathItems؛

سپس بخش فوق کد به صورت زیر خواهد بود: pI.strokeWidth.

اگر همه عملیات روی همان لایه فعال انجام شود ، مجاز نیست هر بار به یک لایه به عنوان یک شی اشاره شود. و به خاطر داشته باشید که مورد در نام متغیرها مهم است: اگر برای اولین بار pI و برای بار دوم pi بنویسید ، اسکریپت خطایی ایجاد می کند و کار نمی کند.

در مدل شی گرا ، موارد زیر وجود دارد: خود برنامه ، کلاسها (انواع اشیا، ، یا با استفاده از مفهوم آشنا تر ، اسامی: لایه ها ، اشیا vector برداری ، گروه ها و غیره) ، روش ها (روش های تعامل با آنها فعل است : move ، duplicate و غیره) و خصوصیات (صفت: strokeWidth، fillColor، Select و غیره). برای سهولت در پیمایش ، تصور کنید که یک برنامه کاربردی خانه ای است که در آن اشیا various مختلفی وجود دارد - آنالوگ کلاسها (پنجره ها ، درها) که دارای برخی از خصوصیات (پلاستیک ، چوبی) هستند ، که با آنها اقدامات خاصی را انجام می دهند - روش ها (باز ، بستن). با درک ماهیت چنین سلسله مراتبی ، درک اسکریپت نویسی بسیار آسان تر است.

در بالاترین سطح ، برنامه کاربردی است و به معنای واقعی کلمه پیروی از قانون تبعیت از اشیا ، باید برای هر عملی مشخص شود. برای سادگی ، پیوند به برنامه را می توان حذف کرد - مگر اینکه واقعاً لازم باشد برخی از خصوصیات آن را بدانید (به عنوان مثال ، فونت های موجود - app.fonts).

Classes Layer، Group، Text می تواند شامل اشیایی از همان کلاس باشد که می تواند دارای فرزند نیز باشد. یک ویژگی مفید رویکرد شی object است وراثت خواص بنابراین ، تمام مسیرهای برداری (pathItems) فرزندان یک کلاس کلی تر هستند - عناصر صفحه (pageItems). بنابراین ، با اختصاص ویژگی های خاص به pageItems ، ما به طور خودکار آن و pathItems را اختصاص می دهیم.

با وجود شباهت ، کلاسهای Layers و Layer هنوز متفاوت هستند. اولی مجموعه ای از تمام لایه های موجود در سند است ، دوم فقط یک لایه خاص است ، به ترتیب ، روش ها و خصوصیات آنها متفاوت است. می توانید add ، removeAll روش ها را به روش اول و همه عملیات موجود برای یک لایه جداگانه را به لایه دوم اعمال کنید. این شی مستقیماً به عنوان عنصری از آرایه مربوطه قابل دسترسی است - در مورد ما ، از طریق لایه ها ، لایه ها و غیره.

عنصر انتخاب شده مربوط به یک کلاس جداگانه است - انتخاب ، که همچنین یک آرایه است (گروهی از اشیا را می توان انتخاب کرد). یک حساب ویژه در Illustrator کلاسهای pluginItems، Colors، Views است. مورد اول محدودیت های بسیاری دارد به این دلیل که اشیا of از این نوع برای Illustrator "بومی" نیستند. اینها شامل Blend ، Envelope ، Mesh و موارد مشابه است. ویژگی های بقیه در هنگام استفاده در نظر گرفته خواهد شد.

برای اینکه "اسکریپت" قابل مشاهده باشد ، در پوشه Presets.Scripts واقع در پوشه ای که برنامه نصب شده قرار می گیرد. ما نمونه های واقعی را بررسی خواهیم کرد (این به شما امکان می دهد فوراً مفید بودن اسکریپت ها را احساس کنید) ، و آنها را تحت Illustrator CS می نویسیم ، زیرا نسخه نویسی آن نسبت به نسخه های قبلی انعطاف پذیرتر است.

مثال 1: ترکیب اشیا

بیایید با ساده ترین کار شروع کنیم - یک اسکریپت بنویسیم که اشیا sub تابع را با خطوط اصلی متصل کند (یک کار مشترک هنگام ایجاد نمودارهای بلوکی ، اسناد فنی و کارهای مشابه). و ما در مورد موارد اساسی مانند کار با اشیا selected انتخاب شده ، ایجاد لایه های جدید ، قرار دادن اشیا، ، تغییر ترتیب آنها ، ایجاد و از جمله منحنی ها در یک مسیر ترکیبی صحبت خواهیم کرد.

کار با این نوع اسناد شامل استفاده گسترده از نمادها (نمادها) است - ایجاد تغییر در آنها به طور خودکار تمام نسخه های ایجاد شده را به روز می کند. با این حال ، Illustrator همیشه با چنین عناصری درست کار نمی کند: اتفاق می افتد که نام اشیا that را که کپی نمادها هستند ، نمی خواند. در نتیجه ، انتخاب آنها با نام امکان پذیر نیست. پردازش تمام عناصر این نوع در لایه فعلی کاربرد عملی ندارد. در نتیجه ، من به یک گزینه جایگزین متمایل شدم ، که در آن شما ابتدا باید اشیا required مورد نیاز را انتخاب کنید (ساده ترین راه این است که یک نماد را انتخاب کنید و نسخه های آن را با استفاده از دستور Select.Same Instanc ها جستجو کنید) ، و سپس گزینه محوری که به آنها متصل می شوند.

پس بیایید شروع کنیم به طور خلاصه ، ما متغیر sel را معرفی خواهیم کرد ، که در صورت نیاز به انجام هر عملی روی شی انتخاب شده ، به آن اشاره خواهیم کرد. سپس بررسی می کنیم که چند عنصر انتخاب شده است (اگرچه نویسه های انتخاب شده متن نیز برای آرایه انتخاب اعمال می شوند ، اما بررسی نمی کنیم که هیچ متنی انتخاب شده باشد). اگر (طول sel<2) означает, что мы сравниваем значение length (количество объектов класса sel) с двойкой — минимальным количеством для работы сценария. Если выделенных элементов меньше, будут выполняться действия, заключённые в первые идущие за оператором if фигурные скобки, иначе — идущие после else. При этом логично предусмотреть выдачу сообщения, чтобы сориентироваться в ситуации и понять, что нужно сделать.

sel \u003d activeDocument.selection
if (sel.length)<2) {br> هشدار ("برای ادامه کار کافی نیست! \\ n حداقل 2 مورد و آخرین مورد را انتخاب کنید!"))
دیگر (

Alert یک عملکرد استاندارد JavaScript است که پنجره ای را با متن مشخص شده و یک دکمه OK نمایش می دهد. "\\ N" مخفف break line است و برای کوچک نگه داشتن پنجره استفاده می شود. متن نمایش داده شده در پنجره باید در علامت های نقل قول محصور شود.

مرحله آماده سازی

بیایید مختصات مرکز شی the مرجع را بدست آوریم. از آنجا که به توافق رسیدیم که بالاترین است ، عدد (شاخص) آن "0" (sel) است. برای محاسبه مختصات ، از ویژگی های جسم مانند موقعیت ، عرض و ارتفاع استفاده خواهیم کرد. مقادیر موقعیت به ترتیب در مختصات X و Y در یک آرایه ذخیره می شوند. از این رو ، باید از هر یک به عنوان موقعیت و موقعیت یاد شود.

refObj_x \u003d sel.position + (sel.width / 2) ؛
refObj_y \u003d sel.position - (sel.height / 2) ؛

مختصات مرکز شی مرجع را بدست آوردیم و آنها را برای استفاده بیشتر به دو متغیر اختصاص دادیم. خط دوم حاوی علامت "-" است ، زیرا گوشه پایین سمت چپ سند به عنوان نقطه شروع در Illustrator در نظر گرفته شده است ، و موقعیت مختصات گوشه سمت چپ بالای عنصر را می دهد.

از آنجا که راحتی هنگام کار با یک سند نقش مهمی دارد ، ما اطمینان خواهیم داشت که خطوط ایجاد شده روی یک لایه جداگانه قرار دارند - چنین ساختاری به حفظ نظم در طرح با پیچیدگی های مختلف کمک می کند.

یک لایه جدید ایجاد کنید - مانند هر عنصر Illustrator ، این لایه با استفاده از روش add () اعمال شده برای کلاس جسم مربوطه ایجاد می شود. در براکت ها می توانید پارامترهای عمل را مشخص کنید: شی مقصد را مشخص کنید (می تواند به عنوان مثال یک لایه یا حتی یک سند جدید و همچنین موقعیت در مقصد باشد). بر خلاف اکثر روش ها ، هیچ پارامتر اضافی برای افزودن وجود ندارد ، بنابراین ، برای حرکت به سطح بالا ، ما از یک روش خاص - zOrder استفاده خواهیم کرد ، که BRINGTOFRONT را به عنوان یک پارامتر (یک ثابت رزرو شده ، لیست کامل آن را مشخص خواهیم کرد) در اسناد آورده شده است). اساساً ، اگر فقط یک لایه در سند وجود دارد ، نیازی نیست که موقعیت جدید را به طور خاص نشان دهید ، زیرا Illustrator همیشه آن را بالاتر از لایه فعلی قرار می دهد. اگر اشیایی که باید به یکدیگر متصل شوند در بالاترین سطح قرار ندارند ، خط دوم مورد نیاز است.

newlayer \u003d activeDocument.layers.add ()؛
newlayer.ZOrder (ZOrderMethod.BRINGTOFRONT)؛

خط اول را می توان اینگونه خواند: با افزایش (افزودن) تعداد اشیا of از نوع مورد نیاز (لایه ها) و ایجاد پیوند به عنصر تازه ایجاد شده به متغیر newlayer یک عنصر جدید ایجاد کنید. در لحظه اولیه ، لایه خالی است ، زیرا هنوز چیزی در آن قرار نگرفته است. برای ساده سازی جهت گیری در یک طرح پیچیده ، اجازه دهید لایه را "اتصالات" نامگذاری کنیم (با استفاده از روش نام) - همانطور که مشاهده می کنید ، نام روش ها اقدامات انجام شده را به وضوح نشان می دهد.

newlayer.name \u003d "اتصالات"؛

برای اهداف آموزشی ، ما خطوط اتصال جداگانه ایجاد نخواهیم کرد ، بلکه در یک شی از نوع مسیر مرکب - برای سهولت ویرایش ترکیب می شوند. ایجاد چنین شیئی رویه شناخته شده قبلی را تکرار می کند ، این بار برای کلاس مرکب PathItems اعمال می شود:

newCompoundPath \u003d activeDocument.compoundPathItems.add ()؛

از آنجا که در آخرین مرحله ما یک لایه جدید ایجاد کردیم ، آن فعال است - بر این اساس ، اشیا created ایجاد شده روی آن قرار می گیرند و نیازی به مشخص کردن آن نیست (activeDocument.newlayer).

تعیین مختصات عناصر تبعی

ما این فرایند را با خروجی خود خطوط اتصال ترکیب می کنیم ، زیرا تعداد آنها باید با تعداد اشیا correspond مطابقت داشته باشد. ما شروع به تکرار از طریق تمام عناصر انتخاب شده یک به یک می کنیم ("من ++" به معنای افزایش یک به یک است) و مختصات آنها را می خوانیم. ما جستجو را از طریق اولین شی از آرایه Selection شروع نمی کنیم (همانطور که به یاد دارید ، این منبع مرجع است) ، بلکه از مورد دوم (sel) شروع می شود. خطوط زیر از قبل برای ما آشنا هستند:

برای (من \u003d 1 ؛ من< sel.length; i++) {
obj_x \u003d sel [i]. pozicion + sel [i] .عرض
obj_y \u003d sel [i]. pozicion - sel [i] .ارتفاع

با دریافت مختصات مرکز کودک ، بیایید شروع به ایجاد یک خط اتصال آن به لنگر کنیم. برای هر عنصر انتخاب شده ، یک شی object جدید ایجاد کنید - یک مسیر برداری که در کلاس CompoundPath قرار دارد و تعداد کل مسیرها را افزایش می دهد:

newPath \u003d newCompoundPath.pathItems.add ()؛

برای تنظیم مسیرهای ساده در Illustrator ، یک روش setEntirePath وجود دارد که پارامترهای آن آرایه ای از مختصات نقاط شروع و پایان است - که ، همانطور که قبلاً می دانیم ، به نوبه خود ، به عنوان آرایه های دو مقدار تنظیم می شوند (موقعیت ها در امتداد دو محور) سرانجام ، ما شرط "اگر چیزی انتخاب شود" را که در همان ابتدا وارد شده است ، به پایان می رسانیم.

newPath.setEntirePath (آرایه (آرایه (refObj_x ، refObj_y) ، آرایه (obj_x ، obj_y)))؛ )

متن آماده است. همانطور که می بینید ، هیچ چیز پیچیده ای در آن وجود ندارد: نام روش ها ماهیت آنها را نشان می دهد و مدل شی گرا به درک روشنی سلسله مراتب اشیا Ill Illustrator کمک می کند. اسکریپت ارزش عملی خاصی را نشان نمی دهد (بلکه بیشتر یک آموزش است) ، اما در مثال آن بسیاری از مفاهیم اساسی در نظر گرفته شد که در آینده به آنها اعتماد خواهیم کرد (کار با اشیا selected انتخاب شده ، اصل شماره گذاری آنها در انتخاب آرایه ، تعیین مختصات ، ایجاد لایه های جدید ، خطوط خروجی).

مثال 2: تشخیص کانتورهای خیلی نازک

عملیات مقیاس گذاری در گرافیک برداری بسیار فعال استفاده می شود. بنابراین ، هنگام کاهش اندازه اشیا with با خطوط نازک (در صورت فعال بودن پارامتر Scale strokes) ، ضخامت سکته مغزی آنها معمولاً کمتر از 0.25 pt (مقادیری که پس از آن خطوط ضعیف دیده می شوند) می شود و دلیل این امر مشخص می شود. ناپدید شدن آنها هنگام چاپ روی چاپگر جوهر افشان. توابع داخلی Illustrator برای یافتن اشیایی با مقادیر سکته کمتر از مقدار سکته مشخص شده ارائه نشده است. یافتن آنها به صورت دستی بسیار دشوار است - شما باید هر یک از اشیا select را جداگانه انتخاب کنید ، که به سرعت تمایل به انجام چنین بررسی هایی را از بین می برد. اسکریپت عملیات را بسیار ساده می کند.

خود اسکریپت ، در ساده ترین شکل ، کم است ، اما ما هدف خود را برای جهانی تر کردن آن قرار خواهیم داد - به دلیل توانایی تعیین حداقل ضخامت در کادر گفتگو ، عملکرد را گسترش خواهیم داد. مطمئناً می توانید این مقدار را در خود اسکریپت سخت رمزگذاری کنید و در صورت لزوم هر بار آن را اصلاح کنید ، اما می بینید که این کار ناخوشایند است. ما همچنین نشانه ای از عنصر انتخاب شده را به عنوان یک شی مرجع با حداقل مقدار مرز مجاز ارائه می دهیم. به موازات آن ، برای آمار ، تعداد عناصر با ضخامت تغییر یافته را شمارش کرده و آنها را برای شفافیت انتخاب می کنیم.

کل اسکریپت به دو قسمت تقسیم شده است: اولیه (خواندن مقدار از کادر گفتگو یا از عنصر انتخاب شده) و نهایی (جستجو در بین تمام اشیا in موجود در سند و تعیین مجدد ضخامت حاشیه). علاوه بر نشان دادن دسترسی به اشیا Ill Illustrator ، ما به ایجاد یک رابط کوچک برای وارد کردن مقادیر سفارشی خواهیم پرداخت.

وارد کردن مقادیر

دو خط اول با مثال قبلی یکسان خواهد بود ، با این تفاوت که به جای "2" ، "0" ظاهر می شود ، زیرا قبل از شروع اسکریپت ، باید اشیا selected انتخاب شده را تعیین کنیم. مقایسه با یک علامت برابر برابر مشخص می شود (یکی مقدار را اختصاص می دهد).

var mySel \u003d app.activeDocument.selection؛
var go \u003d درست ؛
اگر (sel \u003d\u003d 0) (

اگر چیزی انتخاب نشود ، حداقل ضخامت از طریق کادر گفتگو تنظیم می شود. بیایید با استفاده از عملکرد استاندارد JavaScript - prompt آن را نمایش دهیم. پنجره ای با فیلدی باز می شود که می توانید در آن مقداری را وارد کرده و از آن استفاده کنید. نحو عملکرد به شرح زیر است: ابتدا متن اشاره ای وارد می شود که در پنجره نمایش داده می شود (با در نظر گرفتن یکپارچه سازی متن ، ما از الفبای سیریلیک استفاده نمی کنیم ، زیرا غالباً به اشتباه نمایش داده می شود) ، سپس مقدار که به صورت پیش فرض در قسمت ورودی قرار دارد ، در زیر آمده است. دو مزیت کامل وجود دارد: توانایی تنظیم فوری حداقل ضخامت مجاز و تعیین هر مقدار. با ایجاد یک متغیر که به مقدار تابع prompt اختصاص داده شده است ، می توانید از آن برای اهداف خود استفاده کنید.

با نگاه به جلو ، یادآور می شوم که Illustrator دسترسی کامل به انواع اشیا را نمی دهد - بعضی از آنها در دریا مانده اند. بنابراین ، نه تنها عناصر ثابت ، بلکه برای اسکریپت نیز غیرقابل دسترسی است ، به منظور دستیابی به جستجوی آنها ، امکان تجسم را فراهم خواهیم کرد - به هر حال ، آنها ممکن است شامل اشیای مشکل ساز نیز باشند. برای اینکه دو کادر محاوره ای نمایش داده نشود (برای مقدار ضخامت و تعیین اینکه کدام عناصر را انتخاب کنید) ، از قابلیت های پردازش رشته JavaScript استفاده خواهیم کرد. واقعیت این است که محتوای فیلدی که توسط کاربر پر می شود یک "رشته" است (مجموعه ای از اطلاعات) ، که می تواند حاوی پارامترهای دلخواه شما باشد (جدا شده توسط جدا کننده ها). با دانستن جدا کننده ، مقادیر پارامترهای منفرد را می توان به راحتی از رشته استخراج کرد.

بر این اساس ، متن اشاره شده در کادر گفتگو به شرح زیر خواهد بود: تنظیم حداقل ضخامت حاشیه و یک عدد شرطی: "1" اگر می خواهید اسکریپت عناصر اصلاح شده را برجسته کند ، "2" - مواردی که دسترسی به آنها امکان پذیر نیست.

value \u003d prompt ("آستانه عرض ضربه را مشخص کنید) ، \\ n چه چیزی را انتخاب کنید: اشیا correct اصلاح شده (1) یا غیرقابل دسترسی (2)" ، "0.25 ، 1")

در ابتدا ، ما فیلد را روی 0.25 امتیاز تنظیم خواهیم کرد (واحد پیش فرض در Illustrator) ، اما وقتی تغییر کرد ، از مقدار جدید استفاده می شود و "1". "2" فقط باید مشخص شود اگر اسکریپت اشیا غیرقابل دسترسی را پیدا کند (مطمئن خواهیم شد که در پایان کار به این نشانه می رسد). و برجسته خواهند شد که این امر ما را از جستجوی دستی نجات می دهد (همانطور که می دانید جستجوی داخلی Illustrator مورد دلخواهی را برای شما ایجاد می کند).

ما متوجه شدیم که چگونه مقادیر را از یک قسمت سفارشی بخوانیم ، بیایید به پردازش آنها برویم. بیایید بررسی کنیم که آیا فیلد واقعاً خالی نیست (علامت "!" نشان دهنده نفی است ، یعنی "! \u003d" معادل "برابر نیست" ، null کلمه ثبت شده برای یک مقدار خالی است). اگر چیزی در آن وجود داشته باشد ، ما رشته را با استفاده از تابع split JavaScript به بلوک های جداگانه تقسیم می کنیم (به عنوان جدا کننده ترکیبی از نمادها را تعریف خواهیم کرد "،") و مقادیر حاصل را در آرایه splitString وارد می کنیم. بعد از آن ، ما به مقادیر موجود در آرایه ، نام توصیفی می دهیم (اول ضخامت را تعیین می کند ، دوم - حالت کار).

if (مقدار! \u003d null) (
splitString \u003d value.split ("،")؛
وزن \u003d splitString؛
نوع \u003d splitString؛ )

اگر در قسمت سفارشی چیزی وجود ندارد ، اجرای اسکریپت را متوقف کنید. آخرین پرانتز بسته نشانه اتمام شرطی است که در ابتدا تنظیم کردیم ("اگر چیزی در سند انتخاب نشود").

دیگری (برو \u003d کاذب)

اگر شی مرجع به طور خاص انتخاب شده باشد

حال اگر عنصری را به عمد انتخاب کنیم که بخواهیم از ضخامت حاشیه آن به عنوان مقدار آستانه استفاده کنیم ، دنباله ای از اقدامات را می نویسیم. بیایید با استفاده از عملکرد تأیید استاندارد هشدار در مورد اقدامات بعدی اسکریپت را نمایش دهیم (یک جعبه گفتگو با دو دکمه ایجاد می کند - و). اگر فشار دهید<Сancel>، کار متوقف می شود ، اما اگر موافق باشید ، فیلمنامه به کار خود ادامه می دهد.

else (selectedMsg \u003d تأیید ("عرض سکته مغزی شی انتخاب شده به عنوان آستانه استفاده خواهد شد")
if (منتخب msg! \u003d true) (
برو \u003d نادرست ؛
) دیگری (

رفتن به قسمت اصلی فیلمنامه. ما عمداً وضعیت را هنگام انتخاب چندین شی در نظر نمی گیریم ، زیرا برای تنظیم ضخامت حاشیه ، فقط کافی است یک مورد را انتخاب کنید. و اگر عناصر مقادیر مختلفی دارند از چه مقداری باید استفاده کنید؟ همانطور که قبلاً می دانیم ، تنها شی انتخاب شده دارای شاخص "0" است و برای بدست آوردن ضخامت حاشیه ، Illustrator دارای ویژگی strokeWidth است. بیایید در نظر بگیریم که ، در اصل ، انتخاب می تواند نه تنها عناصر جداگانه ، بلکه بخشی از متن را نیز شامل شود (به عنوان مثال به طور تصادفی انتخاب شده است) ، که در برنامه های ما گنجانده نشده است ، بنابراین ، قبل از شروع کار ، ما بررسی خواهیم کرد نوع عنصر انتخاب شده برای تعلق به یک آرایه با استفاده از قابلیت های JavaScript:

if (sel isArray) (
وزن \u003d sel.strokeWidth؛

از آنجا که توافق کردیم فقط اشیا تغییر یافته را انتخاب کنیم ، باید انتخاب را از لنگر خود انتخاب کنیم (به ویژگی انتخاب شده آن مراجعه کنید):

sel.selected \u003d false؛ )))

اکنون ما کاملاً آماده انجام وظیفه اصلی اسکریپت هستیم - یافتن اشیا:: مقداری که به عنوان حداقل ضخامت مجاز استفاده خواهد شد ، در متغیر wei ذخیره می شود.

موقعیت

بیایید آن را با یک ویژگی مشابه برای همه اشیا in موجود در سند مقایسه کنیم. می توانید مستقیماً به جستجو بپردازید ، اما استفاده از اسکریپت در کارهای روزمره با در نظر گرفتن شرایط اضافی لازم است - طرح ها اغلب شامل لایه های قفل شده و اشیا and جداگانه هستند. بنابراین ، اگرچه جستجو در آنها کار می کند ، شما نمی توانید تغییراتی ایجاد کنید. برای اطمینان از تأیید صحت کامل ، چندین عملیات را به اسکریپت اضافه خواهیم کرد: بررسی عناصر برای انطباق با معیار مشخص شده ، در صورت لزوم به طور همزمان رفع انسداد آنها را انجام داده و شاخص را به خاطر بسپارید تا پس از اتمام تأیید ، آنها را به حالت قبلی برگردانید. ما دو متغیر را معرفی می کنیم: اولین مورد برای دسترسی میانبر به همه لایه های موجود در سند ، و با کمک دوم ما فقط به موارد قفل شده دسترسی خواهیم داشت. ما شماره های ترتیب دومی را در آرایه ای که با تابع JavaScript new Array () ایجاد خواهیم کرد ، ذخیره خواهیم کرد.

var dL \u003d activeDocument.layers؛
var blokedLayers \u003d آرایه جدید ()؛

سپس همه لایه ها را بررسی خواهیم کرد و برای لایه های قفل شده (ویژگی قفل شده \u003d درست) شماره دنباله را در آرایه blokedLayers وارد می کنیم (با استفاده از عملکرد push از JavaScript) ، پس از آن ویرایش آنها را فعال می کنیم (قفل شده \u003d نادرست) .

اگر (برو \u003d\u003d درست است) (
برای (i \u003d 0؛ i if (dL [i]. قفل \u003d\u003d درست))
blokedLayers.push (i) ؛
dL [i]. قفل شده \u003d نادرست ؛ پیش از این ، ما توافق کردیم که اشیا fixed ثابت را انتخاب کنیم ، اما پس از پایان کار اسکریپت روی لایه های قفل شده ، دیگر نمی توانیم این کار را انجام دهیم - باید یک هشدار مربوطه نمایش دهیم. برای انجام این کار ، ما از علامت LockedPresence استفاده می کنیم که اگر حداقل یک لایه قفل شود ، آن را تنظیم خواهیم کرد.

lockedPresence \u003d درست است؛

همین کار را با عناصر قفل شده منفرد تکرار می کنیم. در ساده ترین حالت ، کافی است که همه عناصر بردار (class pathItems) را که شامل بازه های ترکیبی به عنوان زیر کلاس است ، بررسی کنید تا هیچ چیز از چشم بیننده اسکریپت فرار نکند.

سنگهای زیر آب

علاوه بر وضعیت انسداد در نظر گرفته شده ، یک "دام" دیگر نیز وجود دارد. همانطور که قبلاً اشاره شد ، برخی از عناصر (به ویژه ، Blend Group و Envelope) بومی Illustrator نیستند ، آنها به نوع ویژه plugItem تعلق دارند. در عین حال ، دسترسی به چنین اشیایی در Illustrator فراهم نشده است ، آنها "خود یک چیز هستند". شما فقط می توانید از طریق یک کلاس سطح بالاتر - pageItems "به آنها" دسترسی پیدا کنید ، از این طریق حداقل می توانیم حضور آنها را تعیین کنیم و در پایان یک هشدار مربوطه نمایش دهیم. می گوید با اجرای مجدد اسکریپت و مشخص کردن "2" به عنوان دومین پارامتر در قسمت ورودی ، این "جعبه های سیاه" را انتخاب می کند.

pgI \u003d activeDocument.pageItems؛

برای ذخیره شاخص های اجسام مسدود شده ، یک آرایه blokedPathes ایجاد کرده و برای شمارش تعداد موارد تغییر یافته ، متغیر اصلاح شده را معرفی کنید.

bloсkedPathes \u003d آرایه جدید ()؛
اصلاح شده \u003d 0؛

برای همه اشیا ، بررسی خواهیم کرد که متعلق به نوع PluginItem (نوع نام خاص) باشد: در صورت وجود ، پرچم pluginItemExist را تنظیم کنید (حالت آن نمایش یک هشدار در مورد وجود چنین عناصر را تعیین می کند). در مورد یک چک مکرر (وقتی پارامتر دوم در قسمت ورودی "2" باشد) ، آنها را برجسته می کنیم:

برای (من \u003d 0 ؛ من< pgI.length; i++) {
if (pgI [i] .typename \u003d\u003d "PluginItem") (
pluginItemExist \u003d درست است
اگر (نوع \u003d\u003d "2") (pgI [i]. انتخاب \u003d درست)

بنابراین ، همه (یا تقریباً همه) شرایط احتمالی که در کار بوجود می آیند ، اقداماتی را برای آنها پیش بینی و تعریف کرده ایم.

چک اساسی

اکنون زمان آن رسیده است که در واقع طرح را برای انطباق با معیار لبه مشخص شده بررسی کنید. بیایید در نظر بگیریم که در میان اشیا ممکن است مواردی وجود داشته باشد که به هیچ وجه لبه ای ندارند (با توجه به حالت علامت نوازش شده تعیین می شود) - بنابراین ، آنها باید از اسکن خارج شوند.

if ((pgI [i] .strokeWidth< weight)&&(pgI[i].stroked)) {
if (pgI [i]. قفل شده \u003d\u003d درست است) (
blokedPathes.push (i) ؛
pgI [i]. قفل شده \u003d نادرست ؛

این قطعه کد را می توان به شرح زیر تفسیر کرد: ما برای هر عنصر وجود حاشیه و ضخامت آن را تعیین می کنیم. اگر کمتر از حداقل باشد (if (pI [i] .strokeWidth< weight), и объект заблокирован, его индекс занести в специально созданный для такой цели массив blokedPathes, после чего разблокировать для внесения возможных изменений. Знак && обозначает логическое «И» (обязательное совпадение двух условий) — толщины меньше минимальной и присутствия окантовки.

سپس وجود اشیا قفل شده را برطرف می کنیم (پرچم قفل شده حضور را تنظیم می کنیم تا در آینده هشداری نمایش داده شود که همه موارد تغییر یافته قابل انتخاب نیستند) و خود اصلاح شده را انتخاب کرده و برای لبه آن مقدار آستانه تعیین می کنیم - و غیره برای همه عناصر. برای آمار ، ما به طور همزمان تعداد اشیا changed تغییر یافته را محاسبه خواهیم کرد.

lockedPresence \u003d درست است؛
pgI [i] .selected \u003d true؛
pgI [i] .strokeWidth \u003d وزن؛
اصلاح شده ++؛

مراحل برجسته کردن موارد علامت گذاری نشده (type \u003d "2") قبلاً بحث شد. حال بیایید تعریف کنیم که در یک وضعیت استاندارد چه اتفاقی باید بیفتد - هنگام جستجوی معمول برای اشیا بالقوه مشکل دار.

اگر (نوع \u003d "1") (pgI [i]. انتخاب شده \u003d درست)

بازیابی وضعیت موارد قفل شده

ما وظیفه اصلی را به اتمام رسانده ایم - اشیا problem مشکل ساز ثابت و برجسته شده اند. بازگرداندن وضعیت موجود باقی مانده است - همه آنچه را که در ابتدا مسدود شده بود به حالت قبلی برگرداند. برای انجام این کار ، در حلقه فعلی ، محتویات آرایه ای را که در آن شاخص های اشیا lock قفل شده ذخیره می شود ، می خوانیم و برای هر عنصر متناظر ، پرچم قفل شده \u003d درست را تنظیم می کنیم (روش shift آخرین مقدار وارد شده به آن را از آرایه نمایش می دهد ) از آنجا که تعداد کل اشیا than از اشیا blocked مسدود شده بیشتر است ، باید توجه داشت که پس از تخلیه آرایه ، چرخه اعتبار سنجی پایان یابد.

if (blokedPathes.length\u003e 0) (
retrievedPathes \u003d blokedPathes.shift ()؛
pI.locked \u003d true؛))

سپس اقدامات مشابهی را برای لایه ها انجام خواهیم داد:

برای (i \u003d 0؛ i if (blokedLayers.length\u003e 0) (
بازیابی \u003d blokedLayers.shift ()؛
dL.locked \u003d true؛ )) در واقع ، استفاده از توابع برای عملیاتی از همان نوع بسیار راحت تر است. مزیت آنها این است که هنگامی که اقدامات خاصی را توصیف کردید ، می توانید آنها را به طور کامل تکرار کنید ، فقط با فراخوانی عملکرد در مکان های مناسب. به این ترتیب فیلم نامه جمع و جور و قابل خواندن است. برای افزایش انعطاف پذیری تابع ، مقادیر (پارامترهای) استفاده شده در آن منتقل می شوند. اگر نمی خواهید از توابع استفاده کنید ، از دو پاراگراف بعدی صرف نظر کنید.

بیایید دو عملکرد بسازیم: اول باز کردن قفل لایه ها و اشیا، ، دوم بازگرداندن ویژگی های آنها. فقط انواع اشیا ((کلاس لایه ها و pageItems) و آرایه ها برای ضبط عناصر مورد علاقه (blokedLayers و blokedPathes) در آنها تغییر می کند - آنها به عنوان پارامترهای عملکرد ظاهر می شوند. بیایید اولین را اینگونه بنویسیم:

باز کردن عملکرد (آرایه ، نوع مورد)
if (itemType [i]. قفل شده \u003d\u003d درست است) (
آرایه. فشار (من) ؛
itemType [i] .locked \u003d false؛
قفل شده \u003d نادرست ؛
}

بجای آرایه ، ما به جای itemType - کلاس مورد نیاز ، یک آرایه را جایگزین خواهیم کرد. سپس دو تماس داریم - باز کردن قفل (BlockLayers ، dL) و باز کردن قفل (blokedPathes ، pgI). بیایید عملکرد را برای بازگرداندن وضعیت به همان روش بنویسیم:

بازگرداندن عملکرد (آرایه ، نوع مورد)
if (array.length\u003e 0) (
بازیابی \u003d array.shift ()؛
itemType.locked \u003d true؛
}

نمایش اطلاعات مربوط به نتایج اسکن

این آخرین مرحله فیلمنامه است. ابتدا شرط نمایش پیام را اگر جستجوی اشیا غیر قابل ویرایش انتخاب شود ، تعریف می کنیم ، سپس شرط ظاهر شدن هشدار پیدا شدن چنین اشیایی را تعریف می کنیم:

if (type \u003d\u003d "2") (b \u003d "\\ n بررسی انتخاب شده!")
اگر (pluginItemExist \u003d\u003d درست است) (
هشدار ("با توجه به محدودیت های برنامه نویسی برخی از اشیا can نمی توانند تحت تأثیر قرار گیرند" + b))

منطق صدور اخطار مبنی بر اینکه نمی توان همه موارد اصلاح شده را برجسته کرد به شرح زیر است:

if ((lockedPresence \u003d\u003d درست) && (pluginItemExist \u003d\u003d false))) (
اخطار \u003d "\\ n چون برخی از آنها قفل شده اند نمی توان آنها را به عنوان انتخاب شده نشان داد")

سپس نتایج نهایی را نمایش می دهیم:

هشدار ("تعداد اشیا correct اصلاح شده عبارتند از:" + اصلاح شده + هشدار)

در واقع ، کل فیلمنامه اینجاست. همانطور که می بینید ، این چند خط کار عظیمی را انجام می دهد که به سختی کسی جرات انجام دستی آن را دارد. اسکریپت فوراً اجرا می شود (در پروژه های کلان ، با تعداد عناصر ترتیب چندین هزار ، عملکرد پردازنده تأثیر می گذارد). تنها کاری که شما باید انجام دهید این است که آن را از لیست موجود انتخاب کنید (شما حتی مجبور نیستید این کار را انجام دهید - Illustrator به اسکریپت ها اجازه می دهد "کلیدهای داغ" را اختصاص دهند) با میانبرهای Edit.Keyboard.Menu commands.Scriptts. اما توجه داشته باشید: نام اسکریپت ها بر اساس حروف الفبا مرتب می شوند ، بنابراین افزودن اسامی جدید یا حذف اسامی قدیمی می تواند منجر به تغییر مجدد کلیدها به اسکریپت های همسایه شود. نتیجه گیری: پس از تغییر در پوشه Presets \\ Scripts ، مکاتبات کلیدها را بررسی کنید.

ما سعی کردیم فیلمنامه را جهانی کنیم ، که بر اندازه آن تأثیر می گذارد. در ابتدایی ترین نسخه (بدون در نظر گرفتن ویژگی ها و مشکلات شرح داده شده در بالا) ، فقط دو خط طول می کشد:

minWidth \u003d activeDocument.selection.strokeWidth؛
pI \u003d activeDocument.pathItems؛
برای (من \u003d 0 ؛ من< pI.length; i++) {
if ((pI [i] .strokeWidth< minWidth) && (pI[i].stroked)) {
pI [i] .strokeWidth \u003d minWidth؛
}}

و دسر؟

شماره بعدی را به کارتهای بازرگانی اختصاص خواهیم داد: اسکریپتی را می نویسیم که طرح آنها را به صورت خودکار در یک صفحه قرار می دهد. با این حال ، برای طیف وسیعی از کارها نیز مفید است ، زیرا به اندازه اشیا محدود نیست. همانطور که انتظار می رود ، ما ایجاد مسائل را به منظور جلوگیری از مشکلات برش نادرست ورق و همچنین چرخش کارت های کسب و کار (اگر بالا و پایین آنها به طور قابل توجهی متفاوت باشد) ، فراهم خواهیم کرد. به موازات این ، ما به موضوع پیدا کردن اشیایی می پردازیم که مدل رنگ آنها با مدل مشخص شده متفاوت است ، که در چنین کارهایی نیز غیر معمول نیست.

مجلات رایگان

در همان موضوع:

    اخبار 2019-04-03

    چگونه جوهر سفید اضافی به ایجاد برنامه های چاپ بزرگ با قالب بزرگ کمک می کند.

    امروزه ، تعدادی از مدل های چاپگرهای با اندازه بزرگ و فوق العاده گسترده می توانند با رنگ اضافی - سفید چاپ کنند که این امر امکانات جدیدی را برای استفاده از این دستگاه ها ایجاد می کند. اما چاپگرها می توانند فناوری های مختلف جوهر سفید را پیاده سازی کنند و فناوری های مختلف قابلیت ها و محدودیت های خاص خود را دارند.

هنگام ایجاد یک تصویر در هر ویرایشگر گرافیکی ، شما اغلب مجبورید همان اقدامات را انجام دهید. با کارهای معمول معمول تنظیم کانتورها یا ایجاد جزئیات کوچک ، حتی بیشتر زمان لازم است. زمانی که برای ایجاد تصاویر سهام لازم است می تواند فاجعه بار باشد. خوشبختانه بسیاری از کارها را می توان با استفاده از اقدامات ضبط شده یا اسکریپت حل کرد. ما انتخابی از 20 متن مفید و مفید را به شما ارائه می دهیم.

نحوه نصب اسکریپت ها در Adobe Illustrator

به طور کلی ، نصب اسکریپت ها در Illustrator مسئله خاصی نیست. بعد از اینکه اسکریپت مورد نیاز خود را بارگیری کردید ، فقط برنامه را باز کنید ، به File\u003e Scripts\u003e Other Scripts بروید و آن را انتخاب کنید. نکته مفید: متن ها بهتر است در یک مکان نگهداری شوند. همچنین ذخیره توصیفات اسکریپت در پرونده های جداگانه بسیار مفید خواهد بود - با گذشت زمان ، پایه آنها فقط رشد می کند ، که می تواند منجر به سردرگمی شود.

خط تیره را تنظیم کنید

اسکریپت Adjust Dashes کمک می کند تا نقطه ضعف با نقاط اصلی هماهنگ شود. مشکل معروف یک خط نقطه ای نه چندان زیبا برای همیشه از بین رفته است! یک نکته مهم: بعد از اجرای اسکریپت ، پر شدن از آبجکت از بین می رود ، بنابراین این کار را در اسرع وقت انجام دهید.

تصحیح قوس

بگذارید بگوییم شما می خواهید ابر بکشید. می توانید مدت زمان طولانی با بیضی ها و منحنی ها کمانچه کنید ، یا می توانید با استفاده از یک قرص در ثانیه شکل آن را ترسیم کنید. اما مشکل اینجاست - قوس ها اغلب بسیار ناهموار هستند. اسکریپت Arc Correction به راحتی وضعیت را اصلاح می کند.

Arrow-A ، Arrow-V

در هنگام ایجاد اینفوگرافیک اغلب از پیکان استفاده می شود. اگر می خواهید یک پیکان منحنی خوب ترسیم کنید ، اسکریپت Arrow-A ، Arrow-V را امتحان کنید. در هر انتهای منحنی انتخاب شده یک نشانگر A یا V ایجاد می شود.

حول دایره

اسکریپت Circumcircle یک دایره را در اطراف شکل انتخاب شده توصیف می کند. بسیار راحت است ، فقط فراموش نکنید که هر شکل پیچیده ای را نمی توان در یک دایره نوشت.

مماس معمولی

اسکریپت Common Tangents برای هر منحنی انتخاب شده (در صورت وجود) مماس مشترک است.

تقسیم کنید

آیا می خواهید یک بخش را به قطعات مساوی تقسیم کنید؟ از اسکریپت Divide استفاده کنید. او به طور مرتب و دقیق جسم را به تعداد مورد نیاز بخش مساوی پراکنده می کند.

دستگیره ها را گسترش دهید

یک مشکل چند ساله کشش یکنواخت لغزنده ها در نقطه اصلی است. همچنین خطر خراب شدن شیب منحنی وجود دارد. اسکریپت Extend Handles تمام کارها را برای شما انجام می دهد.

برای مثال:
100: اصلی
120: گسترش 20٪
80: کاهش 20٪
0: حذف گرد کردن
-100: گرد کردن معکوس

ادغام لنگرهای همپوشانی شده

ابتدا بسیاری از اشکال به شکل منحنی ترسیم می شوند ، سپس آن را باز کرده و به عنوان یک جسم تمام عیار کار می کنند. اما تقریباً همیشه همین اتفاق می افتد - پس از تبدیل منحنی به پر کردن ، تعداد زیادی از نقاط غیرضروری تشکیل می شود که به شدت در ویرایش بیشتر تداخل ایجاد می کنند. اسکریپت Merge Overlapped Anchors به \u200b\u200bکنار آمدن با مشکل کمک می کند و نقاط غیرضروری را بدون تغییر شکل جسم از بین می برد.


می توانید Merge Overlapped Anchors را بارگیری کنید.

هر گوشه ای را دور بزنید

یک شکل پیچیده را می توان با ترکیب چندین شکل ساده یا با ترسیم یک طرح کلی زاویه ای ایجاد کرد. بعلاوه ، ممکن است لازم باشد گوشه ها را دور بزنید. کار روتین است و به زمان نیاز دارد. اسکریپت Round Any Corner این کار را ساده می کند. نقاط مورد نظر را انتخاب کنید ، اسکریپت را اجرا کنید ، مقدار گوشه گرد را وارد کنید و از نتیجه لذت ببرید.

درخت مانند

درختان یکی از عناصر پرکاربرد هستند. ترسیم درخت مدت زیادی طول می کشد ، اما ترسیم جنگل می تواند برای همیشه طول بکشد. اسکریپت Tree-like درختان را بر اساس یک منحنی واحد ترسیم می کند و در صورت تغییر اندازه درخت می تواند نمای درخت را تغییر دهد. سریع و زیبا

تانژانت ها از یک نقطه

این اسکریپت مماس ها را از یک نقطه به سمت شی selected انتخاب شده می کشد. نقطه می تواند روی منحنی باشد یا جدا باشد (در این حالت بعد از اجرای اسکریپت از بین می رود). مماس های حاصل را می توان به دلخواه اصلاح کرد.



نمونه های برجسته و سایه را اضافه کنید

به دنبال خطوط کم نور و گول زدن هستید؟ از اسکریپت Add Highlight And Shadow Swatches استفاده کنید. رنگ را از شی object انتخاب شده می گیرد ، سپس باید نامی به آن بدهید ، بعد از آن سایه های هماهنگ آن روی صفحه رنگ ظاهر می شود.



می توانید Add Highlight And Shadow Swatches را بارگیری کنید.

صادرات لایه

اسکریپت Layer Export به سرعت هر لایه را به عنوان یک فایل جداگانه در قالب PNG یا PDF ذخیره می کند. نام پرونده با نام لایه مطابقت دارد و آنها در همان محل Ai اصلی قرار می گیرند.

لایه ساختن

اسکریپت Layer Compose به شما امکان می دهد به سرعت لایه های محتوا و الگو را در یک ترکیب ترکیب کنید. برای این کار ، لایه الگو را با هر نامی كه در ابتدا با زیر خط وجود دارد (_abc) نامگذاری كرده و اسكریپت را اجرا كنید.

مشخص كردن!

یک شی را انتخاب کنید ، اسکریپت مشخص را اجرا کنید! و جهت اندازه گیری را تنظیم کنید - شما از طول یا عرض جسم می دانید. دو شی را انتخاب کنید - از فاصله بین آنها مطلع خواهید شد. یک گروه را انتخاب کنید - از طول آن مطلع شوید.

شما یک فرصت منحصر به فرد برای گسترش عملکرد Adobe Illustrator دارید. هیچ چیز آسانتر از استفاده از اسکریپت ها (پرونده های اسکریپت) نیست ، فقط کافی است شی object را انتخاب کرده و اسکریپت مورد نظر خود را اجرا کنید. اسکریپت های ارائه شده در این پست باعث صرفه جویی در وقت شما می شود ، کار شما را لذت بخش و کارآمد می کند. باور کنید آنها ارزش توجه شما را دارند. همه اسکریپت ها در نسخه های CS3 و CS4 Illustrator آزمایش شده اند.

اگر به افزونه های Illustrator با کیفیت برتر نیاز دارید ، می توانید آنها را در بخش اقدامات و اسکریپت های Illustrator در منبع GraphicRiver ما پیدا کنید ، مانند Isometric Guides Grid Action ، Pattern Maker و Long Shadow Action (اقدام برای ایجاد سایه بلند).

بهترین اقدامات و اسکریپت ها برای Illustrator on Graphic River.

در غیر این صورت ، از "نان های" رایگان که اکنون به شما می گوییم استفاده کنید. اما ابتدا بیایید نحوه نصب اسکریپت ها برای Illustrator را بفهمیم.

نصب اسکریپت ها

اسکریپت هایی که قصد استفاده از آنها را دارید همیشه باید در همان مکان ذخیره شوند ، به عنوان مثال در فهرست Scrips. برای اجرای اسکریپت ، به File\u003e Scripts\u003e Other Scripts (Command + F12) (File\u003e Scripts\u003e Other Scripts) بروید.

فهرست را با اسکریپت باز کرده و پرونده مورد نیاز را اجرا کنید.