Aller au contenu

polyline vers fichier .txt


ahmednassim

Messages recommandés

Salut,

 

Un petit LISP qui devrait te convenir.

 

Le résultat est du type :

 

Sommet 1 : Rayon -440.3156

Sommet 2 : Rayon 1114.2755

Sommet 5 : Rayon -433.5176

Sommet 6 : Rayon 74.1878

 

- le sommet est celui du départ de l'arc

- le rayon est positif si l'arc est dans le sens trigonométrique, négatif dans le sens horaire.

 

Edit : Une erreur dans le calcul du rayon a été réparée

Edit 2 : Fonctionne aussi avec les polylignes 2D

 

(defun c:arc2txt (/ ent str typ n blg rad file)
(vl-load-com)
 (if (and
(setq ent (car (entsel "\nSélectionnez une polyligne: ")))
(setq ent (vlax-ename->vla-object ent))
(member	(setq typ (vla-get-ObjectName ent))
	'("AcDbPolyline" "AcDb2dPolyline")
)
(setq str "")
     )
   (progn
     (if (= typ "AcDbPolyline")
(setq n (1- (/ (length (vlax-get ent 'Coordinates)) 2)))
(setq n (1- (/ (length (vlax-get ent 'Coordinates)) 3)))
     )
     (repeat n
(if (/= (setq blg (vla-getBulge ent (setq n (1- n)))) 0.0)
  (setq	rad (/ (distance (vlax-curve-getPointAtParam ent n)
			 (vlax-curve-getPointAtParam ent (1+ n))
	       )
	       (* 2 (sin (* 2 (atan blg))))
	    )
	str (strcat "\nSommet "
		    (itoa (1+ n))
		    " : Rayon "
		    (rtos rad)
		    str
	    )
  )
)
     )
     (textscr)
     (princ str)
     (initget "Oui Non")
     (if
(= (getkword
     "\nEnregistrer dans un fichier ? [Oui/Non] : "
   )
   "Oui"
)
 (progn
   (setq
     file
      (open
	(getfiled "Créez ou sélectionnez un fichier"
		  ""
		  "txt"
		  1
	)
	"w"
      )
   )
   (princ str file)
   (close file)
 )
     )
     (graphscr)
   )
 )
 (princ)
) 

[Edité le 24/3/2007 par (gile)]

 

[Edité le 24/3/2007 par (gile)]

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é