henrykrojek

Użytkownik forum
  • Postów

    11
  • Dołączył

  • Ostatnia wizyta

Osiągnięcia henrykrojek

Początkujący

Początkujący (1/6)

0

Reputacja

  1. Dziękuję za pomoc. W domu przetestuję. H. R.
  2. Witam! W dawnych czasach używałe takiego lispa: (vl-load-com) (defun change_text_value (obj) (foreach att (vlax-safearray->list (vlax-variant-value ;;;;;;????????????????? (vla-getattributes obj) ) ) (if (and (/= (vla-get-TagString att) "DESC") (/= (vla-get-TagString att) "ARK_NR") );and (vla-put-textstring att " ") );IF ) (vla-update obj) ) (defun c:blank (/ sset num len) (setq sset (ssget "x" '((2 . "BordUn2"))) ;; (setq sset (ssget '((0 . "INSERT") (66 . 1))) num 0 len (sslength sset) ) (vla-startundomark (vla-get-activedocument (vlax-get-acad-object))) (if (/= len 0) (repeat len (change_text_value (vlax-ename->vla-object (ssname sset num)) ) (setq num (1+ num)) ) (princ "\nNo entities with attributes were selected. ") ) ) Procedura ta czyściła wszystkie atrybuty w bloku BordUn2, za wyjątkiem 2-ch ("DESC" i "ARK_NR"). Próbowałem wiersz, po wierszu przetestować ten program. Wydaje się, że zawiesza się na (vlax-variant-value ...). Czy może uda się to jakoś to "reanimować? Pozdrawiam. H.R.
  3. Przepraszam, nie doczytałem - chodzi o ENTER H.R.
  4. Jest to wersja standard z 30.06.2011r., numeru w tej chwili nie mogę podać. W tym drugim przypadku wartość atrybutu jest wykasowana (wcześniej, podczas edycji skasowana poleceniem DEL). Do takiego bloku, poprzez w/w procedurę chce wstawić jakąś wartość - wstawianie bezpośrednie poprzez okna działa, ale w skrypcie, nie. Pozdrawiam. H. R.
  5. Witam! ZwCad20011 z czerwca. Gdy wpiszę n/w ciąg: -ATTEDIT N N BordUn2 EDYCJA * 1 2 funkcja działa poprawnie. Atrybut EDYCJA w bloku BordUn2 zostaje podmieniony z "1" na "2". Natomiast, gdy chcę zrealizować poniższy zapis: -ATTEDIT N N BordUn2 EDYCJA * ; pole puste 2 to atrybut EDYCJA dalej jest pusty, mimo, że jako nowy podaję "2". W ACADzie, nawet w wersji 2000 procedura jest wykonywana poprawnie. Proszę o pomoc.
  6. 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.
  7. 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
  8. Przy wklejaniu wkradł się bład. W wierszu zmiennej FULL_NAME, zamiast "buźki" ma być: 8)
  9. 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.
  10. 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