Aller au contenu

Longueurs détaillées des polylignes sélectionnées


Pirigounet

Messages recommandés

Bonjour,

 

J'utilise le code suivant

 

(defun C:Sommepoly (/ ss tl n ent itm obj l)
(setq ss (ssget)
tl 0
n (1- (sslength ss)))
(while (>= n 0)
(setq ent (entget (setq itm (ssname ss n)))
obj (cdr (assoc 0 ent))
l (cond
((= obj "LINE")
(distance (cdr (assoc 10 ent))(cdr (assoc 11 ent))))
((= obj "ARC")
(* (cdr (assoc 40 ent))
(if (minusp (setq l (- (cdr (assoc 51 ent))
(cdr (assoc 50 ent)))))
(+ pi pi l) l)))
((or (= obj "CIRCLE")(= obj "SPLINE")(= obj "POLYLINE")
(= obj "LWPOLYLINE")(= obj "ELLIPSE"))
(command "_.area" "_o" itm)
(getvar "perimeter"))
(T 0))
tl (+ tl l)
n (1- n)))
(alert (strcat "La longueur totale est " (rtos tl)))
(princ)
) 

 

qui me donne très bien la somme des polylignes sélectionnées.

Cependant, je voudrais pouvoir également connaitre a minima la longueur de la plus longue, et au mieux, ressortir la longueur de chaque dans un tableau exportable sous excel.

 

Je suis complètement débutant en Lisp, et pas programmeur pour un sou.

Merci de votre aide.

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

Tu n'as besoin de aucune Routine Lisp/VLisp

car l'Outil d'Extraction des donnees d'AutoCAD te fera le boulot "nickel chrome" !

 

Commande : _dataextraction

 

ET tu demanderas a ne traiter QUE les Polylignes par rapport a ta selection !

et tu exporteras sans la doute la propriete de Longueur et peut etre aussi le Nom du Calque ...

 

et le tout arrivera en CSV ou en XLS ou en MDB

+ generation eventuelle d'un joli tableau AutoCAD (Quantitatif)

 

lecrabe

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

Chaque fois que tu utilises l'Extraction de Donnees, tu m'envoies UN Euro (dans le Forez) !

Chaque fois que tu utilises SCANDXF, tu envoies UN Euro a Brice (en Alsace) !

 

Eh OUI ca coute cher cadxp.com !!

 

SVP ne pas oublier que avec l'Extraction de donnees, tu peux etre dans un DWG vierge

et aller chercher les N DWGs de ton projet !!!

 

lecrabe

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Super ton utilitaire Bryce.

De plus l'export excel est de suite en format nombre. (ce qui n'est pas le cas avec l'export excel à partir de la commande _dataextraction)

 

Hmmm ! C'est sans doute d'avoir fait plus simple. Mauvais point pour Adesk de ne pas avoir pensé à ce petit détail mais c'est la classe pour Bryce !

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Hello

 

Eh OUI, ces "Truffes" d'Autodesk exportent TOUTES les donnees dans Excel au format TEXTE !

 

D'ou l'utilite de la fonction CNUM d'Excel que je montre lors des formations ...

Si vous avez une recette plus rapide, je suis preneur !

 

D'autre part, je confirme que ScanDXF est SUPER !

D'ailleurs tous les EastMen sont des "Super-Bons" !!

 

lecrabe

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

CNUM

En somme, puisque nous sommes dans le forum lisp, c'est un peu notre ATOF à nous !

 

On peut aussi, pour revenir au sujet, pendant la boucle du lisp, stocker le min et le max de la valeur l.

(defun C:Sommepoly (/ ss tl n ent itm obj l minim maxim)
 (setq ss (ssget)
tl 0
minim 1e99 maxim 0
n (1- (sslength ss)))
 (while (>= n 0)
   (setq ent (entget (setq itm (ssname ss n)))
  obj (cdr (assoc 0 ent))
  l (cond
      ((= obj "LINE")
       (distance (cdr (assoc 10 ent))(cdr (assoc 11 ent))))
      ((= obj "ARC")
       (* (cdr (assoc 40 ent))
	  (if (minusp (setq l (- (cdr (assoc 51 ent))
				 (cdr (assoc 50 ent)))))
	    (+ pi pi l) l)))
      ((or (= obj "CIRCLE")(= obj "SPLINE")(= obj "POLYLINE")
	   (= obj "LWPOLYLINE")(= obj "ELLIPSE"))
       (command "_.area" "_o" itm)
       (getvar "perimeter"))
      (T 0))
  tl (+ tl l)
  minim(min minim l)
  maxim(max maxim l)
  n (1- n)))
 (alert (strcat "La longueur totale est " (rtos tl)"\nLe mini vaut "(rtos minim)"\net le maxi "(rtos maxim)))
 (princ)
 )

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

bonjour,

en ce qui me concerne, quand j'utilise l'extraction de données, j'exporte au format csv.

Sous excel j'importe un fichier texte, je selectionne mon fichier csv, avec comme séparateur de colonne "," et séparateur décimal "." et le tour est joué.

Cordialement

Petit à petit on devient moins petit

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é