ZWCAD+ 2012 - druk do PDFa


Krzysiek_

Recommended Posts

Mam duży projekt. Sporo plików, w każdym pliku wiele arkuszy. Jako drukarkę w tych arkuszach mam ustawiony ploter (druk na papier działa poprawnie). AutoCAD pozwalał mi na uruchomienie wszystkich plików i korzystając w funkcji publish za pomocą kilku kliknięć zrobić PDFy ze wszystkich arkuszy w tych plikach na raz (powstawało wtedy ok 300 plików pdf). Obecnie w ZWCAD niestety nie mogę tego zrobić, ze względu na błędy w funkcji drukarki 'DWG to PDF'.

Aby uniknąć drukowania np. PDF Creatorem każdego arkusza z osobna, (zajęłoby mi na prawdę bardzo dużo czasu) chciałbym skorzystać np z darmowego programu Autodesku - DWG TreuView 2013. Problem pojawia się w momencie gdy uruchamiam tym programem plik zapisany w ZWCADzie. Nie ma drukarki ustawionej wcześniej, co powoduje 'rozjechanie się' zawartości arkusza, tabelki, marginesów, rozmiaru papieru itp. Sądziłem, ze problem ten rozwiążę poprzez skopiowanie plików drukarek z plików użytkownika, lecz ich formaty sie nie pokrywają. W ZWCADzie są *.pc5 (Plik PC5) a DWG TrueView 2013 *.pc3 (DWG TrueView Plotter Configuration File).

Proszę o pomoc, jak mogę wydrukować dużą ilość rysunków w możliwie krótkim czasie? Najlepiej nie zmieniając obecnych ustawień drukarki arkuszy, gdyż mam je ustawione tak, aby druk na papierze wychodziły poprawnie.

Edited by Krzysiek_
Link to comment
Share on other sites

Witam

W załączniku dodałem program, który wszystkie arkusze wydrukuje przez PDFCreator.

Plik należy wczytać używając polecenia appload

Po poprawnym wczytaniu pliku, zostanie dodane polecenie "Wielodruk".

Proszę uruchomić to polecenie a w wyniku jego działania wszystkie arkusze zostaną wydrukowane.

Program działa na ZWCAD w wersjach Standard i Professional: 2011, 2012, 2012+

Pozdrawiam

WieloDruk.zel

Link to comment
Share on other sites

Programik powinien rozwiązać mój problem.

Pierwsze próby wyszły średnio, gdyż PDF Creator i tak przyciął mi tabelki w rysunkach. Spróbuje może pogrzebać w ustawieniach samego creatora i go skonfigurować, tak żeby wychodziło poprawnie.

W najbliższych dniach napiszę co z tego wyszło.

Dziękuję ze pomoc i pozdrawiam

Link to comment
Share on other sites

Ja sprawdziłem ale procedura u mnie nie działa. To znaczy wszystkie karty zostały wydrukowane razem z modelem ale nie tak jak sobie życzyłem.

Cała procedura przebiegła bez mojej ingerencji ( program nie czekał na moje decyzje czy coś podobnego).

Arkusze papieru nie wydrukowały całych rysunków - wydaje się że okrojone do A4

Jak trzeba by mieć przygotowane arkusze do druku?

Link to comment
Share on other sites

Witam

Tak właśnie zrozumiałem zadanie, że procedura ma przebiegać bez ingerencji Użytkownika. Decyzje odnośnie np lokalizacji czy nazw utworzonych PDFów pozostają w ustawieniach samego PDFCreatora. W samej procedurze przypisywana jest jedynie drukarka, nie ingerujemy w inne ustawienia akruszy czyli powinny być użyte takie, jakie są ustawione dla każdego arkusza, chyba że PDFCreator w sobie posiada zdefiniowane ustawienia rozmiaru papieru.

Pozdrawiam

Link to comment
Share on other sites

  • 1 year later...

A czy ja mógłbym nieśmiało poprosić o plik źródłowy LSP do celów edukacyjnych?

Na marginesie PDFCreator'a  można konfigurować na bieżąco poprzez wpisy bezpośrednio do rejestru windows, tzn że przed wywołaniem wydruku kolejnego arkusza można ustawić lokalizację i nazwę. Testowałem to w moich programikach pisanych w Harbour ale przypuszczam, że w lispie też by się dało. Ustawiania formatów arkuszy nie testowałem a bym może się w tym temacie douczył.

Link to comment
Share on other sites


(vl-load-com)

; Copyright © 2000—2014 by Usługi Informatyczne SZANSA - Gabriela Ciszyńska-Matuszek.

; www.zwcad.pl

(setq *ZWCAD* (vlax-get-acad-object))

(setq *Rysunek* (vla-get-activedocument *ZWCAD*))

(setq plotConfigurations (vlax-get-property *Rysunek* 'PlotConfigurations ))

;(vlax-dump-object plotConfigurations)

;(setq PloterObj ( )

(setq *LastSelectedPloter* "PDFCreator")

(defun XGetString (komunikat domyslny / Wynik )

;----------------------------------------------------------

;funkcja prosi użytkownika o podanie tekstu

;Argumenty: komunikat, zachętę, który sie wyświetli w linii poleceń w chwili uruchomienia funkcji

;Wynik: tekst kótry Użytkownik wpisze z klawiatury

; nil - jeśli Użytkownik na klawiaturze wciśnie [ESC]

;----------------------------------------------------------

(setq Tresc(vl-catch-all-apply 'getstring (list komunikat ))) ;wykonanie funkcji getstring proszącej o podanie treści tekstu zwraca wpisaną treść lub obiekt błędu

(if (vl-catch-all-error-p Tresc) ; sprawdzenie czy zwrócony został obiekt błędu

(progn ; wystąpił błąd

(prompt (vl-catch-all-error-message Tresc)) ;wyświetla w pasku poleceń komumikat błędu

(setq Wynik nil )

)

(progn ; Użytkownik wpisał tekst poprawnie

(if (= "" Tresc)

(setq Wynik domyslny )

(setq Wynik Tresc)

)

)

)

Wynik

)

(defun v2l (var)(vlax-safearray->list(vlax-variant-value var)))

(defun C:WieloDruk ( / Layouts %)

(setq Ploter (XGetString (strcat "Podaj nazwę drukarki:<" *LastSelectedPloter* ">") *LastSelectedPloter*))

(if Ploter (progn

(setq Layouts(vlax-get-property *Rysunek* 'Layouts ))

(setq % (vla-item Layouts 0 ))

(setq Plotters (vlax-invoke-method % 'GetPlotDeviceNames ) )

(setq PlottersList(v2l Plotters))

(if (member Ploter PlottersList)

(progn

(setq *LastSelectedPloter* Ploter )

(vlax-for % Layouts

(eval(list 'command "_-plot" "_n" (vlax-get-property % 'Name ) "" Ploter "_n" "_n" "_y") )

)

)

(alert (strcat "Drukarka/Ploter " Ploter " nie jest zainstalowana"))

)

))

)

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.