henrykrojek Posted December 16, 2011 Report Share Posted December 16, 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. Quote Link to comment Share on other sites More sharing options...
kruszynski Posted December 16, 2011 Report Share Posted December 16, 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) ) Quote Link to comment Share on other sites More sharing options...
henrykrojek Posted December 16, 2011 Author Report Share Posted December 16, 2011 Dziękuję za pomoc. W domu przetestuję. H. R. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.