Aller au contenu

Listing des longueurs et surfaces sur excel


Messages recommandés

Posté(e)

Voilà, je veux me créer une macro qui permet d'importer à partir d'excel, le nombre d'éléments ( polyligne2d, cercle et lignes), le linéaire total et la surface totale par calque.

 

http://marcblancher.site.voila.fr/met_calques.zip

 

J'ai commencer à travailler dessus, mais le problème est que l'algorithme que j'utilise est pas terrible donc lorsque le fichier prend de la taille ça devient vite impossible à gérer.

 

Je compter m'y prendre de cette manière :

 

" Pour chaque élément dans le calque xxx

si élément = (poly, cercle ou ligne) alors

aire = aire + element.area

.....

finsi

 

malheureusement je n'arrive pas a seléctionner les objet par calque ce qui fait que j'utilise cette métode :

 

pour le calque xxxx

pour chaque élément

si élément appartient à calque xxxx

si element = poly, cercle, ligne

aire .....

finsi

finsi

finpour

finpour

 

ce qui fait que je passe en revu chaque élément autant de fois qu'il y a de calques.

 

d'ou la lourdeur de ce système.

 

si vous avez des propositions

 

 

Posté(e)

Bon, j'ai retravaillé le fichier,

 

il y a deux macros qui font le même boulot mais pas de la même façon, la version final me semble pas mal,

 

si quelqu'un a le temps de la tester, ça serait sympa.

 

A+

Posté(e)

J'y ai ajoutés une 3ème macros qui classe les éléments par type ( ligne, cercle, arc, poly ouverte, poly fermée)

 

beaucoup plus pratique à utliser et à exploiter

 

ça prend un peu de temps pour des fichiers volumineaux mais ça travail sans pb.

 

A+

Posté(e)

Nouvelle mise à jour :exclam:

 

maintenant que je suis lancé :o

 

j'y ais revu la macro calques, elle buggait lorsque le nom de calque était un chiffre, un coup de cstr et c'est reparti.

 

Sinon j'ay ait ajouté 2 autres ( enfin c'est encore des modif de l'extraction d'attributs, il en faut des bricoleurs :cool: )

 

la macro blocs, liste les blocs dans le dessin avec les coordonnées et les attributs éventuels

 

la macro attributs liste les blocs contenant des attributs.

 

Bon ben j'espère avoir un avis dessus un jour quand même :casstet:

 

A+

  • 4 semaines après...
Posté(e)

Salut,

en lisp

 

(defun c:lgspl ()

 

(setq CalqueTraite (cdr (assoc 8 (entget (car (entsel "\nChoix du calque :"))))))

 

;la variable "dec", est la précision du fichier actuel

(setq dec (getvar "luprec"))

 

;initialisation de la longueur

(setq longueur 0)

(setq surface 0)

 

;création d'un jeu de sélection des polylignes(lw) sur le calque choisi

(setq

jeusel (ssget "X"

(list (cons 0 "SPLINE") (cons 8 CalqueTraite))

)

)

 

;initialisation du compteur d'entité

(setq n 0)

 

;combien y a t'il d'entité dans le jeu de sélection

(setq lonsel (sslength jeusel))

 

; à faire autant de fois qu'il y a d'entité dans le jeu de sélection

(repeat lonsel

(setq ent (ssname jeusel n))

(command "aire" "ob" ent)

(setq longueurtempo (getvar "perimeter"))

(setq airetempo (getvar "area"))

(setq longueur (+ longueur longueurtempo))

(setq surface (+ surface airetempo))

(setq n (+ 1 n))

)

 

;affichage d'un message annonçant le résultat

(alert

(strcat "Le cumul des longueurs des SPLINE du Calque : "

calquetraite

"\nest de : "

(rtos longueur 2 dec) "\nLa surface des SPLINE du Calque : " calquetraite "\nest de : " (rtos surface 2 dec)

)

)

(princ)

)

mais comment faire en vba?

Merci

  • 1 an aprè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 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é