Aller au contenu

fonction lisp pour ajouter les polylignes


Messages recommandés

Invité ingoenius

J'avais fait cela regarde s'il te convien elle mesure la longueur soit par calque soit par selection objects

 

 

 

 
;------------------ SOMMA LUNGHEZZE LINEARI SELEZIONATE O DA LAYER  ------------------------------

(defun C:misura  ()

(setq scelta (strcase (getstring "\nLayer o Selezione? \nL o invio\n")))
 (if (= scelta "L")

(progn
  
(setq LAY (car (entsel "\nSeleziona un'entita' per il layer")))
(setq LAYD (entget LAY))		; estrae le informazioni della selezione
(setq NLAY (cdr (assoc 8 LAYD)))	;estrae il nome del layer 

(setq ss (ssget "x" (list(cons 8 NLAY))));seleziona tutti gli oggetti sul layer scelto    
(setq tl 0.0)
(setq 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 "Longueur Totale " (rtos tl) " metres "));messaggio a schermo 
(princ)
);fine scelta layer


(if (/= SS nil)
    
  (progn 

(setq ss (ssget))
(setq tl 0.0)
(setq 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 "Longueur Totale " (rtos tl) " metres "));messaggio a schermo 
(princ)

)))

);fine programma 

[Edité le 28/4/2008 par ingoenius]

 

[Edité le 28/4/2008 par ingoenius]

Lien vers le commentaire
Partager sur d’autres sites

  • 2 mois après...

tu peux utiliser la version de demo d'autospeed , elle est entierement fonctionnelle pour les métrés de polylignes. tu as juste a transferer ton dessin dans le dessin autospeed.dwg et a lancer la commande mpc ( métré des polylignes par calques)

Phil www.autospeed.biz/url]

Auteur du logiciel Autospeed

Auteur de la théorie du site www.kheops.biz

Auteur de nombreux livres

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é