Aller au contenu

Longueur ligne droite spline ET polyligne


Messages recommandés

Posté(e)

Bonjour à tous,

 

Je viens vers vous car je me trouve face à un problème de rapidité :wacko: .

 

En effet, j'ai des spline et des polyligne tracé sur un dessin.

J'aimerais connaître la longueur la plus courte de cette dernière (spline OU polyligne).

 

Je m'explique, la longueur en ligne droite entre le premier et le dernier point de la spline ou de la polyligne et non la longueur réelle de cette dernière.

 

A l'heure d'aujourd'hui :

- Je transforme mes splines en polyligne (via le clic droit)

- Puis (toujours via le clic droit), je joint.

- Ensuite j'utilise la commande _explode

- Et je supprime les lignes qui composées la polyligne pour ne garder que la ligne droite (un boulo de Titan quoi).

 

Du coup, je me disais qu'un petit lisp élaboré par les experts du forum me permettrais de gagner ENORMEMENT de temps ;) .

 

Merci à tous ceux qui pourrons m'aider.

Posté(e)

Coucou

 

Deux façons de faire :

  • Te taper à la main le code dont voici l'image pour te familiariser avec le codage en lisp
  • Télécharger le fichier en pièce jointe

C'est selon si tu veux apprendre ou seulement te servir d'un lisp sans souhaiter apprendre la programmation

 

Dans les deux cas la commande est topheur01

 

10-09-16 22-54-43.png

 

Amicalement

cadxp_dist_pdep_pfin.LSP

Posté(e)

Bonsoir Didier,

 

Je vais dans un premier temps charger le fichier pour le tester et si il me conviens, je le regarderais plus en détail car j'avais d'autre chose à intégrer comme la gestion des calques et l'ajout d'attribut mais ça je bricole un peu et je veux essayer seul.

 

En réalité, je préfèrerais faire mes lisp tous seul mais j'avoue ne pas avoir beaucoup de temps en ce moment pour apprendre ce langage.

 

Je te tiens au courant pour mon retour d'expérience et en cas de problème pour modifier le lisp.

 

Bonne soirée

Posté(e)

Re-bonsoir Didier :P

 

J'ai pris le temps de regarder et d'essayé de comprendre ton code.

Je l'ai modifié pour incorporer des données supplémentaires (et apprendre la programmation en lisp).

J'ai réussi à tracer une ligne physique et inscrire la valeur de la ligne au centre.

 

Maintenant j'aimerais pouvoir sélectionner plusieurs polyligne et que mon lisp s'exécute automatiquement (pour éviter de cliquer sur mes polylignes une par une).

 

Merci d'avance.

 

PS : mon code actuel

(defun c:Topher (/ pt1 pt2 dep ang obj pdep pfin)

;Création du calque si il n'existe pas pour séparer les infos
(command "calque" "E" "@_Lg_Poly" "")

;Code pour la Mediatrice
(vl-load-com)
(setq obj (vlax-ename->vla-object (car (entsel "objet")))
	  pdep (vlax-curve-getstartpoint Obj)
      pfin (vlax-curve-getendpoint Obj)
	)

;Code pour le calcul de la longueur ligne polyligne
(vl-load-com)
(setq obj (vlax-ename->vla-object (car (entsel "objet")))
	  pdep (vlax-curve-getstartpoint Obj)
      pfin (vlax-curve-getendpoint Obj)
	)

;Trace une ligne virtuelle en rouge
;(grdraw pdep pfin 1)

;Trace la ligne physique
(command "ligne" pdep  pfin "")

;Calcul longueur ligne
(setq LL (rtos (distance pdep pfin)))

;Cherche la médiatrice de la ligne pour placer la distance au milieu de la ligne
 (if (equal (caddr pdep) (caddr pfin) 1e-009)
   (progn
     (setq dep	 (mapcar (function (lambda (x1 x2) (/ (+ x1 x2) 2))) pdep pfin)
    ang (+ (angle dep pdep) (/ pi 2))
     )

     (vl-cmdf "texte" "_non" dep (strcat "<" (angtos ang (getvar "AUNITS") 15)) 20 "" LL)
   )
   (prompt
     "Les points ne sont pas dans un plan parallèle au plan du SCU courant."
   )
 )
 (princ)
)

0
Recherche

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é