| |
Corel FORUM Forum użytkowników programów firmy Corel. Grafika wektorowa, rastrowa i obróbka zdjęć cyfrowych |
 |
CorelDRAW - grafika wektorowa - Przeniesienie koloru wypełnienia na kolor konturu
neolech - 10 Listopad 2015, 20:25 Temat postu: Przeniesienie koloru wypełnienia na kolor konturu Witam,
korzystam z Corela w wersji x3.
Mam taki dość błahy problem, jednak nie mogę sobie z nim za nic poradzić, ani nigdzie znaleźć odpowiedzi.
Chodzi o to, że mam w jednym pliku kilkadziesiąt obiektów i każdy z nich ma inny kolor wypełnienia, jednak żaden nie ma konturu. Czy da się jakoś tak zrobić żeby zaznaczyć wszystkie na raz i ustawić tak, aby każdy miał kolor konturu identyczny jak kolor jego wypełnienia? Nie za bardzo mam czas, żeby w każdy obiekt wchodzić osobno i ręczni wpisywać mu kolor.
Jeśli to bardzo proste pytanie, to proszę o wyrozumiałość dopiero się uczę.
Dzięki z góry za pomoc!
Pozdrawiam!
Cysorz - 10 Listopad 2015, 20:42
Użyj po prostu polecenia "Znajdź i zamień".
neolech - 10 Listopad 2015, 20:43
Dzięki za szybką odpowiedź.
Gdzie mam szukać tej opcji?
neolech - 10 Listopad 2015, 20:51
znalazłem tą opcję w edycji, ale tam można tylko znaleźć odpowiedni kolor i zamienić go na inny pojedynczy kolor. Mi chodzi o to żeby wybrać 30 obiektów naraz (z czego każdy ma inne wypełnienie) i zamienić ich kontur którego teraz nie ma, na kontur w kolorze wypełnienia.
chezare - 10 Listopad 2015, 23:29
Plik z dołączonego archiwum zapisz w podkatalogu …Corel\Corel Graphics…\Draw\GMS, tam gdzie zainstalowałeś Corela, standardowo to jest Program Files.
W pliku jest taka procedura
| Kod: | Sub Kontur_jak_wypelnienie()
Dim s As Shape
Dim kw As New Color
Optimization = True
On Error Resume Next
For Each s In ActiveDocument.ActivePage.FindShapes(cdrshape)
s.CreateSelection
kw.CopyAssign s.Fill.UniformColor
ActiveSelection.Outline.SetProperties Color:=kw
Next s
Optimization = False
ActiveWindow.Refresh
End Sub |
Ta procedura ustawia na bieżącej stronie kolor konturu obiektu na taki sam jakim jest wypełniony. Nadanie koloru konturowi powoduje jego utworzenie jeśli go nie było z domyślnymi parametrami (włosowy i linia ciągła).
Gdybyś chciał np. regulować grubość konturu, to trzeba by dodać linię
s.CreateSelection
ActiveSelection.Outline.SetProperties 0.001, OutlineStyles(0)
kw.CopyAssign s.Fill.UniformColor
0.001 to grubość (0,025 mm, włosowy ma 0.003), a outlinestyles(0), to linia ciągła.
Z menu Narzędzia wybierz Visual Basic->Uruchom. W wyświetlonym okienku rozwiń listę Makro w… i znajdź GlobalMacros(kol_kont_jak_wyp.gms) i kliknij przycisk Start.
Ta procedura nadaje kontur w takim kolorze jak wypełnienie wszystkim obiektom na stronie, jak byś chciał stosować ją np. tylko do zaznaczonych obiektów, to trzeba by procedurę zmodyfikować.
Cysorz - 10 Listopad 2015, 23:55
Jeżeli mają jakąkolwiek wspólną cechę (np. ilość węzłów, są kwadratem/prostokątem itp.) to bez problemu: kliknij po wyszukiwaniu "zaznacz wszystkie" i możesz zmienić właściwości wszystkich naraz.
neolech - 12 Listopad 2015, 13:51
@chezare dzięki! o to chodziło :)
Artur Miernik - 12 Listopad 2015, 15:01
Moim zdaniem to powinno zostać przeniesione do FAQ.
kadoesdoi - 7 Marzec 2023, 15:25
Dzięki Chezare za te makro. Działa idealnie na x7.
Mam tylko taki problem, że pracuję teraz na 2021 i uruchomienie makra wywala Corela.
Macie jakiś pomysł czemu?
Martin Nez - 23 Marzec 2023, 21:52
Co prawda nie sprawdzałem na 2021, ale tutaj nieco uproszczona wersja, może będzie działać, bo nie widzę w kodzie powodu dla którego by nie miał.
| Kod: | Sub neolech()
On Error Resume Next
Dim s As Shape
For Each s In ActiveDocument.ActiveLayer.Shapes.All
If s.Outline.Width <> 0 Then s.Outline.SetProperties , , s.Fill.UniformColor
Next
End Sub |
Pozdr,
MN
|
|