henrykrojek Opublikowano 16 Grudnia 2011 Zgłoś Opublikowano 16 Grudnia 2011 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.
kruszynski Opublikowano 16 Grudnia 2011 Zgłoś Opublikowano 16 Grudnia 2011 ZWCAD zwraca (vla-getattributes obj) jako safearray a nie variant, więc nie trzeba pobierać wartości varianta. wystarczy (vlax-safearray->list (vla-getattributes obj) )
henrykrojek Opublikowano 16 Grudnia 2011 Autor Zgłoś Opublikowano 16 Grudnia 2011 Dziękuję za pomoc. W domu przetestuję. H. R.
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się