Aller au contenu

LISP calcul de pente en Z


sebu38

Messages recommandés

Bonjour à Toutes et à Tous,

 

J'ai cherché sur les forums sans rien trouver ! Un LISP qui me permette d'indiquer 2 POINTS en X Y Z et calculer la PENTE !

 

Exemple :

 

J'indique le POINT N° 1 avec un Z, puis le POINT N°2 avec un Z différent

 

Ce serait sympa en plus de la valeur de PENTE en % (sous forme texte) qu' il y ait également le symbole pour le SENS ?

 

Seb

 

PS : c'est Christian qui m'a obligé à poser la question... Il m'a infligé des TORTURES atroces... :(

 

 

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

j'avais fais ça il y a un certain temps déjà, à mes débuts:

 

(defun c:pentes ()
  (setvar "cmdecho" 0)
  (command "annuler" "m")

 (print)
 (princ "Extremitees de la pente:")
 (print)
 (setq p1 (getpoint "Sélectionnez le premier point :"))
 (print)
 (setq p2 (getpoint p1 "Sélectionnez le second point :"))
 (grdraw p1 p2 1)
  (setq a1 (car p1))
  (setq a2 (cadr p1))
  (setq a3 (caddr p1))
  (setq b1 (car p2))
  (setq b2 (cadr p2))
  (setq b3 (caddr p2))
  (setq h (- b3 a3))
  (setq aa (* (- a1 b1) (- a1 b1)))
  (setq bb (* (- a2 b2) (- a2 b2)))
  (setq d (sqrt (+ aa bb)))
  (setq p (/ h d))
  (setq p (* 100 p))
  (print)
  (princ "Pente : ")
  (princ p)
  (princ " %")
  (print)
)

Aide au téléchargement du cadastre dgfip-download-helper
Insertion de photos géolocalisées exif https://www.dropbox.com/s/gkf6o9ac2hxen97/exifscr.zip?dl=0
Script correction BUG SPDC V2, propriétaire département 21 et 22 : https://greasyfork.org/scripts/442400-spdcv2/code/SPDCV2.user.js

Lien vers le commentaire
Partager sur d’autres sites

Salut et bienvenue,

 

Un truc vite fait.

Tu spécifie les points à l'écran ou au clavier le texte est inséré sur le plan XY du SCG avec une orientation du premier vers le second point, justifié milieu centre, hauteur et style courants.

 

(defun c:PenteZ	(/ pt1 pt2 pente)
 (and
   (princ (strcat "\nHauteur de texte: " (rtos (getvar 'textsize))))
   (not
     (while (not (setq pt1 (getpoint "\nPremier point : ")))
(initget 7)
(setvar 'textsize (getdist "\nHauteur de texte: "))
pt1
     )
   )
   (setq pt2 (getpoint pt1 "\nDeuxième point: "))
   (setq pente	(* 100
	   (/ (- (caddr pt2) (caddr pt1))
	      (distance	(list (car pt1) (cadr pt1))
			(list (car pt2) (cadr pt2))
	      )
	   )
	)
   )
   (entmake
     (list
'(0 . "TEXT")
'(10 0. 0. 0.)
(cons 11
      (trans (mapcar '(lambda (x1 x2) (/ (+ x1 x2) 2.)) pt1 pt2)
	     1
	     0
      )
)
(cons 1
      (if (minusp pente)
	(strcat (rtos (abs pente) 2 2) "% >")
	(strcat "	      )
)
(cons 40 (getvar 'textsize))
(cons 50
      (+ (angle pt1 pt2) (angle '(0. 0. 0.) (getvar 'ucsxdir)))
)
'(72 . 1)
'(73 . 2)
     )
   )
 )
 (princ)
)

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à vous!

 

Merci de vos réponses rapides, Christian ne s'est pas trompé, ce site est très réactif!

Je vais garder vos deux lisp du coup; celui de gile pour noter le plan et celui de vincent pour info pente.

 

EXCELLENT!

 

seb

... c'est bien...

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é