Aller au contenu

longueur polyligne


gilles

Messages recommandés

Pas évidant sans programmation.

Ceci dit, filtres tes objets et lance LISTE sur cette sélection.

Il faudra sans doute taper plusieurs fois ENTREE pour avancer.

 

Ensuite, copie-colle tout ca dans un fichier texte et taches de trouver une solution pour repérer le mot "périmètre 600.0" et le faire lire par une routine.

 

La fonction RECHERCHER pourra t'aider dans Excel, je pense, mais je ne suis pas un pro des produits Microsoft ;)

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

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

bonsoir Gilles

Ce qui suit va solutionner ton problème

chaque ligne est expliquée, pour être utilisée ultérieurement

 

(defun routinegilles ()

;quel calque est concerné ?

(setq CalqueTraite (getstring "\nNom du Calque à Traiter\n"))

 

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

(setq dec (getvar "luprec"))

 

;initialisation de la longueur

(setq longueur 0)

 

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

(setq

jeusel (ssget "X"

(list (cons 0 "LWPOLYLINE") (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 longueur (+ longueur longueurtempo))

(setq n (+ 1 n))

)

 

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

(alert

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

calquetraite

"\nest de : "

(rtos longueur 2 dec)

)

)

(princ)

)

ben voilà, yapluka

lispement votre

il n'y a pas de fioritures mais c'est efficace.

:yltype:

 

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

J'ai testé PERIMETER et ca marche pour indiquer la longueur d'une polyligne après LISTE mais ca ne marche pas sur une Ligne simple.

 

A bon entendeur

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

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

hello Tramber

ben non area ne fait pas tout !!!

pour la longueur d'une ligne simple

(setq ent(car(entsel"\nQuelle Ligne ?\n")))

(setq PointDepart (cdr(assoc 10 (entget ent))))

(setq PointArrivee(cdr(assoc 11(entget ent))))

(setq LongueurDeLaLigne (distance PointDepart PointArrivee))

sinon pour l'amusement j'ai balancé quelque part en réponse

une formule qui calcule aussi bien la Distance 2D

car ce que je te propose c'est la 3D

si les points ont des Z, "distance" en tient compte

si je savais faire des liens, je te mettrai ma réponse,

mais les liens, tu sais ce que c'est, çà va çà vient...

amicalement

 

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é