Aller au contenu

Pb Courbe AUTO-CONCOURANTE


Messages recommandés

Posté(e)

Bonsoir à tous,

 

Un dilemme sur lequel je planche depuis plusieurs jours sans même avancer d'un yota trouvera peut être une solution ici, en tout les cas je l'espère!

 

J'ai un lisp qui me permet de créer la base d'un profil en long. Le principe est simple, je clique sur l'axe de mon projet et le lisp dessine le profil à partir de touts les points qui ce situe sur cette polyligne.

 

Cette fonction marchait très bien jusqu'à ce qu’aujourd’hui elle plante!

 

Origine PROFIL ... : <722467.965,143331.434,0.000>

Impossible de calculer l'air d'une courbe auto-concourant.

*Sélection non valable*

Attend un point ou Dernier

*Sélection non valable*

Attend un point ou Dernier

; erreur: une erreur est survenue dans la fonction *erreur*Fonction annulée

Choix des objets: *Annuler*

 

Voici l'un des morceaux du lisp qui pose problème je pense: le calcul de l'air et le périmètre!

 

(defun dessine (lp pl / n x y z lc)

(command "_ucs" "_o" ppc)

(setq vpc (nth 1 (car lp)))

(foreach n lp (setq vpc (min vpc (nth 1 n))))

(setq vpc (fix (- vpc 8)))

[surligneur] (command "_area" "_o" (nent pl))

(setq x (getvar "PERIMETER"))[/surligneur]

(setq x (arrondi x 0.01))

(cplan "cadre")

(cplan "cotation")

(cplan "profil")

(setvar "clayer" "cadre")

(command "_line" (list 0 0) (list (+ x 6) 0) (list (+ x 6) 59.4) (list 0 59.4) "")

(setvar "clayer" "cotation")

(command "_line" (list 0 02) (list x 02) "")

(command "_line" (list 0 04) (list x 04) "")

(command "_line" (list 0 06) (list x 06) "")

(command "_line" (list 0 08) (list x 08) "")

(command "_line" (list 0 10) (list x 10) "")

(command "_line" (list 0 12) (list x 12) "")

(command "_line" (list 0 14) (list x 14) "")

(command "_line" (list 0 16) (list x 16) "")

(command "_line" (list 0 02) (list 0 16) "")

(command "_line" (list x 02) (list x 16) "")

(command "_text" (list 0.2 16.2) "0.30" (list 1.2 16.2) (strcat "PC " (rtos vpc 2 0) " m"))

(setq lc lp)

(setq n 1)

(while (car lc)

(setq p (car lc))

(setq x (nth 0 p))

(setq z (nth 1 p))

(setq y (+ 16 (* 2 (- z vpc))))

(command "_line" (list x y) (list x 10) "")

(command "_text" "_mc" (list x 09) "0.30" (list (+ x 1) 9) (rtos n 2 0))

(command "_text" "_bc" (list x 11) "0.30" (list x 12) (rtos x 2 2))

(command "_text" "_bc" (list x 15) "0.30" (list x 16) (rtos z 2 2))

(setq lc (cdr lc))

(setq n (+ n 1))

)

(setq lc lp)

(while (cdr lc)

(setq x (nth 0 (car lc)))

(setq y (nth 0 (cadr lc)))

(setq z (/ (+ x y) 2))

(if (>= (- y x) 1.5)

(command "_text" "_mc" (list z 13) "0.30" (list (+ z 1) 13) (rtos (- y x) 2 2))

(command "_text" "_mc" (list z 13) "0.30" (list z 14) (rtos (- y x) 2 2))

)

(setq lc (cdr lc))

)

(setvar "clayer" "profil")

(setvar "cecolor" "2")

(setq lc lp)

(command "_pline")

(while (car lc)

(setq p (car lc))

(setq x (nth 0 p))

(setq z (nth 1 p))

(setq y (+ 16 (* 2 (- z vpc))))

(command (list x y))

(setq lc (cdr lc))

)

(command "")

(setvar "cecolor" "256")

)

 

Je pensais que cela pouvais venir de la version 2010 d'Autocad, mais sur d'autres plans avec cette version cela marche très bien.

 

Quelqu'un a-t-il déjà rencontré ce cas, une solution ou une idée?

 

D'avance merci de m'avoir lu et accordé de votre temps et de vos réponses ;)

 

 

 

[Edité le 17/3/2010 par jarod34]

Posté(e)

Personne a des informations sur ces courbes auto-concourantes?

 

comment détecter l'endroit qui pose problème sur ma polyligne? Qu'est qui rend cette erreur d'auto-concourantes?

 

Help me! merci ;)

  • 7 mois après...
Posté(e)

J'ai le même problème as tu trouvé une solution ? Quelqu'un a une solution? svp

 

 

 

[Edité le 10/11/2010 par Zeor_5]

Posté(e)

Salut Fraid, oui j'avais déjà essayé à l'époque (ça va faire quelques mois ^^) mais sans résultat !

 

Par contre dans mon cas j'ai put résoudre le problème le mois dernier, j'espère que ça t'aidera Zeor_5.

 

Le plantage du lisp venait de l'impossibilité pour la commande « area » de calculer l'aire d'une polyligne auto concourante.

 

Une polyligne que tu traite mais qui n'est pas fermé et d’une certaine forme peut faire planter certaine fonction comme « area ». Par exemple si ta polyligne en ce fermant recroise un segment d'elle même, alors ça va planter. Je crois que c'est ce que veux dire le message d’erreur « auto concourante », elle se recroise et donc certaines fonctions ne marchent pas dans cette configuration.

 

Dans mon cas la commande « area » était utilisé pour un calcul de périmètre simplement.

J'ai remplacé la partie concernant cette commande pour utiliser plutôt "_LENGTHEN" que l'on m'a proposé sur Cadxp ;).

 

Plus de problème depuis.

 

 

[Edité le 10/11/2010 par jarod34]

  • 4 mois après...
Posté(e)

Bonjour à tous,

Je sais ça fait un moment que le pb des courbes auto-concourante a été évoqué, mais je viens de rencontrer le pb en voulant extruder un spline sur Autocad 2010.

Comme le disait Fraid, il m'a semblé que 2 poignées se chevauchaient, et cela au niveau du point de départ de la spline (que j'avais crée à partir d'une polyligne transformée par la cde" Spline", option "Objet").

Cette spline "auto-concourante", je l'ai ouverte par la commande "coupure" autour des poignées qui se chevauchaient, puis refermé en superposant les nouvelles poignées des extrémités, depuis elle s'extrude très bien ...

A bientôt

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é