Суббота, 23.09.2017, 20:56 | | Регистрация | Вход
Главная » Статьи » Мои статьи

§ 11. CorelDRAW. Вычисление длины периметра векторных фигур.

 

УСОВЕРШЕНСТВОВАННАЯ ВЕРСИЯ "ПЕРИМЕТР 2014" 
 
К 2014 году я решил выдать на всеобщее рассмотрение новую версию этого макроса. Но! Работа над ним еще идет в направлении надежности. Поэтому настоятельно прошу хотя бы раз в неделю заходить сюда для обновления версии (или в комментах оставляйте адреса, я сделаю рассылку). Заранее прошу прощения за возможные неполадки или непредвиденные зависания Корела. 
 
Я полностью переписал его код под свои цели. Думаю, всем пригодится измеритель, способный обработать без ошибок неограниченное количество объектов, отсеивая при этом неизмеряемые (битмапы, эффекты и пр.), т.е. не нужно (как в других измерителях) предварительно готовить объекты к измерению. 
И хочу отметить еще два, на мой взгляд, удобных нововведения: 1) макрос "подсвечивает" объекты, которые измерил (остальные временно "прячет"); 2) макрос создаёт сторку-результат измерений там, где мы ему укажем.

 
Устанавливается так же, как все макросы - смотрите инструкцию ниже (в предыдущей версии)
 
Сначала о грустном: я проверял работу макроса пока еще не во всех версиях, только в Х6, Х5, Х4. Большая просьба, если у кого еще есть более ранние версии CorelDraw, проверьте сначала работу этого макроса, прежде чем пользоваться им. Например, в версии CorelDraw 11 неизмеряемые объекты исчезают навсегда. Я постараюсь в ближайшее время устранить этот недостаток.
 
Итак, описание новой версии:
 
1) Ввиду особенностей матаппарата самого CorelDraw, точность измерения длин криволинейных фигур не является абсолютно точной. Погрешность составляет 0,01%, т.е. если периметр получился, например, 10 метров, то ошибка составит +- 1 миллиметр. Для дизайна - это сверхточность.
 
2) Макрос анализирует типы объектов и производит определенные действия с ними:
 
– отсеивание объектов, не подлежащих измерению: bitmap, OLE, linear dimension, mesh fill, HTML;
– drop-shadow (тени) - "исчезают" и измеряется только ВЕКТОРНЫЙ источник;
– artistic media перья (спрей, разбрызгивание объектов и т.д.) - измеряется только направляющая кривая;
– эффект контейнера - измеряется только периметр контейнера, содержимое не учитывается;
– эффект bevel - измеряется только основной объект;
– размерные линии (linear dimention) - не измеряются;
– любые типы текстовых объектов можно не переводить в кривые, они будут посчитаны;
– объект Таблица тоже входит в измеряемые объекты и будет измерен;
– измеряются также без проблем: сгруппированные разнотипные объекты, эффекты:  контур,  экструзия, конверт, перспектива, перетекание объектов;
– эффект перетекания объектов вычисляется полностью, т.е. оба базовых и все перетекающие объекты.
 
3) Более надежный алгоритм:

– не возникает программной ошибки в случае объектов с большим количеством точек. Например, веторные кривые, полученные трассировкой изображений в CorelTRACE;

4) Визуализация процесса:
 
– все объекты, которые подлежат измерению, подсвечиваются желтым контуром, а те, которые не измеряются - "исчезают" на время работы макроса. Всё это можно увидеть, предварительно выставив зум на выделенные объекты, а затем при появлении окна, перемещая его по экрану. Но! Есть у меня уже версия, где окно программное не появляется, а информация создаётся в документе в виде текста; 
 
5) Получение итогов:
 
– выводится в окне статистика о количестве измеренных и неизмеренных объектов;
– по завершению работы макрос спросит, нужно ли создать текст с полученным результатом измерений. Если ответ "Да", то нужно кликнуть в то место, где должен появиться этот тект.
 
6) Планы на будущее:
– предполагаю добавить возможность измерять периметр битмапов. Я имею ввиду периметр контурной рамки, которую мы зачастую редактируем у битмапов;
– надеюсь на вашу информационную поддержку, т.е. на отзывы, замечания, пожелания и т.д., чтобы я мог усовершенствовать этот инструмент.
 
Ну, и наконец, на всякий случай для формальности замечу, что программка - бесплатная. Хотите - пользуйтесь, хотите - нет. Я не несу ответственности за возможные сбои, ошибки и т.п. последствия работы этого макроса. При возникновении таких случаев я обещаю разобраться в ситуации и сделать попытку исправить код макроса. Вобщем, всё будет видно по отзывам. Надеюсь на вас.

 
 
С уважением, Сергей Баюров, г. Харьков.
 

 


 

ПРЕДЫДУЩАЯ ВЕРСИЯ МАКРОСА:

Предлагаю "скачать бесплатно" дополнение к CorelDRAW (любой версии), с помощью которого вы сможете узнавать длину периметров ваших векторных фигур.
Очень полезная программка особенно для тех дизайнеров-конструкторов, которые занимаются не только разработкой, но и имеют прямое отношение к процессу изготовления вывесок, подготовке подрезки пленочных аппликаций, изготовлению объемных и не объемных букв, изготовлению световой рекламы из неоновых трубок... всего не перечислишь.

Итак... весь процесс займет у вас пять-десять минут. 

1) Закройте полностью CorelDraw (если он был открыт, конечно).

