Aller au contenu

distance entre lwpolyline ???


Messages recommandés

Invité spartacuss
Posté(e)

BONJOUR

 

salut tt le monde , j'ai un dessin constituer de plusieurs lwpolyline et je veux récupérer le rayon de courbure de ces lwplolyline ainsi que la distance entre eux (la distance entre chaque lwpolyline ) je sait que c'est un petit peut difficile mais j'attend chaque indication , aide , critique .....

merci d'avance pour le temps que vous consacres a ce sujet .

 

bien amicalement

Posté(e)

Bonjour,

 

(la distance entre chaque lwpolyline )

 

a moins qu'elles soient identiques et parallèles

cela ne veut rien dire

 

ou la distance entre leur première poignée peut être ?

 

Peut tu reformuler ta question, ou/et nous envoyer un exemple?

Invité spartacuss
Posté(e)

re

 

non ne sont pas paralleles , je vveux vous envoyer un exemple mais je c pas comment faire :red:

 

 

Invité spartacuss
Posté(e)

re

 

je veux vous envoyer une image mais j'arrive pas joindre l'image ( ca me donne ça : )

Posté(e)

Est ce que cette réponse de (gile) n'est pas (à quelque chose près) dans la même optique?

Il n'y a pas grand chose à faire pour avoir les distances entre sommets de 2 polylignes au lieu du milieu comme proposé dans la routine.

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Invité spartacuss
Posté(e)

RE

 

voila mon dessin sur le quelle je travaille :

 

file:///C:/Documents%20and%20Settings/nemotek/Bureau/exeple1.bmp

@bonuscad non c'est pas ça ,moi je veux calculer la distance minimal et la distance maximal entre les lwpoyligne .

 

cordialement

Invité spartacuss
Posté(e)

re

 

:red le lien http://dl.free.fr/ ne marche pas et le truc que j'ai fait aussi, je c pas pourquoi le lisp (me déteste )

Posté(e)

@bonuscad non c'est pas ça ,moi je veux calculer la distance minimal et la distance maximal entre les lwpoyligne .

 

Ha bon! :exclam:

 

Je ne vois pas comment (gile) a pus extraire le milieu entres sommets concomitants sans avoir la distance entre ceux-ci :casstet:

 

Mais je te laisse juge de ton besoin.

Pour moi il me semblait qu'un (mapcar 'max (list distances calculées)) et un (mapcar 'min (list distances calculées)) placé judicieusement dans sa routine...

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Invité spartacuss
Posté(e)

re

 

merci bonuscad et Fraid.

 

donc je vais reformuller mon problème (comme le programme de gile)

_plusieurs polylignes P et Q , ......., des 2D,

_la polyligne P a pour sommets P1,P2,P3.....P(n-1),Pn.

_la polyligne Q a pour sommets Q1,Q2,Q3.....Qn-1),Qn.

_avec P1(Xp1,Yp1) et Q1(xq1,Yq1)......Pn(Xpn,Ypn,Zpn) et Qn(Xqn,Yqn).

 

je veux récupérer la distance minimal entre chaque deux polylignes .

 

2eme chose je veux récupéré le rayon de courbure de ces polylignes .

 

 

 

cordialement

Invité spartacuss
Posté(e)

bonjour

 

je travaille toujours sur le même projet :

je commence d'abord par le calcul de la distance entre les différents points du dessin ,et je vérifie ces distances

avec une distance si la distance que je calcule (dist) est inférieur a 50 donc il faut lancer une alerte et dessiner une ligne entre les extrémités de (dist)

mon programme calcule extraire les cordonnes des point et calcule les distance mais pour l’alerte ou la ligne non .

 

  (defun get_dwgnam ()
       (if (= (getvar 'dwgtitled) 1)
       (setq xy(vl-filename-base (getvar 'dwgname)))
       )	
 	    (setq draww(strcat xy "_LST.txt"))
   )
(defun c:lwp (/ n center ent m cor allc)
   (setq in (list (cons 0 "INSERT")))
   (setq ins(ssget "x" in));selection
   (setq len (sslength ins));le nombre des element dans ins 
   (setq nmblock(cdr (assoc 2 (entget (ssname ins 0)))))
(setq y(entget (cdr( assoc -2 (tblsearch "block" nmblock)))))
   	
   (setq le (length y))
;==°_°====°_°====°_°====°_°====°_°====°_°====°_°====°_°====°_°====°_°====°_°====°_°====°_°====°_°====°_°====°_°====°_°====°_°====°_°==

(setq ent(tblobjname "BLOCK" "ld"))

(setq nam (list))
   (while 
(setq ent (entnext ent))
    
       (if (eq "LWPOLYLINE" (cdr (assoc 0 (entget ent))))
	(progn
	(setq nam(append nam (list(cdr (assoc -1 (entget ent))))))
	)))

(setq cord (list))
(setq c -1)

(while (< (setq c (1+ c)) (length nam))
(setq entg (entget (nth c nam)))
	(setq li (list))
	(setq n 0)
	    (repeat (length entg)
               (setq z (car (nth n entg)))
            (if (= z 10)
                (progn
                (setq li (append li (list (cdr (nth n entg)))))
                   
	            )
	        )
            (setq n (1+ n))
           )		
       (setq cord (append cord (list li)) )         		    
)

;==°_°====°_°====°_°====°_°=== la boucle pour calculler la distance ==°_°====°_°====°_°====°_°====°_°====°_°==
  
   (setq 
       r 0
       j 0
       k 0
       dist2 nil
       a (length cord)
       b (length (nth r cord))
       c (length (nth (1+ r) cord))
   )	
   (while (< r a)

       (while (< j b)
           
           (while (< k c)
		    (setq p1 (nth j(nth r cord)))
			(setq p2 (nth k (nth (1+ r) cord)))				
               (setq dist (distance (nth j (nth r cord)) (nth k (nth (1+ r) cord))))
			(if ( < dist 100)
			    (progn
				    (alert " ooooops ooooops erreur")
			        (command "_.line" p1 p2 "")
				)
			)
               (setq k (1+ k))
               (setq dist1 (append dist1 (list dist)))
           )
           (setq j (1+ j))
       )
       (setq dist2 (append dist2 (list dist1)))
       (setq r (1+ r))
   )
   (princ dist2)

;==°_°====°_°====°_°====°_°====°_°====°_°====°_°==le fichier listing ==°_°====°_°====°_°====°_°====°_°====°_°====°_°====°_°==
       
	(progn
                   (vl-load-com)
                   (setq shell (vla-getInterfaceObject (vlax-get-acad-object) "Shell.Application"))
                   (vlax-invoke-method shell 'ShellExecute
                                    (strcat "C:\\Documents and Settings\\nemotek\\Application Data\\Autodesk\\AutoCAD 2009\\R17.2\\fra\\Support\\DR-check\\"(get_dwgnam))
                                       nil
                                       nil
                                       nil
                                       nil
                   )
                   (vlax-release-object shell)
       )
   (setq hui (strcat "C:/Documents and Settings/nemotek/Application Data/Autodesk/AutoCAD 2009/R17.2/fra/Support/DR-check/"(get_dwgnam))) 
    (setq fil (open hui "w"))
	(princ cord fil)
	(princ "\n\n"fil)
	(princ dist2 fil)
	(close fil)
   (princ)
 )
 ] 

 

si quilqu'un peut m'aider je suis crevé la :?

 

amicalement

Invité spartacuss
Posté(e)

voila l'image de mon dessin

 

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é