Aller au contenu

ATTOUT ATTIN


lili2006

Messages recommandés

Bonne année 2011 à toutes et tous,

 

Avec ces fonctions bien connues des Express, j'obtiens :

 

http://img.ahst.fr/data/images/attinattou.jpg

 

On connait également les différentes manips pour arriver à ce résultat ,....

 

Je voudrais pouvoir,avec ou sans faire de sélection (suivant le besoin ), récupérer les infos par choix du ou des attributs (dans cet exemple, un seul : "LONGUEUR_ARMA") directement sous Excel et sous cette forme: (C'est à dire sans le Handle ni le nom du ou des blocs, uniquement les étiquettes)=> Vous allez me dire :" t'as qu'à masquer ces deux colonnes",...Et c'est ce que je fais actuellement mais sur plus de 600 fichiers, je commence déjà à pleurer,...snif

 

http://img.ahst.fr/data/images/attinafmf.jpg

 

Est-ce qu'un lisp semblable existe déjà (sans parler de LXL que j'utilise pour d'autres manips "spécifiques") ?

 

Bon les routines des Express vont bien déjà, mais vu le grand nombre de lots que j'ai à traiter, si je peux m'organiser autrement (et surtout SANS sélection pour ce gros projet), ce serait mieux,...:P (De plus je n'ai pas besoin de réinjecter ces valeurs dans le(s) plan(s), soit la commande "attin", mais cela pourrait être envisageable également dans certaines circonstances,...)

 

Merci d'avance,

Civil 3D 2025 - COVADIS_18.3a

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Salut lili et tous mes voeux de bonne année, de bonne santé à vous tous.

 

Quelque chose dans ce style ?

 

(defun c:lili(/ att cla col ent feu fic lig nom xls nombl)

(defun nombl(bl)
   (if (vlax-property-available-p bl 'effectivename)
     (vla-get-effectivename bl)
     (vla-get-name bl)
   )
 )

 (vl-load-com)
 (setq doc (vla-get-activedocument (vlax-get-acad-object))
nom [surligneur]"Un_bloc"[/surligneur] ; Nom du bloc
 )
 (or lancer_excel
   (load (findfile "api_xls.lsp"))
 )
 (or (setq xls (lancer_excel))
   (setq xls (lancer_ooo))
 )
 (and xls
   (progn
     (and
(setq fic (strcat (getvar "dwgprefix") (getvar "dwgname") ".xls"))
(setq cla (nouveau_fichier xls fic))
(progn
  (and (ssget "x" (list (cons 0 "insert") (cons 2 (strcat "`**," nom)) (cons 66 1)))
    (progn
      (setq col 65
	    lig 1
	    feu (feuille_active cla)
      )
      (vlax-for ent (setq sel (vla-get-activeselectionset doc))
	(and (eq (nombl ent) nom)
	  (foreach att (vlax-invoke ent 'getattributes)
	    (ecrire_cellule cla feu (strcat (chr col) (itoa lig)) (vla-get-textstring att))
	    (setq col (1+ col))
	  )
	  (setq col 65
		lig (1+ lig)
	  )
	)
      )
      (vla-delete sel)
      (sauver_fichier cla)
      (princ (strcat "\nCréation du fichier : " fic))
    )
  )
)
     )
     (and cla (fermer_fichier cla))
     (fermer_appli (list xls cla))
   )
 )
 (princ)
)

 

ps : requiert Api_Xls

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

L'année commence bien ! :D

 

Merci Patrick et bonne et heureuse année à toi ainsi que ceux qui te sont proche.

 

Sur chaque fichier je suis amené à rajouter deux colonnes, plus l'en tête du fichier =>

 

http://img.ahst.fr/data/images/mtrarma1.jpg

 

Penses-tu qu'il soit possible de pointer vers un fichier Excel "gabarit" de ce type ou seul les deux premières colonnes seraient à remplir en fonction du plan désigné ?

 

Un exemple

 

Mais c'est déjà super comme ça ! :D :P

 

Merci encore,

Civil 3D 2025 - COVADIS_18.3a

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Merci lili, pour toi aussi et tous tes proches

 

Donc, avec une gabarit

(defun c:lili(/ att cla col ent feu fic gab lig nom xls nombl)

(defun nombl(bl)
   (if (vlax-property-available-p bl 'effectivename)
     (vla-get-effectivename bl)
     (vla-get-name bl)
   )
 )

 (vl-load-com)
 (setq doc (vla-get-activedocument (vlax-get-acad-object))
	[surligneur]nom "Nom_Bloc[/surligneur]
	[surligneur]gab "c:/test/gabarit.xls"[/surligneur]
 )
 (or lancer_excel
   (load (findfile "api_xls.lsp"))
 )
 (or (setq xls (lancer_excel))
   (setq xls (lancer_ooo))
 )
 (and xls
   (progn
  (and (findfile (setq fic (strcat (vl-filename-directory gab) "/" (substr (getvar "dwgname") 1 (- (strlen (getvar "dwgname")) 3)) "xls")))
    (vl-file-delete fic)
  )
  (vl-file-copy gab fic)
  (setq cla (ouvrir_fichier xls fic))
  (and (ssget "x" (list (cons 0 "insert") (cons 2 (strcat "`**," nom)) (cons 66 1)))
	(progn
	  (setq col 65
			lig 2
			feu (feuille_active cla)
	  )
	  (vlax-for ent (setq sel (vla-get-activeselectionset doc))
		(and (eq (nombl ent) nom)
		  (foreach att (vlax-invoke ent 'getattributes)
		    (ecrire_cellule cla feu (strcat (chr col) (itoa lig)) (vla-get-textstring att))
	        (setq col (1+ col))
		  )
		  (setq col 65
				lig (1+ lig)
		  )
		)
	  )
	  (vla-delete sel)
	  (sauver_fichier cla)
	  (princ (strcat "\nCréation du fichier : " fic))
	)
  )
     (and cla (fermer_fichier cla))
     (fermer_appli (list xls cla))
   )
 )
 (princ)
)

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

Début d'année et je te dois déjà quelque chose,... :o :D :P

Rien du tout

Tu es un des membres les plus actifs et qui en plus prends la peine de faire des vidéos pour que les demandeurs comprennent bien.

C'est un plaisir de t'aider et la moindre des choses vis à vis des services rendus.

 

ps : tu aurais presque pu l'écrire (avec les facilitées d'Api_xls)

 

@+

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Je suis très touché pas ses propos,... :red:

 

Surtout venant de toi Patrick qui en donne toujours plus (ainsi que certains qui se reconnaitrons sans pb,..)

 

Il faut absolument que je dégage du tps pour me mettre au lisp, MAIS je ne suis pas encore prêt de le faire au détriment de mes étudiants ni de mes amis les plus chers,...

 

En tout cas, en attendant, encore un grand merci pour ce coup de main Patrick,

 

Je ne pensais pas un jour me sentir autant à l'aise sur un forum et créer des liens virtuels aussi fort,...Il me tarde de te rencontrer maintenant,...

 

C'est un plaisir de t'aider et la moindre des choses vis à vis des services rendus.

 

Oui, mais toi, personnellement, tu n'as rien à y gagner !!

 

Donc, je te retourne le compliment (sauf que je me vois mal un jour t'aider,... :o Mais bon, ça, faut apprendre à l'accepter et c'est pas facile vis à vis de certaines personnes dont tu fais partie,...)

 

ps : tu aurais presque pu l'écrire (avec les facilitées d'Api_xls)

 

Il va falloir qu'un jour je soit digne de tes propos,... :exclam:

Civil 3D 2025 - COVADIS_18.3a

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

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é