Aller au contenu

Help déplacement automatique ?


Messages recommandés

Posté(e)

Bonjour tlm,

 

Est-il possible de déplacer automatiquement un objet (cercle, point...) sur une polyligne avec accrochage penpendiculaire et en paramétrant le périmétre de recherche par l'objet ?

 

ex : un point se déplace sur une polyligne avec accrochage perpendiculaire car la distance est inférieur à x mm.

 

[Edité le 11/12/2007 par gillespj]

Posté(e)

Salut,

 

Voilà une proposition, j'espère qu'elle répond à la question, que je ne suis pas sur d'avoir comprise.

 

(defun c:dep2pl	(/ pl di ss p1 p2 an)
 (vl-load-com)
 (or *acdoc*
     (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))
 )
 (if (and
(setq pl (car (entsel "\nSélectionnez la polyligne: ")))
(= (cdr (assoc 0 (entget pl))) "LWPOLYLINE")
     )
   (if	(	   (setq di (getdist "\nSpécifiez la distance de capture: "))
)
     (if (setq ss (ssget '((0 . "CIRCLE,POINT"))))
(progn
  (vla-StartUndoMark *acdoc*)
  (vlax-for ob (vla-get-ActiveSelectionSet *acdoc*)
    (setq p1 (cond
	       ((= (vla-get-ObjectName ob) "AcDbCircle")
		(vlax-get ob 'Center)
	       )
	       ((= (vla-get-ObjectName ob) "AcDbPoint")
		(vlax-get ob 'Coordinates)
	       )
	     )
	  p2 (vlax-curve-getClosestPointTo pl p1)
	  an (+	(angle '(0 0 0)
		       (vlax-curve-getFirstDeriv
			 pl
			 (vlax-curve-getParamAtPoint pl p2)
		       )
		)
		(/ pi 2)
	     )
    )
    (if	(and (		     (equal (rem (angle p1 p2) pi) (rem an pi) 1e-9)
	)
      (vla-move ob (vlax-3d-point p1) (vlax-3d-point p2))
    )
  )
  (vla-EndUndoMark *acdoc*)
)
     )
   )
 )
 (princ)
) 

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

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é