2) Скачиваем:   ССЫЛКА ДЛЯ СКАЧИВАНИЯ ПРОГРАММКИ

3) Переносим ее в директорию, где у вас  установлен Корел (или сразу туда скачиваем), у меня этот путь выглядит так:    C:\Program Files\Corel\CorelDRAW Graphics Suite X5\Draw\GMS

или так:    C:\Program Files(x86)\Corel\CorelDRAW Graphics Suite X5\Draw\GMS

4) Чтобы иметь этот инструмент "под рукой", нужно установить его значок в панель инструментов Корела. Кто знает как, можете пропустить этот пункт.

Запускаем CorelDraw (создаем пустой документ). Ищем и нажимаем:

— в меню: Инструменты/Параметры (Tools/Options) или нажимаем Ctrl+J. Откроется окно настроек Корела;

— в открывшемся окне: Рабочее пространство-Настройки-Команды (Workspace-Customization-Commands); 

— в раскрывшемся пункте:  Макросы (Macros) - найдите в выпадающем списке (вверху возле бинокля);

— в появившемся списке:  PerimeterModule... ;

— осталось выбрать вид иконки, открыв вкладку Вид (Appearance) - это на ваше усмотрение, можно в том окошке нарисовать свою, можно импортировать готовую...  например мою: 

  - ссылка для скачивания иконки 

  Выглядит это так:  

 

5) Теперь осталось ухватить макрос за значок (возле названия PerimeterModule) и перетянуть на любую рабочую панель инструментов (или просто на рабочее поле - будет создана индивидуальная панелька для этого макроса).

6) Не забудьте сказать "ОК" внизу окна Параметров, чтобы сохранить проделанную работу.

7) И, на всякий случай, нажмите: Инструменты/Сохранить как настройки по умолчанию  (Tools/Save_settings_as_Default) .

Проверяем работу макроса. Выделите несколько объектов (не должно быть в выделении растровых картинок), нажмите на значок макроса... и о, чудо!

Если чуда не произошло (окошко с информацией не появилось), значит у вас не установлен модуль VBA (visual basic for applications). Не беда! Сейчас установим.

— закрываем CorelDraw и запускаем инсталляцию Корела, ждем появления первого окна

— в первом окне выбираем пункт "Модифицировать" (Modify), а в некоторых версиях  "Add/Remove components" (добавить/удалить компоненты), жмем "Далее" (Next);

— в следующем окне переключаемся на закладку "Особенности" (Features) и жмем справа от пункта "Утилиты" (Utilites) на список и устанавливаем в нем галочку напротив пункта  Visual Basic for Applications, нажимаем "Далее" (Next) - и так далее подтверждаем, где надо, уже до конца установки. 

или возможен такой вид окна:

  

Запускаем CorelDraw и, если сделано все правильно, то макрос должен заработать. Проверяем!

Если не работает, то пишите мне гневный комментарий :) постараюсь помочь.

 

Вот и всё. Вуаля!

 

Авторcтво программы "PerimeterModule" Copyright © Nicholas Wilkinson 2001.

"Вы можете распространять эти инструменты на любом носителе, и не можете назначать цену либо получать деньги за эти инструменты. Вы можете распространять эти инструменты конфиденциально своим друзьям и коллегам на такой долгий срок, пока вы только используете полностью установленную программу, с всеми внедренными лицензионными соглашениями и авторскими правами."


К списку статей

Близкие по теме материалы:


§ 13. CorelDraw. Генератор календарной сетки на три тысячелетия

§ 15. CorelDRAW и люверсы. Программа разметки макета баннера.





Категория: Мои статьи | Добавил: sb (28.07.2010)
Просмотров: 63250 | Комментарии: 25 | Теги: длина периметра, макрос CorelDraw, вычислить длину корел, измерение длины корел, длина периметра корел, периметр корел, векторные фигуры
Всего комментариев: 251 2 3 »
24  
Спасибо! Отличная, полезная вещь! Занимаемся наружкой )
Ой...) на дворе уже 2017 од. Последний коммент передо мной 2011

25  
Это не последний в 2011, это первый комментарий был в 2011-м.

23  
Спасибо! Отличная, полезная вещь! Занимаемся наружкой )

21  
Добрый вечер,спасибо работает,а как поменять мм на метры?

22  
Макрос выводит результат в тех единицах измерения, какие установлены в данный момент в самом CorelDraw.
Чтобы их поменять, кликните в пустое место (чтобы не было выделено ни одного объекта), в одной из панелей инструментов (у меня вторая сверху) увидите кнопку с текущими единицами измерения (миллиметры/метры/дюймы/ ....) в ней и поменяйте их на нужные вам. После этого макрос будет выводить результат именно в них.

20  
Спасибо Вам большое! Отличный и нужный макрос!

19  
Крутяк, поставил на Х8, работает отлично, без проблем. Установка проще пареной репы: открываем диспетчер макросов, кнопка загрузить, ищем скаченый .gsm файл, ОК. Готово!
Огромное спасибо.

18  
БОЛЬШОЕ СПАСИБО!
Отлично работает. И с группами. И отверстия учитывает в фигурах. Супер!!!

17  
Очень помогло, всё сработало без проблем Спасибо Внимательному к Деталям Хозяину этой страницы!

16  
Спасибо! Очень полезно!

15  
Доброго. Благодарю за инструмент, но есть беда. Под х7 не хочет ходить. Это будет исправляться, али еще не скоро?
Спасибо.

14  
Спасибо! Отличная вещь, эта нова версия особенно.

1-10 11-20 21-21
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]