Aller au contenu

Riviere


speedy

Messages recommandés

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

Bonjour

Pour 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

Lien vers le commentaire
Partager sur d’autres sites

ç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

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é