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

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload

Poprzedni temat «» Następny temat
Problem z wypełnieniem kształtu?
Autor Wiadomość
TheMan258 
Początkujący
TheMan258


Wersja CorelDRAW: x5
Wiek: 33
Dołączył: 22 Lut 2021
Posty: 14
Skąd: Kraków
  Wysłany: 27 Styczeń 2024, 19:16   Problem z wypełnieniem kształtu?

Witam,
Dawno się nie odzywałem, ponieważ dotychczas radziłem sobie ze wszystkim samodzielnie. Jednak teraz napotkałem problem, z którym nie potrafię sobie poradzić. Kiedyś otrzymałem od klienta plik z topperem, i moje zdziwienie było ogromne, gdy próbowałem go wypełnić kolorem – wypełniał się całościowo zamiast tylko liter. Z ciekawości próbowałem zamykać ścieżki później zacząłem korzystać z różnych narzędzi, takich jak CurveWorks czy Cadintools, ale niestety, bezskutecznie :cry . Szukałem rozwiązania w Internecie, lecz bez rezultatu (albo może źle szukałem 😉). Pojawia się także problem z plikami DXF. Wszystkie importowane z CADA kształty są praktycznie pootwierane. Z topperem, podobnym do tego załączonego, można poradzić sobie np. trasowaniem, ale gdy pojawi się potrzeba otwarcia pliku z CADA, sytuacja staje się mniej radosna. Czy istnieje jakiś sposób, na przykład przy użyciu makra który pozamyka otwarte ścieżki. Spotkaliście się z czymś takim kiedykolwiek :hm W załączniku przesyłam wspomniany plik.

Podgląd.png
Pobierz Plik ściągnięto 308 raz(y) 157.03 KB

Plik próbny.cdr
Dla chętnych przesyłam plik z wspomnianym topperem którego nie mogę wypełnić.
Pobierz Plik ściągnięto 193 raz(y) 32.22 KB

 
 
Oganesson 
Bywalec


Pomógł: 9 razy
Dołączył: 07 Sty 2017
Posty: 24
Skąd: LonKra
Wysłany: 28 Styczeń 2024, 12:51   

Użyj narzędzia "smart fill tool" (inteligentne wypełnienie) do wypełniena a będziesz miał linie wypełnione tak jak po prawej.
 
 
TheMan258 
Początkujący
TheMan258


Wersja CorelDRAW: x5
Wiek: 33
Dołączył: 22 Lut 2021
Posty: 14
Skąd: Kraków
Wysłany: 28 Styczeń 2024, 22:07   

Oganesson napisał/a:
Użyj narzędzia "smart fill tool" (inteligentne wypełnienie) do wypełniena a będziesz miał linie wypełnione tak jak po prawej.

Bardzo dziękuję za odpowiedź :ok Człowiek codziennie się czegoś uczy nowego. W wolnym czasie pomyślę nad stworzeniem makra który wypełnia w ten sposób otwarte obiekty :dances
 
 
Martin Nez 
Doradca
Grafik?


Wersja CorelDRAW: 2019
Pomógł: 14 razy
Dołączył: 29 Sty 2011
Posty: 114
Skąd: Czmoń
Wysłany: 29 Styczeń 2024, 20:19   

To nie problem z rozłączonymi węzłami - rozłączone są małe elementy: nad "n" w "Komunia" oraz w środku "a" w "Święta". To częsty błąd Corela, ja mam takie makro do radzenia sobie z nim:
Kod:
Sub zalej()
    ' sprawdzenie czy coś zostało zaznaczone
    If ActiveSelection.Shapes.Count = 0 Then
        MsgBox ("Zaznacz obiekt(y).")
        Exit Sub
    End If
   
    Dim s As Shape
    For Each s In ActiveSelectionRange
        If s.Type = cdrGroupShape Then
            For Each ss In s.Shapes
                If ss.FillMode = cdrFillWinding Then ss.FillMode = cdrFillAlternate
            Next
        Else
            If s.FillMode = cdrFillWinding Then s.FillMode = cdrFillAlternate
        End If
    Next s
End Sub

Należy zaznaczyć obiekt z takim błędem i uruchomić skrypt. Działa z obiektami i jednopoziomowymi grupami (tylko z takich korzystam, więc nie kombinowałem z innymi).

Pozdr,
MN
 
 
TheMan258 
Początkujący
TheMan258


Wersja CorelDRAW: x5
Wiek: 33
Dołączył: 22 Lut 2021
Posty: 14
Skąd: Kraków
Wysłany: 1 Luty 2024, 22:56   

Martin Nez napisał/a:
To nie problem z rozłączonymi węzłami - rozłączone są małe elementy: nad "n" w "Komunia" oraz w środku "a" w "Święta". To częsty błąd Corela, ja mam takie makro do radzenia sobie z nim:
Kod:
Sub zalej()
    ' sprawdzenie czy coś zostało zaznaczone
    If ActiveSelection.Shapes.Count = 0 Then
        MsgBox ("Zaznacz obiekt(y).")
        Exit Sub
    End If
   
    Dim s As Shape
    For Each s In ActiveSelectionRange
        If s.Type = cdrGroupShape Then
            For Each ss In s.Shapes
                If ss.FillMode = cdrFillWinding Then ss.FillMode = cdrFillAlternate
            Next
        Else
            If s.FillMode = cdrFillWinding Then s.FillMode = cdrFillAlternate
        End If
    Next s
End Sub

Należy zaznaczyć obiekt z takim błędem i uruchomić skrypt. Działa z obiektami i jednopoziomowymi grupami (tylko z takich korzystam, więc nie kombinowałem z innymi).

Pozdr,
MN

Dopiero teraz znalazłem czas na odpisanie... Super bardzo dziękuję to 100% rozwiązuje problem z wypełniem :!: Jak zacząłem drążyć temat to znalazłem podobne przypadki na zagranicznych forach, ale tam też radzili żeby użyć "smartfill" tak jak kolega wyżej poradził. Na szybko coś takiego napisałem.
Kod:
 S.GetPosition x, y
Set s1 = S.CustomCommand("Boundary", "SmartFill", x, y, Nothing, 0.003, Nothing)
I problem w tym, że bazuje ono na współrzędnych kursora i po dodaniu pętli raz wypełnia prawidłowo a raz nie. Więc zatem nie pozostaje mi nic innego jak jeszcze raz podziękować za poświecenie czasu i powyższe macro :ok
 
 
Sparkman
Początkujący


Wersja CorelDRAW: Corel X6
Dołączył: 17 Kwi 2019
Posty: 5
Skąd: Wrocław
Wysłany: 14 Luty 2024, 11:15   

W przypadku tego pliku wystarczyło użyć funkcji Reverse Direction do któregoś z węzłów zewnętrznej pętli. Nie wiem czemu ale Coreldraw ma czasem ma problem z poprawnym wypełnieniem takich obiektów.
Oczywiście warto też usunąć kilka małych elementów, o których wspomniano wcześniej.
Ja do takiego czyszczenia używam starego macra WX Tools / selectSmalObjects, ale to w Corel X6.
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Nowe zasady dotyczące cookies. Wykorzystujemy pliki cookies, aby nasz serwis lepiej spełniał Państwa oczekiwania. Można zablokować zapisywanie cookies, zmieniając ustawienia przeglądarki.
         
Strona wygenerowana w 0.1 sekundy. Zapytań do SQL: 12