Automatyzacja plików graficznych WSTĘP Tworzenie pliku makra 1 Pierwsza procedura - uruchomienie 4 Klawisz skrótu na pasku zadań 5 PODSTAWY PROGRAMOWANIA 6 MAKRO_1 tworzenie prostokąta 8 MAKRO_2 obrót 9 MAKRO_3 długość krzywych 10 MAKRO_4 eksport JPG 11 autor: Andrzej Żak www.studiocdr.pl/grafika
TWORZENIE PLIKU MAKRA 1) Znajdź katalog programu CorelDRAW o nazwie GMS X4 i starsze C:\Program Files\Corel\CorelDRAW Graphics Suite X4\Draw\GMS X5 C:\Users\<your user name>\appdata\roaming\corel\coreldraw Graphics Suite X5\Draw\GMS X6 C:\Users\<your user name>\appdata\roaming\corel\coreldraw Graphics Suite X6\Draw\GMS X7 C:\Users\<your user name>\appdata\roaming\corel\coreldraw Graphics Suite X7\Draw\GMS Win XP C:\Program Files\Corel\CorelDRAW Graphics Suite...\Draw\GMS Win 7 C:\Users\"Nazwa użytkownika" \AppData\Roaming\Corel\Graphics...\Draw\GMS Vista C:\Users\"Nazwa użytkownika" \AppData\Roaming\Corel\Graphics...\User Draw\GMS 2) Utwórz nowy plik tekstowy na pulpicie (dowolna nazwa) 3) Należy przenieść ten plik do folderu GMS 4) Zmień rozszerzenie pliku z txt na gms Zmiana nazwy pozwala na zmianę rozszerzenia Standardowo nie widać rozszerzeń plików. Nalezy wyłączyć opcję ich ukrywania. 1
5) Uruchom program CorelDRAW o przejdź do edytora makr (Alt+F11) 6) Nazwij dowolnie swoje makro 2
7) Utwórz pierwszy moduł (można ich tworzyć wiele). W module wpisujemy polecenia dla CorelDRAW. Można zmieniać nazwę modułu Możesz zmienić nazwę 3
PIERWSZA PROCEDURA - uruchomienie Sub - procedura W jednym module może znajdować się wiele procedur lecz każda z nich musi mieć inną nazwę URUCHOMIENIE MAKRA (procedury) Aby uruchomić żądaną procedurę (np. komunikat2 ) kursor musi znajdować się w jej zakresie. Uruchamiamy procedurę przyciskiem F5 lub ikoną Run Sub Sub komunikat() Rem komentarz piszemy po słowie Rem ' komentarz piszemy po apostrofie MsgBox "Komunikat",, "OKNO KOMUNIKATU" Sub komunikat2() MsgBox "Komunikat2",, "OKNO KOMUNIKATU" 4
KLAWISZ SKRÓTU Aby na stałe mieć dostęp do własnej procedury można wyciągnąć skrót na pasek zadań. Skrót będzie odwoływał się do wybranej przez nas procedury. Przenieś wybraną procedurę w dowolne miejsce na pasku zadań. Powstanie ikona odwołująca się do tej procedury. Możesz dowolnie pokolorować ikonę 5
PODSTAWY PROGRAMOWANIA ZMIENNA Zmienna przechowuje dane w pamięci komputera. Aby móc ją identyfikować musi posiadać własną niepowtarzalną nazwę. x = 20 x - nazwa zmiennej 20 wartość zmiennej Zmienna może przechowywać różne typy danych i dlatego musimy przed jej użyciem zadeklarować jaki typ danych będzie przechowywała. Dim x As Integer 'mówimy komputerowi że pod zmienną x będziemy przechowywac dane liczbowe w zakresie -32.768 do 32.767 Sub zmienne() x = 5 'jeśli wpiszemy 5.4 komunikat wyświetli liczbę 5 MsgBox x ' polecenie Msgbox to okno komunikatu w którym wyświetlona zostanie wartość zmiennej x DEKLARACJA Dim x As Integer Sub zmienne1() Sub zmienne2() Sub zmienne1() Dim x As Integer Sub zmienne2() Public x As Integer Sub zmienne1() Sub zmienne2() 'Instrukcja DIM deklaruje zmienną, która jest widoczna na poziomie całego modułu 'zmienna x widoczna na poziomie procedury zmienne1 'zmienna x widoczna na poziomie wszystkich modułów całego projektu Sub zmienne1() Static x x = x+1 Msgbox x 'zmienna statyczna deklarowana tylko wewnątrz procedury zachowuje swą wartość podczas każdego wywołania procedury 6
STAŁA Const tekst2 As String = " lat" Instrukcja Const służy do deklarowania stałej niezmiennej przez cały czas działania programu Const tekst2 As String = " lat" Sub zmienne() MsgBox tekst2 Podobnie do zmiennych używamy instrukcji Private, Public. 7
MAKRO_1 - rysujemy prostokąt Makro_1 pokazuje w jaki sposób działa polecenie CreateRectangle. Służy ono do rysowania dowolnego prostokąta na aktywnej stronie Corela. ActivePage.ActiveLayer.CreateRectangle 10, 10, 20, 20 dwa pierwsze parametry to pozycja pierwszego narożnika x1, y1 dwa ostatnie parametry to pozycja drugiego narożnika x2,y2 CreateRectangle2 ActivePage.ActiveLayer.CreateRectangle2 0, 0, 10, 20 dwa pierwsze parametry to pozycja startowa x1, y1 dwa ostatnie parametry to wymiary prostokąta: szerokość, wysokość Sub rysujemyprostokat_mm() ActiveDocument.Unit = cdrmillimeter ActivePage.ActiveLayer.CreateRectangle 10, 10, 20, 20 ActivePage.ActiveLayer.CreateRectangle2 0, 0, 10, 20 8
MAKRO_2 - obrót obiektów o 90 Makro_2 pokazuje w jaki sposób działa polecenie Rotate. Obraca wskazany obiekt o dowolny kąt. W ponizszym przypadku obracamy dowolną liczbę obiektów (muszą byc zaznaczone na stronie). Sub OBROT_lewo_90st() ActiveDocument.Unit = cdrmillimeter Dim s As Shape For Each s In ActiveSelectionRange s.rotate 90 Next 9
MAKRO_3 - długość krzywych Makro pozwala na obliczenie faktycznej długości dowolnej krzywej. Jest to możliwe dzięi zastosowaniu polecenia Lenght Sub DŁUGOSC_krzywych() ActiveDocument.Unit = cdrmillimeter Dim dlugosckrzywej As Double Dim dlugosckrzywych As Double Dim s As Shape dlugosckrzywych = 0 For Each s In ActiveSelectionRange dlugosckrzywej = s.curve.length dlugosckrzywych = dlugosckrzywych + dlugosckrzywej Next s MsgBox dlugosckrzywych & " mm" & Chr(13) & _ dlugosckrzywych / 10 & " cm" & Chr(13) & _ dlugosckrzywych / 1000 & " m" 10
MAKRO_4 - eksport JPG Dzięki makru można wyeksportować zaznaczone obiekty do pliku JPG. Sub eksport_jpg() ActiveDocument.Unit = cdrmillimeter Dim sciezka As String Dim nazwapliku As String Dim rozdzielczosc As Long sciezka = "D:\" nazwapliku = InputBox("Podaj nazwę pliku") rozdzielczosc = 250 Dim filtrexportu As ExportFilter Set filtrexportu = ActiveDocument.ExportBitmap( _ sciezka & nazwapliku & ".jpg", cdrjpeg, _ cdrselection, cdrrgbcolorimage,,, _ rozdzielczosc, rozdzielczosc, cdrnoantialiasing, True) filtrexportu.finish 11