Rekomendowane odpowiedzi

Opublikowano

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

Opublikowano

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.

Opublikowano

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?

Gość Anonymous
Opublikowano

a jak ty chcesz zrobic export do pdf :shock:

eksport i drukowanie to dwie rozne rzeczy.

j.

Opublikowano

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

Opublikowano

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.

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