Forum użytkowników programów ZWCAD, KOMPAS-3D, Scan2CAD, PDF2CAD Strona Główna Forum użytkowników programów ZWCAD, KOMPAS-3D, Scan2CAD, PDF2CAD
Forum CAD.

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy
RejestracjaRejestracja  ZalogujZaloguj

Poprzedni temat «» Następny temat
Przesunięty przez: dmatusz3
Pon Sie 01, 11 15:42
wsadowe przekształcanie dwg do pdf
Autor Wiadomość
henrykrojek

Dołączył: 25 Lip 2011
Posty: 11
Wysłany: Pon Lip 25, 11 08:11   wsadowe przekształcanie dwg do pdf

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
 
     
kruszynski

Pomógł: 17 razy
Dołączył: 02 Sty 2009
Posty: 312
Wysłany: Pon Lip 25, 11 10:35   

W obecnej wersji ZWCADa nie jest to możliwe
 
     
henrykrojek

Dołączył: 25 Lip 2011
Posty: 11
Wysłany: Pon Sie 01, 11 07:36   

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.
 
     
henrykrojek

Dołączył: 25 Lip 2011
Posty: 11
Wysłany: Pon Sie 01, 11 07:46   

Przy wklejaniu wkradł się bład. W wierszu zmiennej FULL_NAME, zamiast "buźki" ma być: 8)
 
     
dmatusz3
Site Admin

Pomógł: 22 razy
Dołączył: 20 Sty 2008
Posty: 652
Wysłany: Pon Sie 01, 11 09:08   

Witam,

jestem pod wrażeniem skryptu.

Aby wyłączyć zamianę tekstu na buźki, można zaznaczyć opcję "Wyłącz Uśmieszki w tym poście", w polu poniżej (co zrobiłem dla powyższych postów).

Pozdrawiam
 
     
henrykrojek

Dołączył: 25 Lip 2011
Posty: 11
Wysłany: Pon Sie 01, 11 09:20   

Dziękuję za wprowadzone zmiany.
h. R.
 
     
kruszynski

Pomógł: 17 razy
Dołączył: 02 Sty 2009
Posty: 312
Wysłany: Pon Sie 01, 11 15:05   

Próbowałem uruchomić ten skrypt i coś jest chyba nie tak.
1. Tworzy się skrypt zawierający wielokrotnie powtórzoną sekwencję
Kod:
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?
 
     
Gość

Wysłany: Pon Sie 01, 11 22:36   

a jak ty chcesz zrobic export do pdf :shock:
eksport i drukowanie to dwie rozne rzeczy.
j.
 
     
henrykrojek

Dołączył: 25 Lip 2011
Posty: 11
Wysłany: Wto Sie 02, 11 10:02   

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
 
     
kruszynski

Pomógł: 17 razy
Dołączył: 02 Sty 2009
Posty: 312
Wysłany: Wto Sie 02, 11 10:48   

tak, cudzysłów jest w pliku scr. Przy kopiowaniu mi się pominął
 
     
henrykrojek

Dołączył: 25 Lip 2011
Posty: 11
Wysłany: Sro Sie 03, 11 08:23   

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.
 
     
kruszynski

Pomógł: 17 razy
Dołączył: 02 Sty 2009
Posty: 312
Wysłany: Sro Sie 03, 11 09:17   

Sprawdzaliśmy to na różnych systemach.
Na XP działa bez problemu tak, jak u Pana. A na Viście jakoś nie chce.
 
     
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
Strona wygenerowana w 0,15 sekundy. Zapytań do SQL: 10