wsadowe przekształcanie dwg do pdf


Rekomendowane odpowiedzi

Witam!

Jestem tutaj nowym użytkownikiem. Od miesiąca jestem użytkownikiem ZWCAD-a.

B. łatwo udało mi się przejść z ACAD-a do tego programu. Pliki dwg program przekształca do pdf-a b. szybko i bez żadnych problemów. Marzy mi się jeszcze tylko by proces ten, dla większej ilości plików, zautomatyzować.

Czy jest to możliwe?

Pozdrawiam.

H. Rojek

Odnośnik do komentarza
Udostępnij na innych stronach

Przez minioną sobotę walczyłem z tym problemem.

Wydaje mi się, że znalazłem rozwiązanie. Oto lisp:

(defun C:AUTOSCR (/ FULL_NAME LOG_NAME FNAME_DIR FNAME_LIST

SCR_NAME FILE IN)

(setq FULL_NAME (getfiled "Select A Drawing File" "" "dwg" 8));"D:\\Proba\\010_02.DWG"

(if FULL_NAME (progn

(setq LOG_NAME (getvar "loginname"));"Heniek"

(setq FNAME_DIR (vl-filename-directory FULL_NAME));"D:\\Proba"

(setq FNAME_LIST (vl-directory-files FNAME_DIR "*.dwg"));("010_02.DWG" "010_03.DWG" "010_06.DWG")

;;; Write script File

(if FNAME_LIST (progn

(setq SCR_NAME (strcat FNAME_DIR "\\" LOG_NAME ".scr"));"D:\\Proba\\Heniek.scr"

(setq FILE (open SCR_NAME "w"))

(setq IN 0)

(repeat (length FNAME_LIST)

(setq FNAME (nth IN FNAME_LIST));"010_02.DWG"

(setq FNAME (vl-filename-base FNAME));"010_02"

(write-line "open" FILE)

(write-line (strcat FNAME_DIR "\\" FNAME) FILE)

(write-line (strcat "(" "command " "\"" "_export" "\"" " " "\"" FNAME_DIR "\\" FNAME ".pdf" "\"" ")") FILE)

(write-line "close" FILE)

(setq IN (1+ IN))

);;repeat

(close FILE)

))

))

(princ)

)

;1 - uruchom AUTOSCR

;2 - uruchamianie polecenia SCRIPT, po wskazaniu pliku *.scr,

;gdzie *.scr, to LOG_NAME z programu.

Kolejność postępowania:

1. Uruchamiam AUTOSCR,

2. Wybieram katalog, w którym są pliki *. dwg do przekształcenia i wskazuje jeden z nich. Program stworzy plik [nazwa].scr w tym samym katalogu; [nazwa] - nazwa pobrana ze zmiennej LOG_NAME.

3. W linii poleceń wpisuję polecenie SCRIPT i wskazuję plik [nazwa].scr. Program automatycznie pobierze pliki *.dwg z katalogu i przekształci je do *.pdf.

Działa to w ZWCAD11, wersja angielska.

Odnośnik do komentarza
Udostępnij na innych stronach

Próbowałem uruchomić ten skrypt i coś jest chyba nie tak.

1. Tworzy się skrypt zawierający wielokrotnie powtórzoną sekwencję

open
ścieżkapliku
(command "_export" "C:\Katalog\ścieżkapliku.pdf)
close

Ale coś tu nie gra. Kiedy uruchamiam ten skryp. Tworzy się jeden plik pdf - pusty i to wszystko. Z pozostałych plików nie tworzą się pdfy.

2. getfiled prosi o wskazanie pliku. Lepiej byłoby zrobić coś takiego, żeby prosiło o wskazanie katalogu. Może w opcjach getfiled jest coś takiego, musiałbym to sprawdzić. A może lepiej byłoby robić export z wszystkich zaznaczonych plików a nie z całego katalogu w którym jest wskazany plik

3. Po Skopiowaniu z pliku scr linii (command "_export" ......) w pasek poleceń ZWCADa, okazuje się że ścieżki nie są prawidłowo rozpoznawane. ponieważ (command ... ) to już element LISPa więc wychodzi że jest lisp uruchamiający scrypt zawierający LISP. Po co taka konstrukcja. Nie można by w SCR zapisać po prostu export bez (command)?? A jeśli już konieczne jest (command, to w ścieżce znak \ powinien być dwukrotnie powtórzony czyli: (command "_export" "C:\\Sciezka\\Plik.pdf")

4. dlaczego ścieżka w drugiej linii jest bez rozszerzenia pliku? tylko ścieżka\nazwa bez dwg?

Odnośnik do komentarza
Udostępnij na innych stronach

W skrypcie, który Pan zamieścił, w wierszu (command ..... za słowem pdf powinien być cudzysłów. To jest prawdopodobnie przyczyną zatrzymania procedury.

Proszę sprawdzić linię w lispie, która tworzy ten wiersz, czy tam jest wszystko w porządku.

Piszę w pracy, z pamięci, stąd mało precyzyjnie.

Pozdrawiam.

H. Rojek

Odnośnik do komentarza
Udostępnij na innych stronach

Witam!

Wybrałem losowo katalog z plikami dwg (108 plików).

Program bez problemów, w ciągu kilkudziesięciu sekund, przekształcił je do pdf_ów.

Oto początkowe i końcowe wiersze wygenerowanego skryptu:

open

D:\Tacmociag\C45\00

(command "_export" "D:\Tacmociag\C45\00.pdf")

close

.

.

.

open

D:\Tacmociag\C45\080_24

(command "_export" "D:\Tacmociag\C45\080_24.pdf")

close

Dlaczego w skrypcie, w wierszu (command .... i w ścieżce dostępu występuje znak "\", a nie "\\" ? - dla mnie też jest to zagadką.

W lispie wszędzie używany jest znak"\\" - widać to w dołączonych do programu komentarzach i w wierszu, w którym tworzony jest plik: (command "_export" ...).

Zamiana "\\" na "\" następuje dopiero w czasie przekazywania informacji do skryptu poprzez polecenie write-line; wygląda na to,że właściwa informacja jest jednak zapamiętywana, bowiem skrypt działa.

Dodam jeszcze, że system operacyjny komputera to WIN7.

W fazie początkowej, testowej program zachowywał się podobnie jak u Pana. Jeśli tylko któryś z wierszy wykazywał błąd, np. nil, czy coś podobnego, tworzył się jeden niekompletny pli pdf - była przerywana pętla repeat.

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie