x_all Posté(e) le 4 septembre 2014 Posté(e) le 4 septembre 2014 Bonjour est ce que quelqu’un à sous la main une routine pour calculer la pente entre 2 pts. Le but étant un peu comme la commande distance, de cliquer 2 points et d'afficher le pente entre ces 2 points.il me semblais que Covadis avait cette fonction, mais je le la retouve pas dans les menu... merci quelques trucs sur autocad
kallain Posté(e) le 4 septembre 2014 Posté(e) le 4 septembre 2014 Salut, J'avais trouvé ça sur CadxpCa doit être de Gile je crois. (defun c:PenteZ (/ pt1 pt2 pente) (and (princ (strcat "\nTapez entrée pour changer la hauteur de texte: " (rtos (getvar 'textsize)))) (not (while (not (setq pt1 (getpoint "\nPremier point <Hauteur>: "))) (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 "< " (rtos pente 2 2) "%") ) ) (cons 40 (getvar 'textsize)) (cons 50 (+ (angle pt1 pt2) (angle '(0. 0. 0.) (getvar 'ucsxdir))) ) '(72 . 1) '(73 . 2) ) ) ) (princ) )
pbrion Posté(e) le 4 septembre 2014 Posté(e) le 4 septembre 2014 Bonjour, Dans Cavadis 2D -> Constructions géométriques -> Affiche Gisement + Distou affgidis au clavierOu barre d'outils Construction géométriques
x_all Posté(e) le 4 septembre 2014 Auteur Posté(e) le 4 septembre 2014 ha yes merci pour cette piqure de rappel covadien... et pour cette exhumation du lisp de sans doute (gile) les deux font parfaitement l'affaire...mais à la lecture du code, je comprend vraiment pas comment il fait... j'avais commencer à réfléchir à un code, et apparemment il y avait plus simple... merci à vous deux... et à (gile) :) ho pinaise ça y est... bien sur en passant par distance on gagne du temps !! quelques trucs sur autocad
Demixav Posté(e) le 4 septembre 2014 Posté(e) le 4 septembre 2014 B'jour... je me permet une petite "remarque" avec la commande affgidis qui diffère un peu de la commande distance, et pour lequel j'ai déjà eu des soucis en lisant trop rapidement les infos données! Si on prend la mesure sur l'extrémité d'une polyligne partant d'un point topo, mais avec une altitude différente du point topo (une poly projet et un point topo TN par ex!), la commande distance prend bien l'altitude de la polyligne alors que la commande affgidis prendra malgré tout l'altitude du point topo! Bonne soirée!Xav AutoCad Map 3D 2011 - Covadis v16.0dWindows 7 - 64b
pbrion Posté(e) le 4 septembre 2014 Posté(e) le 4 septembre 2014 C'est exact, COVADIS prend en priorité les points topo, mais il faut surtout noter que la commande DISTANCE d'AutoCAD donne la distance suivant la pente, alors que la commande AFFGIDIS de Covadis donne la distance réduite à l'horizontale.
capde06 Posté(e) le 4 septembre 2014 Posté(e) le 4 septembre 2014 hellojust for the funen m'inspirant du lisp plus haut jai fait capourcentage de pente entre 2 blocs points.il suffit de cliquer sur l'attribut altitude du premier blocet sur l'attribut altitude du deuxième bloc pointles altitudes sont prise dans l'attibutdonc les blocs point peuvent etre inserés en 2D merci a patrick35 pour le point d'insertion du blocmerci a (gile) pour la fonction sur les variant bref, je n'ai pas fait grand chose ............ (defun c:pente% () (prompt "\nAttribut altitude du 1er bloc :") (setq att (vlax-ename->vla-object (setq ent1 (car (nentsel))))) ;;;;;;;;;;;;;;;;; (setq alt1 (atof (cdr (assoc 1 (entget ent1))))) (setq pt1 (trans (gc:VariantToLispData (vla-get-InsertionPoint (vla-objectidtoobject (vla-get-database att) (vla-get-ownerid att)))) 0 1)) (prompt "\nAttribut altitude du 2eme bloc :") (setq att (vlax-ename->vla-object (setq ent1 (car (nentsel))))) ;;;;;;;;;;;;;;;;; (setq alt2 (atof (cdr (assoc 1 (entget ent1))))) (setq pt2 (trans (gc:VariantToLispData (vla-get-InsertionPoint (vla-objectidtoobject (vla-get-database att) (vla-get-ownerid att)))) 0 1) ) (setq pente (* 100 (/ (- alt2 alt1) (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 "< " (rtos pente 2 2) "%") ) ) (cons 40 (getvar 'textsize)) (cons 50 (+ (angle pt1 pt2) (angle '(0. 0. 0.) (getvar 'ucsxdir))) ) '(72 . 1) '(73 . 2) ) ) (grdraw pt1 pt2 1 -1) ) (defun gc:VariantToLispData (var) (cond ((= (type var) 'variant) (gc:VariantToLispData (vlax-variant-value var))) ((= (type var) 'safearray) (mapcar 'gc:VariantToLispData (vlax-safearray->list var)) ) (var) ) ) Vous fîtes ce que vous pûtes et vous m'épatâtes !!!!
Messages recommandé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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant