Aller au contenu

Messages recommandés

Invité ingoenius
Posté(e)

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]

  • 2 mois 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é