henrykrojek Opublikowano 16 Grudnia 2011 Zgłoś Udostępnij 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. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 16 Grudnia 2011 Zgłoś Udostępnij 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) ) Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
henrykrojek Opublikowano 16 Grudnia 2011 Autor Zgłoś Udostępnij Opublikowano 16 Grudnia 2011 Dziękuję za pomoc. W domu przetestuję. H. R. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ą.