Четверг, 18.04.2024, 23:33 | | Регистрация | Вход
Главная » Статьи » Мои статьи

§ 10. CorelDRAW. Вычисление площади векторной фигуры.


ВНИМАНИЕ! Вышла НОВАЯ ВЕРСИЯ 2014 макроса ПЕРИМЕТР для CorelDRAW, пользуемся бесплатно!


Вид модуля:


Сразу укажу на существенный недостаток. По техническим причинам (особенность матаппарата), этот макрос не может рассчитывать правильно площадь комбинированных и самопересекающихся фигур (например, буквы О, А, Р или фигура,  скомбинированная  из двух пересекающихся прямоугольников), их сначала нужно разъединить (Ctrl+K) и, выделяя по одной, измерять площадь каждой запчасти (хорошо еще, что макрос может делать надписи - результат измерений). После того, как измерены все запчасти, приходится брать в руки калькулятор и высчитывать суммарную площадь. Но есть такие самопересекающиеся фигуры, которые получаются из n-угольника (полигона), превращенного шейпером в нечто похожее на "снежинку". Такая фигура не разъединяется и ее площадь, расчитанная этим макросом - это сплошная загадка, но точно не истинный результат.

Этого недостатка лишен макрос, условно бесплатный (бета-версия для Х4 и Х5) из набора макросов с сайта разработчиков PlotCalc. Этот набор инструментов может оказаться очень полезным для технического дизайнера, рекомендую "потеребить" начальство, чтобы приобрести эту программу. Статья об этом наборе у меня в планах.


Прошу учесть, макрос разрабатывал не я, по какому алгоритму он считает площадь, мне неизвестно. Выкладываю его здесь только потому, что он распространяется свободно.  Авторство программы Nicholas Wilkinson. 

Итак, начнём:

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

2) Переносим ее в директорию, где у вас установлен Корел (или сразу туда скачиваем), у меня этот путь выглядит так:

C:\Program Files\Corel\CorelDRAW Graphics Suite X4\Draw\GMS

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

   Ищем и нажимаем:

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

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

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

— в появившемся списке кликните: GetAreaTextLaunch...;

— осталось настроить иконку (кнопку в панели инструментов), открыв вкладку Вид (Appearance) - это на ваше усмотрение, можно в том окошке нарисовать свою, а можно импортировать готовую... например эту:   ССЫЛКА ДЛЯ СКАЧИВАНИЯ ИКОНКИ   После скачивания нужно нажать кнопку "Импорт" (Import) - раскроется список доступных иконок. Внизу будет кнопка "Файлы" (Files) - ее нажимаем и указываем, где находится скачанная иконка, жмем "Открыть" (Open). Если все правильно сделано, рисунок иконки должен появиться в окне.

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

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

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


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

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


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

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





Категория: Мои статьи | Добавил: sb (21.11.2011)
Просмотров: 64675 | Комментарии: 8 | Теги: площадь CorelDraw, макрос площадь, корел дро, площадь, как найти площадь в CorelDraw, скачать бесплатно, площадь фигур
Всего комментариев: 8
6 ichome  
0
Добрый день. Подскажите, у Всех площадь круга радиусом 1м на этом макросе равна 2 м.? Потому как по формуле пиэрквадрат получается 3,14 м. Квадраты считает правильно. Может у меня че-то с корэлом? Ну погрешность, ну не до такой же степени.

8 sb  
0
Да, я не думаю, что это именно Ваш Корел глючит... скорее всего - это макрос неправильно считает.
Я давно мечтаю урвать немного времени, чтобы написать "правильный" макрос расчета площади. Думаю, этим летом это сделать (во время отпуска).

5 Кипрень  
0
а что мешает просто использовать ActiveDocument.ActiveShape.Curve.Area ?

7 sb  
0
Именно этот единственный метод и используется... но! есть несколько ограничивающих условий...
Рассчитывается площадь именно указанной замкнутой кривой, не учитывая, как она вписана в общую фигуру из нескольких кривых. А в том то и проблема, что взаимное пересечение кривых в сложной фигуре этот метод и не учитывает, т.е. в простых случая - результат верный, в случаях множественного самопересечения (фигура со множеством "дырок") результат - неверен.

4 Бг  
0
Площадь круга с ошибкой в 30%+. Не годиться

3 Наиль  
0
Спасибо за ваши труды smile Будем ждать дебага biggrin

1 Наиль  
0
Ошибается макрос sad

2 sb  
0
Да, это так.
Ответ: Но все ошибаются. Вопрос, насколько ошибаются. Вы же, например, свой вес не будете измерять с точностью до миллиграммов, а достаточно будет точности 0,5 кг. Другими словами, достоверность измерений в 99% - это вполне удовлетворительный результат.
А вообще, подождем, пока я доковыряю свой макрос измерения площади. wacko

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