Aller au contenu

Sens d\'une polyligne


richard-c

Messages recommandés

Salut,

 

un petit truc vite fait, la flèche (rouge) est temporaire, et disparaît à la régénération (ou zoom, pan)

 

(defun c:sens-poly (/ ent start dis end)
 (vl-load-com)
 (and (setq ent (car (entsel)))
      (wcmatch (cdr (assoc 0 (entget ent))) "POLYLINE")
      (setq start (vlax-curve-getStartPoint ent)
     dis   (/ (vlax-curve-getDistAtParam ent 1) 8)
     end   (trans (mapcar '+ start (vlax-curve-getFirstDeriv ent 0)) 0 1)
     start (trans start 0 1)
      )
      (grvecs
 (list
   1
   start
   end
   1
   end
   (polar end (- (angle end start) (/ pi 6)) dis)
   1
   end
   (polar end (+ (angle end start) (/ pi 6)) dis)
 )
      )
 )
 (princ)
) 

 

[Edité le 16/10/2007 par (gile)]

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

Lien vers le commentaire
Partager sur d’autres sites

merci (gile) pour ta rapidité, mais le prog ne fonctionne pas chez moi ...

il me demande de choisir le polyligne et c'est tout, pas de flèche.

Je suis en V2002.

pourquoi j'aimerais ce prog ?

c'est pour l'associer à Polysolid que tu as fais, (et qui est génial).

 

je vai te dire quelque chose qui fait rire toujours mes collègues, je ne connais ni ma gauche et ma droite et c'est de naissance, il faut que je regarde mes mains pour savoir la droite, et voilà ma question,

 

je dessine une polyligne qui va de gauche à droite ,dans polysolid quand je demande la justification à gauche (donc vers le haut de l'écran) il me la dessine à droite (donc vers le bas), il me semble qu'il y a inversion dans ton programme,

j'ai donc modifié de cette manière et çà fonctionne:

 

[surligneur] ;;;;;((= just "Gauche")

((= just "Droite")[/surligneur]

et

 

[surligneur] ;;;;;((= just "Droite")

((= just "Gauche")[/surligneur]

 

est-ce exact

 

A+

 

 

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Essaye celui là

 

(defun c:sens-poly (/ ent n pt pt0 pt1 ang dis)
 (vl-load-com)
 (if
   (and
     (setq ent (car (entsel)))
     (= "LWPOLYLINE" (cdr (assoc 0 (entget ent))))
   )
    (repeat (setq n (fix (vlax-curve-getEndParam ent)))
      (setq pt	 (trans (vlax-curve-getPointAtParam ent (- n 0.5)) 0 1)
     pt0 (trans (vlax-curve-getPointAtParam ent n) 0 1)
     pt1 (trans (vlax-curve-getPointAtParam ent (1- n)) 0 1)
     ang (angle pt0 pt1)
     dis (/ (distance pt1 pt0) 10)
     n	 (1- n)
      )
      (grvecs (list 1
	     pt
	     (polar pt (- ang (/ pi 6)) dis)
	     1
	     pt
	     (polar pt (+ ang (/ pi 6)) dis)
       )
      )
    )
 )
 (princ)
) 

 

En ce qui concerne PolySolid, j'ai scrupuleusement pompé le comportement de la commande POLYSOLIDE de 2007, mais si tu trouves plus logique de le mettre dans ce sens, libre à toi.

 

[Edité le 16/10/2007 par (gile)]

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

Lien vers le commentaire
Partager sur d’autres sites

ok (gile) çà marche, merci.

 

réponse à kallain

 

je ne suis ni gaucher ni droitier, mais çà ne me gène pas de dessiner de la main gauche ou de la droite, je ma serts de la la gauche pour des travail de précision surtout en peinture (bricolage ou peinture sur papier, je fais un peu de pastel, je dessine de la main droite mais en même temps j'estompe de la main gauche, c'est plus facile pour moi,mais quand il faut viser-dévisser, la c'est galère, il faut simuler avant d'executer,

 

j'ai été un gaucher c'est sur, mais à l'époque il fallait écrire de la "bonne main",

voila l'explication.

 

 

A+

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é