Corel FORUM
Forum użytkowników programów firmy Corel. Grafika wektorowa, rastrowa i obróbka zdjęć cyfrowych

Makra - Makro do wyszukania i zmiany konturu linii

Alekssssander - 7 Październik 2019, 15:50
Temat postu: Makro do wyszukania i zmiany konturu linii
Cześć ! Potrzebuję pomocy z makrem do wyszukania linii i zmiany ich konturu.
Aktualnie mam zapisany plik wyszukiwania i wybierając "wyszukaj z pliku" muszę ręcznie zmieniać kontur na inny.
Próbowałem nagrać makro, ale wyskakuje komunikat że nie mogę nagrać tej opcji.

Kontur lini wyszukiwany to :
Kontury - Szerokość dokładnie 0.076 Kolor: R:192 G:192 B:192

Kontur lini po zmianie :
Szerokość dokładnie 0.2, Kolor czarny CMYK, styl kropkowany (kropka, odstęp, odstęp, odstęp)

Przypisanie takiego makra pod skrót klawiszowy bardzo by usprawniło pracę.
Dużo procesów udało mi się nagrać, ale tutaj akurat poległem :mrgreen:

michal.s - 8 Październik 2019, 21:00

Cześć.
Poniżej masz makro, które zamienia kontur RGB 192, 192, 192 na 100% Czarny.
Niestety nie jestem aż taki biegły w VBA żeby Tobie pomóc.
Jedyne co mi się udało to zmienić wyszukiwany kolor konturu z CMYK na RGB.
Może ktoś pomoże Tobie zmodyfikować kod, który zamieni też kontury.

Kod:
Sub CMYK_outline_change_flip()
Dim s As Shape, s_all As ShapeRange, s_target As ShapeRange, quest As String
Set s_all = ActiveDocument.ActivePage.ActiveLayer.Shapes.All
quest = "@outline.color = RGB(192, 192, 192)" 'kolor konturu szukany
Set s_target = s_all.Shapes.FindShapes(query:=quest)
For Each s In s_target
s.Outline.Color.CMYKAssign 0, 0, 0, 100  'nowy kolor konturu
Next s
End Sub

michal.s - 9 Październik 2019, 18:03

Tutaj masz instrukcję jak wyciągnąć skrót do makra.

https://www.printnet.pl/index.html?jak_mierzyc=1

Następnie uruchamiamy program CorelDRAW™ i wybieramy z menu Narzędzia -> Dostosowanie. Na ekranie powinno pojawić się okienko „Opcje"

Zgodnie z oznaczonymi polami na powyższym rysunku wybieramy z listy opcji Polecenia, następnie z rozwijalnego menu wybieramy Makra. Na liście dostępnych modułów odnajdujemy makro DD.dlugosc.policz. Aby dodać przycisk z naszym makrem do listy przycisków należy „przeciągnąć myszką” wybrane makro na pasek z przyciskami i tam je upuścić. (czerwona strzałka na rysunku)

Aby obliczyć długość linii cięcia należy zaznaczyć wszystkie wycinane kształty i kliknąć nowo dodany przycisk.

W przypadku jeśli nie posiadają Państwo odpowiedniej wersji corela długość można zmierzyć dowolnym programem, który posiada funkcje umożliwiające mierzenie długości krzywej. Długość należy podać w milimetrach.
W przypadku braku odpowiedniego oprogramowania, można wydrukować na dowolnej drukarce linie cięcia w znanej skali i zmierzyć ręcznie długość linii za pomocą linijki, cyrkla lub nitki, a następnie przemnożyć przez znany współczynnik skali. Tak przybliżoną wartość należy wpisać do kalkulatora, a nasz pracownik skoryguje ją po sprawdzeniu długości w programie.

Martin Nez - 29 Marzec 2020, 23:02

Witam,
Trochę późno, ale może jeszcze komuś się przyda... Poprawiony kod michal.s.
Kod:
Sub CMYK_outline_change_flip()
    Dim s As Shape, s_all As ShapeRange, s_target As ShapeRange, quest As String
    ActiveDocument.Unit = cdrMillimeter
    ActiveDocument.BeginCommandGroup "Alekssssander"
    Set s_all = ActiveDocument.ActivePage.ActiveLayer.Shapes.All
    quest = "@outline.color = RGB(192, 192, 192) and @outline.width = {0.076 mm}"
    Set s_target = s_all.Shapes.FindShapes(query:=quest)
    For Each s In s_target
        With s.Outline
            .Color.CMYKAssign 0, 0, 0, 100
            .Width = 0.2
            .Style.DashCount = 2
            .Style.DashLength(1) = 1
            .Style.GapLength(1) = 3
        End With
    Next s
    ActiveDocument.EndCommandGroup
End Sub

Pozdr,
MN

Struna - 17 Kwiecień 2020, 14:03

Przepraszam, że poza tematem, ale Martin Nez, mógłbyś może podsunąć prostsze makro na po prostu zaznaczanie wszystkich obiektów z konturem o kolorze CMYK(0, 100, 0, 0), obojętnie jakiej grubości?
Cysorz - 17 Kwiecień 2020, 14:18

Zrób tak:
Ctrl+F (Kreator wyszukiwania) --> Rozpocznij nowe wyszukiwanie --> Typy obiektów: dowolny --> Kontury: Właściwości konturu --> Dalej --> Zaznacz tylko kolor, koniec.
W następnym okienku masz opcję zapisania takiego poszukiwania na przyszłość, zapisujesz to w katalogu "Draw/Find". Czyli następnym razem tylko Ctrl+F i wskazujesz plik "Załaduj ustawienia wyszukiwania z dysku".
Cała operacja trwa raptem kilka sekund, bez pisania kodu, sprawdzania itd.

Struna - 17 Kwiecień 2020, 14:27

Tak mam w tej chwili, ale chciałbym jednym kliknięciem. Sporo wycinam po OPOSie i zawsze to jakieś udogodnienie ;)
Martin Nez - 21 Kwiecień 2020, 10:46

@Struna
w załączniku gotowe makro, którego ja używam. Zaznaczasz wzorzec i wybierasz jakie właściwości ma brać pod uwagę. Może się przyda.

Pozdr,
MN


Powered by phpBB modified by Przemo © 2003 phpBB Group