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. Cytuj
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) ) Cytuj
henrykrojek Opublikowano 16 Grudnia 2011 Autor Zgłoś Opublikowano 16 Grudnia 2011 Dziękuję za pomoc. W domu przetestuję. H. R. Cytuj
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ą.