speedy Posté(e) le 18 décembre 2007 Posté(e) le 18 décembre 2007 Bonjour à tous j'ai un projet de recalibrage d'une rivière, j'ai une largeur prédefinis et talus, je ne peux pas décaler par rapport un mon axe que j'avais crééer de l'existant je dois respecter les limites de berges privatives et talus existant.... je cherche une méthode en cliquant sur un point et l'axe se dessine à la distance indiquée (ou un repère de tracé)... et une autre question : tracer une ligne d'axe de deux rives déformées ??je ne peux pas utiliser décaler, c'est surtout une moyenne des deux cotés.... Merci de vos réponses Michel a
fabcad Posté(e) le 18 décembre 2007 Posté(e) le 18 décembre 2007 Peut être hors sujet mais j'utilise parfois pour ce genre de problème les multilignes.
(gile) Posté(e) le 18 décembre 2007 Posté(e) le 18 décembre 2007 Salut, Je n'ai pas compris la première demande, mais pour la seconde, tu peux essayer ce LISP. L'axe moyen de la rivière est figuré par une spline, le nombre de points de lissage est spécifié par l'utilisateur, il est possible de spécifier les propriétés de la spline (calque, couleur, type de ligne...) en modifiant le LISP. (defun c:axe-riv (/ r1 r2 nb l1 l2) (vl-load-com) (if (and (setq r1 (car (entsel "\nSélectionnez une rive: "))) (setq r2 (car (entsel "\nSélectionnez l'autre rive: "))) (setq nb (getint "\nentrez le nombre de points de lissage: ")) ) (progn (mapcar '(lambda (r l / n e d) (setq n nb e (eval r) d (/ (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e) ) n ) ) (repeat (1+ n) (set l (cons (vlax-curve-getPointatDist e (* n d)) (eval l)) ) (setq n (1- n)) ) ) '(r1 r2) '(l1 l2) ) (if (inters (car l1) (car l2) (last l1) (last l2) T) (setq l2 (reverse l2)) ) (entmake (append '((0 . "SPLINE") (100 . "AcDbEntity") (100 . "AcDbSpline") (71 . 3) ) (mapcar '(lambda (p1 p2) (cons 11 (mapcar '(lambda (x1 x2) (/ (+ x1 x2) 2) ) p1 p2 ) ) ) l1 l2 ) ) ) ) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
speedy Posté(e) le 18 décembre 2007 Auteur Posté(e) le 18 décembre 2007 BonjourPour Fabcad c'est ce que je fais quand je crée une rive j'utilise _Mline et je fais le tour, comme c'est régulier j'explose et je crée mon axe, y'aurait un moyen plus simple et rapide de le faire juste en cliquant et indiquant la largeur de rive et se tracé automatiquement... Merci Gile pour ce lisp, mais j'ai fais plusieurs essais, ça marche mais il n'aime pas les virages, ça déborde dans les courbes, quelle valeur faut il mettre "entrez le nombre de points de lissage " ........ou comment le modifier pour qu'il suive bien les rives ça doit rester toujours entre les deux rives..... @+ Michel a
(gile) Posté(e) le 18 décembre 2007 Posté(e) le 18 décembre 2007 ça marche mais il n'aime pas les virages, ça déborde dans les courbes, quelle valeur faut il mettre "entrez le nombre de points de lissage " ........ou comment le modifier pour qu'il suive bien les rives ça doit rester toujours entre les deux rives..... Essaye d'augmenter le nombre de points de lissage jusqu'à obtenir un résultat satisfaisant. http://img413.imageshack.us/img413/3273/rivirejl8.png Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
speedy Posté(e) le 18 décembre 2007 Auteur Posté(e) le 18 décembre 2007 ReEffectivement Gile à 100 c'est parfait, j'avais fait l'essai sur le 1.5 Km, ce n'était pas concluant mais en le tronçonnant, je suis arrivé à ce que je voulais. @+ Michel a
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