Pomoc przy zautomatyzowaniu procesu ustawiania obiektów |
Autor |
Wiadomość |
kam_fafik
Początkujący
Wersja CorelDRAW: x7
Dołączył: 05 Mar 2019 Posty: 6 Skąd: Poznań
|
Wysłany: 5 Marzec 2019, 16:06 Pomoc przy zautomatyzowaniu procesu ustawiania obiektów
|
|
|
Witam, i od razu z prośbą o pomoc.
Czy znajdzie się ktoś kto pomoże w kłopocie.
Mam załóżmy kilkaset stron z obiektami/projektami (każdy inny ale o tych samych wymiarach), po 1 na stronę (zgrupowane do 1 obiektu) i muszę je poukładać jeden obok drugiego. Do tej pory robiłem to ręcznie ale to upierdliwa robota i zajmuje od groma czasu.
Czy jest jakieś makro lub coś w tym stylu aby zautomatyzować ten proces.
Wydruk seryjny tutaj niestety odpada bo z corela nie jest to drukowane tylko z jakiegoś innego ripa czy coś takiego i trzeba przygotowywać pod ten program gotowe strony.
Myślałem aby można było zrobić to tak że przykładowo mamy rozmiar strony (obiekty mają taki sam rozmiar) 15x60mm czyli x=15mm y=60mm.
Odpalamy makro i podajemy wartość x i y oraz dodatkowo wartość Z (która będzie określała ilość przesunięć w x - tak jakby to była ilość wierszy w tabeli).
Po wczytaniu tych danych makro zaznacza obiekt ze str1 i przesuwa go w pionie o wartość x (czyli tak jakby przesuwa obiekt poza stronę) i przechodzi na kolejną stronę i robi tak samo z obiektem na stronie 2 ale o wartość 2x i kolejnych aż do wartości Z. (tworzy „wiersze” tabeli)
Potem wartość Z się resetuje, zaznaczane są wszystkie obiekty (te przesunięte poza stronę) i przesuwane o wartość Y. Potem przechodzi na kolejną stronę i zaczyna od nowa przesuwać obiekty o wartość X. I tak dalej przez te kilkaset stron.
Nie znam się za bardzo na skryptach i makrach ale liczę że znajdzie się dobra duszyczka która mnie w tym temacie poratuje
Zawsze można się jakoś dogadać |
|
|
|
|
tegraf
Ekspert tegraf
Pomógł: 74 razy Dołączył: 21 Mar 2011 Posty: 1954 Skąd: Zielona Góra
|
Wysłany: 5 Marzec 2019, 22:03
|
|
|
Zamiast podawać łopatologiczny opis sposobu działania makra, lepiej dołącz przykładowy plik (ten wielostronicowy) i ten z wynikowym montażem. To wcale nie musi działać zgodnie z Twoim opisem.
Przyznaję, że jakoś mrozi mnie fakt pracy z dokumentem corelowym o kilkuset stronach. To nie może kończyć się dobrze. |
|
|
|
|
kam_fafik
Początkujący
Wersja CorelDRAW: x7
Dołączył: 05 Mar 2019 Posty: 6 Skąd: Poznań
|
Wysłany: 6 Marzec 2019, 08:19
|
|
|
Ok. załączyłem pliki przed i po ułożeniu.
Mniej więcej o coś takiego mi chodzi.
plik_przed ulozeniem.part2.rar
|
Pobierz Plik ściągnięto 274 raz(y) 400.48 KB |
plik_przed ulozeniem.part1.rar
|
Pobierz Plik ściągnięto 294 raz(y) 2 MB |
plik_ulozony.cdr
|
Pobierz Plik ściągnięto 240 raz(y) 368.59 KB |
|
|
|
|
|
tegraf
Ekspert tegraf
Pomógł: 74 razy Dołączył: 21 Mar 2011 Posty: 1954 Skąd: Zielona Góra
|
Wysłany: 6 Marzec 2019, 08:32
|
|
|
Chodzi o układanie tekstów w tabeli? To ma być później drukowane czy cięte ploterem? Spady są potrzebne? Znaczniki cięcia?
Pokaż prawdziwą jedną stronę pliku przed ułożeniem, o ile to nie jest specjalnie tajne. |
|
|
|
|
kam_fafik
Początkujący
Wersja CorelDRAW: x7
Dołączył: 05 Mar 2019 Posty: 6 Skąd: Poznań
|
Wysłany: 6 Marzec 2019, 08:40
|
|
|
Nie jest tajne
będzie to drukowane. znaczniki cięcia są gotowe jak na załączonym pliku. trzeba je tylko poukładać jeden obok drugiego, żeby można było umieścić na formatkach do zadruku.
60x14mm_1.cdr
|
Pobierz Plik ściągnięto 295 raz(y) 460.03 KB |
60x14mm.cdr
|
Pobierz Plik ściągnięto 262 raz(y) 15.01 KB |
|
|
|
|
|
tegraf
Ekspert tegraf
Pomógł: 74 razy Dołączył: 21 Mar 2011 Posty: 1954 Skąd: Zielona Góra
|
Wysłany: 6 Marzec 2019, 09:04
|
|
|
Wybacz, że Cię tak ciągnę za język, ale nikt się tego nie podejmie (albo podejmie - ale po dwóch dniach rzuci w kąt), jeżeli będzie się okazywać co chwilę, że czegoś nie dopowiedziałeś.
W Twoich pierwszych załączonych plikach nie ma znaczników cięcia - teraz nagle się pojawiają.
Mają być między użytkami - czy tylko na zewnątrz?
Dołącz finalny, prawdziwy plik z Twoim montażem tych kodów, który wysyłasz do drukarni, wtedy wszystko będzie jasne (nie jakieś uproszczone symulacje z "wzór 1").
A tak przy okazji: nie lepiej wygenerować z tego pliku pdfa wykorzystując corelowy mechanizm impozycyjny?
|
|
|
|
|
kam_fafik
Początkujący
Wersja CorelDRAW: x7
Dołączył: 05 Mar 2019 Posty: 6 Skąd: Poznań
|
Wysłany: 6 Marzec 2019, 09:29
|
|
|
Nie ma sprawy, nie znam się na skryptach i makrach więc pytam
chodzi tylko o ustawienie tego jak w załączonym pliku 60x14_1 jeden obok drugiego, a nie o przygotowanie całej formatki do druku
Pasery są także pomiędzy użytkami, ale to nie przeszkadza bo później i tak nie będą widoczne po wydrukowaniu i późniejszej obróbce.
Potem mogę takie użytki poukładać na formatce do wydrukowania razem z innymi projektami bo często na 1 formatce jest kilka różnych rzeczy do wydrukowania.
Próbowałem już generować pdf przez wydruk seryjny w corelu ale i tak muszę potem ponownie importować do corela w celu ustawienia użytków na formatkach. Myślałem, że da się takie coś zrobić tylko w corelu aby nie skakać między programami.
Nie wysyłam do drukarni tylko sam drukuję z jakiegoś ripa który czyta tylko .eps więc generuję je z corela.
Próbowałem drukować spod corela, ale też nie działa Zostaje mi łopatologiczne ustawianie użytków na formatce i generowanie .eps
60x14mm_1.cdr
|
Pobierz Plik ściągnięto 292 raz(y) 460.03 KB |
|
|
|
|
|
kam_fafik
Początkujący
Wersja CorelDRAW: x7
Dołączył: 05 Mar 2019 Posty: 6 Skąd: Poznań
|
Wysłany: 12 Marzec 2019, 13:30
|
|
|
Hej znalazłem taki kod od kolegi tomek123,
Kod: | Public Sub UNION()
Dim s As Shape, x As Double, y As Double, _
i As Integer, j As Integer, b_union As Boolean, _
doc1 As Document, doc As Document, pg As Page, frame As Shape
Const col_count As Integer = 10 'ilosc stron w kolumnie
b_union = False
i = 0
j = 0
Optimization = True
Set doc = ActiveDocument
doc.Unit = cdrMillimeter
doc.ActivePage.GetSize x, y
For Each pg In doc.Pages
If b_union = False Then
Set doc1 = CreateDocument
doc1.Name = "union"
doc1.Unit = cdrMillimeter
b_union = True
End If
Set frame = pg.ActiveLayer.CreateRectangle(0, y, x, 0)
Set s = pg.SelectShapesFromRectangle(-1.5, y + 1.5, x + 1.5, -1.5, False)
s.Copy
frame.Delete
Set s = doc1.ActiveLayer.Paste
s.SetPosition j * x, y - (i * y)
i = i + 1
If i = col_count Then
i = 0
j = j + 1
End If
Next
'doc.Close
Optimization = False
End Sub
|
i generalnie o to mi chodziło, z tym, że nie wszystkie strony ułożyły się w tabeli i nie bardzo wiem dlaczego. Może ktoś w was pomóc i poprawić kod tak aby wszystkie obiekty ze stron układały się jeden obok drugiego i nie było brakujących pustych miejsc?
Załączam plik przed ułożeniem (50x25mm_lista) oraz po odpaleniu skryptu (plik union).
Z góry dzięki za jakąkolwiek pomoc
union.cdr
|
Pobierz Plik ściągnięto 312 raz(y) 1.81 MB |
50x25mm_lista.part2.rar
|
Pobierz Plik ściągnięto 264 raz(y) 245.94 KB |
50x25mm_lista.part1.rar
|
Pobierz Plik ściągnięto 261 raz(y) 2 MB |
|
|
|
|
|
tegraf
Ekspert tegraf
Pomógł: 74 razy Dołączył: 21 Mar 2011 Posty: 1954 Skąd: Zielona Góra
|
Wysłany: 12 Marzec 2019, 14:29
|
|
|
U mnie (Corel 2017) wypełniło bez dziur. |
|
|
|
|
kam_fafik
Początkujący
Wersja CorelDRAW: x7
Dołączył: 05 Mar 2019 Posty: 6 Skąd: Poznań
|
Wysłany: 13 Marzec 2019, 10:23
|
|
|
Po wyłączeniu i włączeniu rano kompa i kolejnych próbach (a nóż coś zaskoczy) działa tak jak powinien czyli bez dziur |
|
|
|
|
|