x_all Posté(e) le 4 septembre 2014 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
kallain Posté(e) le 4 septembre 2014 Partager 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) ) Lien vers le commentaire Partager sur d’autres sites More sharing options...
pbrion Posté(e) le 4 septembre 2014 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
x_all Posté(e) le 4 septembre 2014 Auteur Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Demixav Posté(e) le 4 septembre 2014 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
pbrion Posté(e) le 4 septembre 2014 Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
capde06 Posté(e) le 4 septembre 2014 Partager 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 !!!! Lien vers le commentaire Partager sur d’autres sites More sharing options...
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