Як розбити велику карту на аркуші, початківцям

Загальний сенс методики такий: є View (Вид), в якому зосереджена вся ваша карта. Є також Layout (Макет друку), в якому намальовано все зарамкове оформлення. Сам вигляд також представлений на аркуші макета у вигляді "вікна", оформлення нагромаджується, зрозуміло, навколо нього. Залишилося зрозуміти, як "протягувати" вид за вікном макета, попутно натискаючи на кнопку друку. Це ефективний і гнучкий підхід, як показала багаторічна практика.

Отже, протягування за вас зробить скрипт масової друку Plot_sheets. Головне, що йому потрібно - у вигляді повинна бути полигональная тема, шейп-файл, який містить рамки листів. Рамки вам доведеться намалювати в масштабі карти, і це зажадає деяких зусиль. Про те, як це зручніше зробити, розказано тут. Взагалі-то для скрипта все одно які рамки, чи будуть вони розміром із сірникову коробку, або навіть різного розміру, він це не перевіряє. Це важливо для вас, щоб заздалегідь представляти кордону листів в просторі вашої карти. Скрипт виставляє охоплення виду на черговий лист по центру, включає макет друку, змінюючи в ньому деякі написи, і виводить результат схрещування виду з макетом на заданий пристрій друку - на принтер або у файл, як вкажете.

Отже, припустимо, листи готові. У таблиці потрібно як мінімум одне поле з назвою ID. Воно повинно містити порядкові номери аркушів, в числовому вигляді і без дублікатів. Адже саме за цим номером проводиться друк і задаються назви файлів-листів.

Отже, поля готові, як же їх вміст потрапить на макет? Адже текстові написи макета - це просто "мертва" графіка! Однак скрипт не ликом шитий - він орієнтується на якісь кодові послідовності, для індексу листа це, наприклад, @ # Sheet # @. для проставляння Регіону - @ # Rs # @. для кол-ва листів - @ # Tot_Sh # @. Вони спеціально зроблені хитромудрими, щоб на вашому листі не попалося Ніччи такого подібного. Напишіть цю абракадабру на макеті друку там, де вам потрібно мати "мінливі" написи. Задайте цим текстовим об'єктам потрібне вирівнювання, шрифт, колір - в нашому випадку ми їх для прикладу зробили фіолетовими. У момент виведення конкретного листа скрипт знайде ці закарлючки і замінить точно на потрібну напис, зберігаючи шрифт та інші установки.

Якщо все готово, запускаємо скрипт. Стоп! Краще перевірте ще раз макет друку - вид повинен бути в потрібному фіксованому масштабі (Fixed Scale, в нашому випадку 1: 25000), і повинен бути живим - переконайтеся, що Live Link включений. Вид виду не важливий - при роботі скрипт сам позиціонується на кожен лист в заданому масштабі. Перевірте як включені і розфарбовані ваші теми, і не забудьте відключити наостанок самі листи.

Отже, все начебто нормально. Скрипт треба запускати З ВИДУ, НЕ з макета друку. Ви не вмієте запускати скрипт? Потренуйтеся в цьому заздалегідь, до скриптів треба звикнути. Ми тільки нагадаємо нетерплячим найпростіший спосіб в ArcView - створіть новий порожній скрипт у вашому проекті, вклейте в нього через буфер наш текст Plot_sheets. і натисніть галочку для компіляції. Тепер можна запускати скрипт прямо "з листа", натиснувши на біжить чоловічка. Однак перед цим клацніть останній раз на потрібний Вид і відразу назад у вікно вашого скрипта - після цієї нехитрої маніпуляції скрипт буде знати, що він працює в цьому Віде, а не десь ще. Найкраще, звичайно, зробити постійну кнопку для запуску. Це докладно описано ось тут.

Скрипт запитає насамперед про тему, в якій лежать листи. Далі - про макеті друку, з яким потрібно "схрещувати" даний Вид. Якщо все колонки в темі листів задані вірно, то відразу з'явиться діалог вибору принтера, він стандартний. Вкажіть правильно папір і все таке інше, як зазвичай. Ми якось звикли виводити все аркуші не на фізичний принтер, а в файл друку або в PDF, це зручніше для масового друку та особливо при тестуванні - подивився і видалив. Про це свого часу. але ви можете гнати листи і відразу на принтер, залежить лише від вас. Якщо все ж таки вирішите друкувати в файли, то не забудьте вказати вірний каталог і ім'я файлу, за замовчуванням скрипт вам запропонує щось на кшталт "D: \ TEMP \ SH_". До цього імені ззаду всіх файлів буде ще приписаний порядковий номер. - SH_01, SH_02 і т.д. врахуйте це. Отже, друк налаштована, тисніть "Висновок" і справа в капелюсі. Ось такі листи повинні у вас вийти:

Що ми бачимо? Змінюється вигляд листа, порядковий номер у штампі, змінюється регіон. Кількість листів скільки вказано в колонці Tot_Sh - всюди 3. Начебто вийшло.

Якісь проблеми? Давайте розберемося разом.

- Скрипт вперто про щось запитує. Швидше за все, він не може знайти потрібних колонок. Пам'ятайте, числовий ID обов'язковий, решта опціонально. Однак скрипт все одно запитає, де, мовляв, IDS? Якщо вам по барабану, і ви не розташовані робити купу нових полів - що ж, можна і так. Тикніть в списку полів в будь-строкове поле чисто для проформи. Обов'язково строкове, інакше скрипт образиться і припинить роботу. У цьому випадку на макеті друку нічого змінюватись не буде, зрозуміло.

- Листи друкуються, але виглядають однаково. У вас "неживої" вид - перевірте "Live Link", якщо і це не допоможе - убийте рамку виду в макеті друку і створіть заново.

- Листи друкуються нормально, проте підпису листів не змінюються. Перевірте правильність написання кодових послідовностей, краще переклеїти їх звідси або з скрипта. Прогалини спереду і ззаду всередині тексту потрібно видалити.

- Листи друкуються в файли, але імена якісь дивні - SH_.prt01, SH_.prt02 і т.п. У діалозі налаштувань друку вилучили розширення .prt після типового імені файлу, скрипт додає свої номери ПІСЛЯ нього, і по-іншому не вміє. Найкраще звикнути робити файли друку взагалі без розширень, адже його легко поставити і потім.

- ArcView як би завмирає, тільки смикається злегка. Доступ до екрану Віда відсутня. Можливо, ви запустили на друк занадто багато листів, і процес йде нормально, тільки вам доведеться почекати. Загляньте тим часом в каталог, де плодяться листи - якщо вони з'являються один за іншим, то все в порядку, чекайте. Наступного разу в темі листів виберіть лише кілька, скрипт буде друкувати лише вибрані листи.

- Скрипт друкує, але не всі листи - см. Попереднє пояснення :)

- Написи не змінюються, на макеті друку кодові послідовності зникли. Це буває при аварійному скиданні скрипта. За замовчуванням він відновлює коди на макеті в кінці роботи, але, якщо його перерве нетерпляча рука користувача або відключення електрики - вже вибачте. Відновити коди на макеті вам доведеться вручну, зробіть заздалегідь резервну копію.

Знайти утиліту для ArcMap, якщо у вас встановлений Developer Pack, можна в каталозі "c: \ arcgis \ arcexe83 \ ArcObjects Developer Kit \ Samples \ ArcMap \ Map Production \ DS Map Book" або щось в цьому роді. Там повний набір файлів, інсталятор, о-о-дуже докладна інструкція, можете розважатися. Однак краще скачати вдосконалений варіант - оригінал не працює з PS-файлами, а також не дружить з метричними одиницями - норовить все скинути на дюйми. Виправлена ​​версія для 8.x лежить ось тут. Mitrich для вас постарався. Ще один варіант є на ГІС-лабе. там як раз для дев'ятки і для ArcGIS все досить детально викладено. Однак проблеми в дев'ятці до кінця не вирішені, слідкуйте за оновленнями.

У версії ArcMap 9.1, крім того, реалізований (нарешті!) Алгоритм розрізання макета друку на аркуші "простим", графічним способом: в діалозі друку ви побачите опцію "Tile".