Макросы хранятся в модулях (также называемых модулями кода), которые хранятся в проектах макросов. Окно настройки «Диспетчер макросов» позволяет просматривать все доступные проекты макросов, модули и макросы, а также управлять ими.
Окно настройки «Диспетчер макросов» можно использовать для создания проектов макросов в виде файлов банка глобальных макросов (Global Macro Storage, GMS). С помощью файла GMS можно эффективно создать пакет компонентов проекта макроса и организовать общий доступ к нему для других пользователей. С помощью окна настройки «Диспетчер макросов» можно открыть (или загрузить) ранее созданные проекты макросов, установленные вместе с программным обеспечением или полученные иным образом. Окно настройки «Диспетчер макросов» можно также использовать для переименования проектов макросов, для копирования и закрытия (или выгрузки) проектов макросов на основе файлов GMS.
Каждый проект макроса содержит по меньшей мере один модуль. Окно настройки «Диспетчер макросов» можно использовать для добавления модуля в проект макроса на основе VBA или для открытия существующих модулей VBA для редактирования. Окно настройки «Диспетчер макросов» можно также использовать для переименования или удаления модулей VBA.
Наконец, окно настройки «Диспетчер макросов» можно использовать для создания макросов в доступных модулях. Для создания макросов не требуется иметь опыт программирования. Тем не менее при наличии опыта программирования макросы VBA можно отредактировать с помощью редактора макросов. Окно настройки «Диспетчер макросов» можно также использовать для переименования и удаления модулей VBA.
Запись макросов
Макросы можно записывать и сохранять для дальнейшего использования.
Можно также записать временные макросы для действий, которые требуется повторить всего несколько раз. Временный макрос доступен до тех пор, пока не будет записан новый временный макрос.
Воспроизведение макросов
Чтобы выполнить действия, связанные с макросом, воспроизведите макрос.
Можно также воспроизвести временный макрос.
Дополнительные сведения о макросах
CorelDRAW предоставляет доступ к дополнительным ресурсам, содержащим полезные сведения о макросах. Эти дополнительные ресурсы, расположенные в папке Data каталога установки программного обеспечения, описаны в следующей таблице.
На днях поступил новый интересный заказ – создание макроса для CorelDRAW. С визуал бейсиком (именно на разновидности VB пишутся макросы для таких программ) я не имел дела с университета, а по CorelDRAW имел только общее представление, так что с опаской взялся за оценку данной задачи. Однако, как оказалось зря: все просто. В этой статье я попробую показать вам, как можно написать простой макрос для CorelDRAW самостоятельно, даже не умея программировать.
Запускаем CorelDRAW (у меня, например, на данном ноутбуке версия 19, 2017), создаем новый документ – на чем то же мы будем работать, верно? Открываем «Диспетчер макросов», щелкаем правой кнопкой мыши на «Visual Basic for Application» — «Создать новый». Создаем, например, с именем «CopyUp.gms»:
Далее «Инструменты» — «Макросы» — «Редактор макросов» (или сразу ALT+F11) и видим наш новый проект слева вверху. Выделим наш проект, нажмем «Insert» — «UseForm» и вуаля – у нас появилась новая форма в проекте.
Если у вас есть опыт работы с визуальными редакторами (Visual Studio для C# или C++ либо JBuilder для Java, либо других), то вы без труда разберетесь с интерфейсом Microsoft Visual Basic for Application – все очень похоже. Например, нам надо изменить заголовок. Находим в столбце «Alphabetic» строку «Caption» изменяем там на необходимое нам.
Но нам надо, чтобы форма что-то делала, верно? Добавим на неё кнопку (рядом окошко с элементами Toolbox), двойной щелчок по кнопке, переходим в код (обработчик нажатия на неё) и вставляем следующее:
Если вы выберете форму, то уже сможете запустить её – F5 и посмотреть, как она выглядит. Однако, это еще не полноценный макрос, для того, чтобы сделать его таким, надо добавить модуль запуска. Выбираем «Insert» — «Module», добавляем модуль, переходим на вкладку с его кодом и добавляем такой код:
Теперь мы можете запустить макрос, перейдя в основное окно корела, нажать «Запустить макрос», выбрать из выпадающего списка наш и нажать «Run»:
Правда, он ничего не делает, но этим мы займемся на следующих уроках. Кстати, не забудьте сохранить его и (или) скопировать из диспетчера макросов в любое место на компьютере. Получившийся файл CopyUp.gms можно будет уже отправить другому пользователю корел.
А если вы ничего не поняли, но вам срочно или не очень необходимо создать макрос для CorelDRAW, то вы можете написать мне – я с удовольствием и за небольшую плату помогу вам или запрограммирую любой макрос сам. С гарантией. Пишите!
Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Макросы можно: — создавать автоматически, — писать «с нуля», — и среднее между первым и вторым.
Создавать автоматически. Для этого в CorelDraw есть специальные возможности: 1) Командой «Записать» (Инструмент -> Visual Baisic -> Записать) (рис) создаем имя макроса и указываем, что дальше идет запись действий (не всех), которые вы хотите записать для автоматического воспроизводства. 2) Командой «Стоп» (Инструмент -> Visual Baisic -> Стоп) указываете, что запись закончена. 3) Воспроизвести выполненные действия — выполяете комаду «Проиграть» (Инструмент -> Visual Baisic -> Проиграть). Сохраняя документ CorelDraw в формате *.cdr, вы автоматически сохраняете и структура макросов данного сеанса, правде при загрузке этого файла надо указать (система спросит) «Enamle Macros». Примеры же автоматической организации макросов дан в уроке 1.
Писать «с нуля». Здесь надо знать основы языка программирования Visual Basic for Applications (см. например здесь), команды CorelDraw на VBA, Learning CorelSCRIPT и т.д., что довольно скучное занятие и под силу опытным программистам (например, текст этого макроса через «Блокнот» или WordPad сохраните в файле с расширением *.csc (смотрите внимательно) и затем запустите макрос («Инструмент -> Запустите скрипт»). Вы получили макрос, написанный с нуля, правда, без всяких кодов CorelDraw.
Макросы — среднее между создавать их автоматически и писать «с нуля» Чаще приходится дублировать действия. Одно действие при этом можно создать автоматически, а дальше дело техники (точнее некоторых приемов создания циклов на Visual Baisic). Поэтому требуется модернизировать макросы, созданные автоматически. При этом в той структуре (проектах), куда они записываются автоматически.
Пример 1. Создать макрос вращение отрезка вокруг его начальной точки.
Вот его текст Sub Macro1() Dim i As Integer x1 = 4 y1 = 5 r = 4 ug0 = 0 num = 41 ugi = 6.28 / num For i = 1 To num ug = ug0 + i * ugi x2 = x1 + r * Sin(ug) y2 = y1 + r * Cos(ug) Dim s104 As Shape Dim crvs104 As Curve Set crvs104 = CreateCurve(ActiveDocument) With crvs104.CreateSubPath(x1, y1) .AppendLineSegment x2, y2 End With Set s104 = ActiveLayer.CreateCurve(crvs104) k = k + 1 Next i End Sub
Видно, что код создания отрезка (взят из автоматической записи макроса для отрезка) состоит из 6 строк:
Dim crvs104 As Curve Set crvs104 = CreateCurve(ActiveDocument) With crvs104.CreateSubPath(x1, y1) .AppendLineSegment x2, y2 End With Set s104 = ActiveLayer.CreateCurve(crvs104) где x1,y1 и x2,y2 — координаты начала и конца отрезка.
Цикл организован так: For i = 1 To num
Пример 2. Организовать перебор точек на отрезке прямой линии.
Sub Macro2() Dim i As Integer num = 25 r1 = -0.1 r2 = -0.1 r3 = 0.1 r4 = 0.1 x1 = 1 y1 = 1 x2 = 10 y2 = 7 tb = 1 / num For i = 0 To num t = i * tb x = (1 — t) * x1 + t * x2 y = (1 — t) * y1 + t * y2 Dim s45 As Shape Set s45 = ActiveLayer.CreateEllipse((x + r1), (y + r2), (x + r3), (y + r4), 90#, 90#, False) s45.Fill.UniformColor.CMYKAssign 0, 100, 100, 0 Next i
Dim s104 As Shape Dim crvs104 As Curve Set crvs104 = CreateCurve(ActiveDocument) With crvs104.CreateSubPath(x1, y1) .AppendLineSegment x2, y2 End With Set s104 = ActiveLayer.CreateCurve(crvs104) End Sub
Для изображения точки и ее заливки цветом использован код: Dim s45 As Shape Set s45 = ActiveLayer.CreateEllipse((x + r1), (y + r2), (x + r3), (y + r4), 90#, 90#, False) s45.Fill.UniformColor.CMYKAssign 0, 100, 100, 0
Пример 3. Определить минимальное расстояние от точки до отрезка. Показать ЦФ расстояния от точки до отрезка.
Вот цикл (полный т екст Макры 3 см. здесь ) (для CorelDraw 10 здесь)
For i = 0 To num t = i * tb x = (1 — t) * x1 + t * x2 y = (1 — t) * y1 + t * y2 Set s45 = ActiveLayer.CreateEllipse((x + r1), (y + r2), (x + r3), (y + r4), 90#, 90#, False) s45.Fill.UniformColor.CMYKAssign 0, 100, 100, 0 Set crvs104 = CreateCurve(ActiveDocument) With crvs104.CreateSubPath(x, y) .AppendLineSegment x3, y3 End With Set s104 = ActiveLayer.CreateCurve(crvs104) s = Sqr((x — x3) * (x — x3) + (y — y3) * (y — y3)) Set s46 = ActiveLayer.CreateEllipse((x — r5), (s — r5 + 1), (x + r5), (s + r5 + 1), 90#, 90#, False) s46.Fill.UniformColor.CMYKAssign 0, 100, 100, 100 If s В цикле происходит: — перебор отрезков от точки до прямой, — перебор точек на прямой, — перебор точек на ЦФ на всей области существования ЦФ — перебор точек на ЦФ до минимума расстояния от точки до прямой.
Чтобы загрузить текст макросов (все три макры здесь ) ( для CorelDraw 10 здесь ) в CorelDraw, нужно выполнить 1. Откройте CorelDraw (новый документ). 2. Создайте пустую запись макроса (Инструмент -> Visual Baisic -> Записать) (см. рис) 3. После того, как вы щелкните по «Записать» появится окно (рис), в котором после команды ОК вы создадите Макрос (пустой), который можно редактировать, в частности, записать в него свои тексты своих макросов. 4. Откойте макрос: (Инструмент -> Visual Baisic -> Проиграть) 5. После выполнений команды «Проиграть» появится окно, в котором надо выполнить команду Edit (редактирование). 6. Выполнив команду «Edit», вы автоматически попадате в редактор Visual Baisic, где будет текст вашего пустого макроса (рис.) 7. Через буфер (Ctrl + c) скопируйте туда набор данных макросов. 8. Запустите тот или иной макрос (Инструмент -> Visual Baisic -> Проиграть-> Макро 1,2,3 -> Run) 9. А сохранив файл CorelDraw, вы сохраните в нем и проект макросов.
Далее рассмотрим примеры построение муаров и использование случайных чисел (тексты 4-х макросов здесь) (для CorelDraw 10 здесь).
Пример 5. Муар на квадрате (Макро1)
Пример 6. Муар на треугольнике (Макро2)
Пример 7. Разбросать окружности на листе A4 случайным образом со случайной заливкой.
Пример 8. На листе A4 создать три формы: круг, квадрат и треугольник со случайной их заливкой.
Как загрузить макры в CorelDraw см. выше.
Примечание. При копировании текстов в рекдактор CorelSCRIPT строки могут быть скопированы с переносом, что вызовет ошибку (эти строки будут выделены), поэтому попытайтесь их сдвинуть влево.
Встроенные диалоговые окна: окна ввода и вывода
Sub Macro1() Dim zF As String, zI As String zF = InputBox(«Ваша фамилия», «Окно ввода») Dim s As Shape Set s = ActiveLayer.CreateArtisticText(0, 0, zF) With s.Text.FontProperties .Name = «Arial» ‘ «Arial Black» «TimesET» .Size = 40 End With zI = «Борис» Dim s1 As Shape MsgBox «Ваша имя, братец, будет: » & zI Set s1 = ActiveLayer.CreateArtisticText(2, 0, zI) With s1.Text.FontProperties .Name = «Arial» .Size = 40 End With End Sub
При выполнении графических работ требуется соблюдать ГОСТ, в частности, чертежи должны иметь основную надпись. Каждый раз ее чертить довольно трудоемкая работа. Можно хранить чертеж основной надписи в формате .cdr и им пользоваться, однако удобнее иметь макрос, с помощью которого можно в диалоге быстро внести свои данные
Пример 10. Написать макрос, который бы автоматически исполнял основую надпись с вводом в диалоге постоянных данных и переменных: фамилию, номер задания, лист, количество листов, название группы. Начала системы коордимнат поместим в нижний правй угол. Решение задачи. 1. Выполним рамку и заполним ее на листе с сохранением сценария. 2. Организуем ввод и заполнении переменных данных через диалоговое окно ввода.
Протокол ввод текста на рабочее поле не записывает. Поэтому сначала рисуем прямоугольники (с левого нижнего угла вверх), а потом берем эти координаты и подставляем их в коды вывода нужного текста. Внизу в макросе показан этот прием.
Sub Macro2() Dim s980 As Shape Set s980 = ActiveLayer.CreateRectangle(2.786543, 2.676874, 5.645953, 3.549236, 0, 0, 0, 0) Set s3 = ActiveLayer.CreateArtisticText(2.786543, 2.676874, «Проба») With s3.Text.FontProperties .Name = «Arial» .Size = 24 End With End Sub Макрос (CorelDraw11) построения «Основной надписи» с вводом в диалоге фамилий: кто выполнил, кто проверил, номер задания, название группы, номер варианта здесь. Основнуюнадпись с макросом ввода своих данных в формате .cdr скачать отсюда.
Резюме. Используя макросы, можно автоматизировать некоторые часто повторяющиеся виды построений при графических работах. В данном наборе макросов собраны базовые элементы: отрезок прямой, окружность, прямоугольник, многоугольник и т.д. В другом наборе задаются аксонометрические оси 5-ти стандартных аксонометрических проекций (изометрия, диметрия, фронтальная косоугольная изометрия и диметрия, горизонтальная косоугольная изометрия — зенитная проекция), применяемых в начертательной геометрии и черчении.