Как правильно подойти к вопросу: vBA как создать контур?

Ссылка скопирована
1 ответ

Нужно понять: в vba из CorelDraw 2018 есть функция createContour, которая создаёт контур объекта, но проблема в том, что при создании внутреннего контура (например 5 мм) в объекте (например 5,1), он создаёт внешние контур с 5мм. Как сказать, чтобы создавать в любом случае?

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Ольга Сеть Ответ

В CorelDRAW через VBA “создать контур” можно понимать по-разному: обводку объекта, дубликат по внешнему краю, эффект Contour или преобразование в кривые. Поэтому сначала нужно определить, нужен ли визуальный эффект контура или новый отдельный объект, который можно дальше резать/экспортировать.

Если нужна обычная обводка, задаётся outline у shape:

ActiveShape.Outline.Width = 1
ActiveShape.Outline.Color.RGBAssign 0, 0, 0

ActiveShape.Outline.Width = 1 ActiveShape.Outline.Color.RGBAssign 0, 0, 0

Если нужен именно эффект Contour, в CorelDRAW VBA используются методы объекта для создания эффекта контура. Названия и параметры зависят от версии CorelDRAW, поэтому проще записать макрос через Macro Recorder: вручную применить Contour к объекту, остановить запись и посмотреть сгенерированный VBA. Это самый быстрый способ получить корректный синтаксис именно для вашей версии.

Общий алгоритм такой:

  1. проверить, что выбран один объект;
  2. если нужно — преобразовать текст/фигуру в кривые;
  3. применить contour effect с нужным offset;
  4. разделить эффект, если нужен отдельный объект;
  5. при необходимости объединить/почистить кривые.

Важно: contour для текста, bitmap и сложных групп может вести себя по-разному. Для стабильности часто сначала делают ConvertToCurves и работают уже с кривыми. Но это необратимо, поэтому макрос лучше запускать на копии объекта.

Если задача технологическая — например, сделать линию реза вокруг макета, — не оставляйте просто визуальный эффект. Создайте отдельный векторный объект, задайте ему hairline/spot color и проверьте экспорт в PDF/CDR.

Итог: для простой линии используйте Outline, для внешнего объекта — эффект Contour с последующим разделением. Запишите действие Macro Recorder в вашей версии CorelDRAW — это даст точный VBA-код без угадывания устаревших методов.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно