sylv62 Posté(e) le 19 novembre 2007 Posté(e) le 19 novembre 2007 bonjour,j'ai réaliser un petit programme sur autocad lisp version2006 d'automatisation d'extraction d'attribut le voici : ;remise à zero des valiable(setq listeobj nil) ;déactivation de l'acrochage objet(setvar "osmode" 0) ;saisie liste des objets(setq cheminnomenclature (getvar "dwgprefix"))(princ "\nSélectionné la nomenclature acier")(setq listeobj (ssget '((0 . "INSERT")))) ;extraction des attributs vers fichier xls(command "-eattext" "o" listeobj "" "C:/bibliothèques/programation/extrac nomenclature/nomenclature.blk" "n" "n" "o" "x" (strcat cheminnomenclature "nomenclature.xls") "o")mais avec autocad 2008 le système d'extraction a complètement changerje ne trouve pas le commande de creation des gabarit .dxequelqu'un pourrai m'aider? merci d'avanceSylvain
Bred Posté(e) le 19 novembre 2007 Posté(e) le 19 novembre 2007 Salut,Il m'est arrivé le même problème.J'ai été obligé de me créer une extraction d'attribut n'utilisant pas celui d'Autocad.Il est trop spécifique à mes blocs pour qu'il te serves à quelque chose pour les tiens.Regarde dans les Lisp de Patrick_35, tu peux y trouver ton bonheur... Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
sylv62 Posté(e) le 19 novembre 2007 Auteur Posté(e) le 19 novembre 2007 merci pour l'info, mais j'ai vraiment du mal à comprendre les programmes lisp avec les réacteurs.peut on enregistrer les valeurs des attributs dans un fichier excel en lisp sous 2008 ? en fait mon programme extrait des attributs dans un bloc nomenclature acier (nbre de barre, longueur de barre, diamètre de barre) dans un fichier excelpuis une macro excel permet de trier les barre pour donner les longueurs total des barres puis leur poids en fonction des diamètre peut on faire sa sous lisp directement ? comment enregistrer les valeurs attributs des blocs dans des variable ou liste ?
lovecraft Posté(e) le 19 novembre 2007 Posté(e) le 19 novembre 2007 Pour enregistrer des valeurs dans des variables tu peux utiliser les variables USERS1 ......USERS5 qui te permettent de stocker des valeurs "chaine de texte" et les variables USERR1.......USERR5 pour des nombres réels. @plus http://www.youtube.com/user/CADMINATOR?feature=mhee
Bred Posté(e) le 19 novembre 2007 Posté(e) le 19 novembre 2007 merci pour l'info, mais j'ai vraiment du mal à comprendre les programmes lisp avec les réacteurs.Les Lisps de Patrick_35 ne sont pas tous avec des réacteurs...Regarde son lisp "LSTBL" Pour enregistrer des valeurs dans des variables tu peux utiliser les variables USERS1 ......USERS5 qui te permettent de stocker des valeurs "chaine de texte" et les variables USERR1.......USERR5 pour des nombres réels.... Tu n'as pas besoin d'enrgistrer des variables en passant par les USERR... Tu fait une selection de tes blocs.(setq sel (ssget "_X" '((0 . "INSERT")))) ... puis tu les passes tous un par un en revu afin d'en extraire les etiquettes et les valeurs correspondantes :(repeat (setq i (sslength sel)) (setq ref (vlax-ename->vla-object (ssname sel (setq i (1- i))))) (setq lst-att (safearray-value (vlax-variant-value (vla-getAttributes ref)))) (foreach n lst-att (setq lst (append (list (cons (vla-get-TagString n) (vla-get-TextString n))) lst)) ) ) ... tu obtiens ainsi une liste que tu peux enregistrer dans un fichier .csv que tu traites ensuite avec tes macro Excel....(setq f (open "C:\\TEST.csv" "w") i 0) (repeat (length lst) (princ (car (nth i lst)) f) (princ ";" f) (princ (cdr (nth i lst)) f) (princ "\n" f) (setq i (1+ i)) ) (close f) Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
sylv62 Posté(e) le 20 novembre 2007 Auteur Posté(e) le 20 novembre 2007 un grand merci pour le coup de main, je vais pouvoir adapter mon programme bonne continuation a bientôt
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant