Aller au contenu

Comment faire un réseaux suivant un chemin


Messages recommandés

Posté(e)

Bonjour, ce n'est surement pas l'endroit ou poster cela mais

est ce que qqun aurait un prog pour :

faire un réseaux d'objet quelconque(aec,polygne, rectangle, cercle, groupe d'objet etc..) le long d'un chemin qui peut etre soit une polyligne soit un spline, etc..

le tout en ayant la posibilité de de tourner les objets pour suivre le chemin lorsque celui ci est courbe(comme la commande réseaux circulaire)

 

j'ai bien essayé en Vb mais je rencontre trop de difficulté pour le programmer..

comme on m'adit que les lipseur d'ici était des pros je compte un peu sur vous (perso je comprend rien au lisp..)

 

le but étant de calepiner une bande de carreaux le long du bord d'un chemin de forme plus ou moins courbe

Posté(e)

Salut,

 

Avant de programmer, as-tu essayé la commande MESURER (_MEASURE), options Bloc et Aligner = Oui ?

Si oui, en quoi ne répond-elle pas à ton besoin ?

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Hello, il y a aussi ce fameux lisp "chariot"... Je ne l'ai jamais testé mais bon, à voir.

Merci à son auteur (désolé, je ne sais plus qui c'est et je suis un peu à la bourre pour faire les recherches qui s'imposeraient)

 

Bonne journée à tous.

Voici donc ce lisp :

 

(defun c:chariot (/	  *error* curve	  endParam	  bloc
	  pt1	  pt2	  seg	  len	  angBase dist
	  space	  cen	  circ	  lst	  ext	  copy
	 )
 (vl-load-com)
 (defun *error* (msg)
   (or	(= msg "Fonction annulée")
(princ (strcat "Erreur: " msg))
   )
   (vla-EndUndoMark *acdoc*)
   (princ)
 )
 (or *acdoc*
     (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))
 )
 (if
   (and
     (setq curve (car (entsel "\nSélectionnez la courbe: ")))
     (setq endParam (vlax-curve-getEndParam curve))
     (setq bloc (car (entsel "\nSélectionnez l'objet: ")))
     (setq pt1 (getpoint "\nSpécifiez le premier point sur le bloc: "))
     (setq
pt2 (getpoint pt1 "\nSpécifiez le second point sur le bloc: ")
     )
     (setq seg (getdist "\nSpécifiez la longueur du segment: "))
     (setq curve   (vlax-ename->vla-object curve)
    bloc    (vlax-ename->vla-object bloc)
    len	    (vlax-curve-getDistAtParam curve endParam)
    angBase (angle pt1 pt2)
    rad	    (distance pt1 pt2)
    dist    0.0
    space   (vla-get-ModelSpace *acdoc*)
     )
   )
    (progn
      (vla-StartUndoMark *acdoc*)
      (while (	 (setq cen   (vlax-curve-getPointAtDist curve dist)
       param (vlax-curve-getParamAtPoint curve cen)
       circ  (vla-AddCircle space (vlax-3d-Point cen) rad)
       lst   (3d-coord->pt-lst
	       (vlax-invoke circ 'IntersectWith curve acExtendNone)
	     )
       ext   (car
	       (vl-remove-if
		 '(lambda (x)
		    (			  )
		 (vl-sort lst
			  '(lambda (x1 x2)
			     (					(vlax-curve-getparamAtPoint curve x2)
			     )
			   )
		 )
	       )
	     )
       dist  (+ dist seg)
 )
 (vla-Delete circ)
 (setq copy (vla-copy bloc))
 (vla-Move copy (vlax-3d-point pt1) (vlax-3d-point cen))
 (vla-Rotate
   copy
   (vlax-3d-point cen)
   (+ angBase (angle cen ext))
 )
      )
      (vla-EndUndoMark *acdoc*)
    )
 )
 (princ)
)

;;; 3d-coord->pt-lst Convertit une liste de coordonnées 3D en liste de points
;;; (3d-coord->pt-lst '(1.0 2.0 3.0 4.0 5.0 6.0)) -> ((1.0 2.0 3.0) (4.0 5.0 6.0))

(defun 3d-coord->pt-lst	(lst)
 (if lst
   (cons (list (car lst) (cadr lst) (caddr lst))
  (3d-coord->pt-lst (cdddr lst))
   )
 )
)

 

Seuls nous allons vite, ensemble nous allons plus loin...

CPU Intel 3,5Go / Nvidia RTX-3090

AutoCad (Architecture) 2022 - Lumion PRO

BMW R-1200-RT, c'est moche, oui... je sais...

 

www.neda.ch

Posté(e)

C'est pas justement un lisp de (gile) ça?

Seuls nous allons vite, ensemble nous allons plus loin...

CPU Intel 3,5Go / Nvidia RTX-3090

AutoCad (Architecture) 2022 - Lumion PRO

BMW R-1200-RT, c'est moche, oui... je sais...

 

www.neda.ch

Posté(e)

C'est bien ça, désolé (gile) pour t'avoir court-circuité ;) Merci pour tout ton travail ! :) :) :)

 

Amicalement.

Seuls nous allons vite, ensemble nous allons plus loin...

CPU Intel 3,5Go / Nvidia RTX-3090

AutoCad (Architecture) 2022 - Lumion PRO

BMW R-1200-RT, c'est moche, oui... je sais...

 

www.neda.ch

Posté(e)

  Citation
C'est pas justement un lisp de (gile) ça?

 

Si.

Mais fais attention quand tu postes du code de bien prendre tout le code. Il manquait la fin ce qui le rendait inutilisable.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Ah mais vouis, tu as raison, quel zouave ! :o

J'ai pourtant fait un copier-coller, j'ai dû rater la fin, zut, zut et rezut.

 

J'en profite pour demander comment poster un lisp avec le fond de page comme à l'aperçu actuellement ? Le copier-coller n'est peut-être pas la méthode la plus élégante...

 

Merci!

Seuls nous allons vite, ensemble nous allons plus loin...

CPU Intel 3,5Go / Nvidia RTX-3090

AutoCad (Architecture) 2022 - Lumion PRO

BMW R-1200-RT, c'est moche, oui... je sais...

 

www.neda.ch

Posté(e)

Quand tu postes du code, pour le rendre plus lisible utilise les bbcodes :

 

[surligneur][[/surligneur][surligneur]code[/surligneur][surligneur]][/surligneur] ici le code [surligneur][[/surligneur][surligneur]/code[/surligneur][surligneur]][/surligneur]

 

donne :

 ici  le code 

 

Accessibles avec l'icône # :

http://img94.imageshack.us/img94/8380/bbcode.png

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

:P Merchi :P

Seuls nous allons vite, ensemble nous allons plus loin...

CPU Intel 3,5Go / Nvidia RTX-3090

AutoCad (Architecture) 2022 - Lumion PRO

BMW R-1200-RT, c'est moche, oui... je sais...

 

www.neda.ch

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é