Aller au contenu

Messages recommandés

Posté(e)

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 changer

je ne trouve pas le commande de creation des gabarit .dxe

quelqu'un pourrai m'aider?

 

merci d'avance

Sylvain

Posté(e)

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...

Posté(e)

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 excel

puis 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 ?

Posté(e)
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...

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité