Aller au contenu

Sois poly.


Tramber

Messages recommandés

J'ai écrit:

 

(setq compt01 0 listpoly nil)

(repeat (length poly)
  (if (= (car(nth compt01 poly)) 10)
    (setq listpoly (append listpoly (list(cdr(nth compt01 poly))))))
  (setq compt01 (1+ compt01)))

 

Poly vient d'un ENTGET sur une polyligne.

 

Je parcours ainsi la base de données de points de la polyligne.

Mais j'utilise des variables, notamment à cause du compteur.

 

Y-a-t-il un autre moyen + intelligent ?

 

Comment marche le code 42, je suppose qu'il donne les infos pour les arcs de cercles.

Mais comment ca marche ?

 

Je ne crie pas au secours :exclam: , j'ai tout mon temps. :angel:

Merci d'avance.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

hello Tramber

Encore une fois :

Qu'est ce que tu veux obtenir à la fin ?

si c'est le dernier élément de la polyligne

voici une proposition qui tourne depuis longtemps :

 

(setq test (cdr (assoc 0 (entget ent2))))

(while (/= test "SEQEND")

___(progn

_____(setq sommet (cdr (assoc 10 (entget ent2))))

_____(setq x (car sommet) y (cadr sommet) z (caddr sommet) )

_____(setq ent2 (entnext ent2))

_____(setq test (cdr (assoc 0 (entget ent2))))

___);progn

);while

 

en clair tant que je trouve pas "SEQEND" je teste tous les sommets

amicalement

ps: il est tard et je vais au sport,

je reviens demain pour le code 42 ...

t'as vu y'a AutoDesk qui est par minou (hihihihihi) :yltype:

Lien vers le commentaire
Partager sur d’autres sites

J'y vais de ce pas, mais comme dit dans un autre message, il faudrait vraiment que tu apprennes à faire des liens !!!

 

D'autant que tu ne m'as pas donné les meilleures indications pour trouver le message ( eh oui, j'aurais préféré le titre du sujet !!!)

 

Enfin,

 

J'ai fait un Rechercher par Pseudo dans le forum et j'ai trouvé, merci.

 

....ah mince, c'est pas sur le code 42 de la poly, c'est sur DIstance.

 

Je donne le LIEN quand même !

 

Au fait, merci pour le message Posté le 22/3/2004 à 19:40 !

 

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Bonjour

En Réponse à Patrick

Elle est bien ta routine, je t'ai déjà félicité

sur la compacité du code, je m'en sers maintenant

mais il est à noter qu'elle ne donne aucune indication

sur les segments courbes de la polyligne.

 

En réponse à Tramber

Effectivement le code 42 donne la courbure

par défaut la valeur est 0, elle est renseignée dans le cas d'un segment courbe

en revanche je n'ai pas compris ce que signifie la valeur écrite

sont ce des radians ? est un gisement de tangente ? quid ?

quelqu'un de plus balaise devra nous répondre ...

 

bonne journée à tous

Lien vers le commentaire
Partager sur d’autres sites

Super, ...ce que je cherchais.

 

Je sais depuis longtemps qu'il faut que je me rentre Mapcar et Apply dans le crâne !

 

Merci à tous les 2 et aux suivants car c'est vrai que je coince un peu sur le 42 et son exploitation. Mais j'y reviendrai et m'acharnerai avec vous bientôt.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Pour le code DXF 42 des LWPOLYNE, un extrait de l'aide:

 

La courbure est la tangente d'un quart de l'angle inclus dans un segment d'arc, rendu négatif si l'arc est dans le sens horaire, du point de départ au point final. Une courbure de 0 désigne un segment droit et une courbure de 1 désigne un demi-cercle

 

Cette info est visible dans l'aide a propos des VERTEX de POLYLINE

Pour les LWPOLYLINE, elle est absente :casstet: mais c'est la même définition.

 

NB:Bien sûr la valeur est en RADIAN.

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

Lien vers le commentaire
Partager sur d’autres sites

...ci bien, il fallait savoir que tout était décrit dans POLYLINE, moi je suis de la nouvelle génération.

 

La valeur n'est pas en radian, à mon avis, puisque tu dis toi-même que c'est la tangente (sans unité).

 

Pour un angle de 90°, soit 22.5° (le quart), j'ai trouvé un 42 du genre 0,41... (de mémoire).

Je viens de vérifier, c'est bon.

 

Super merci.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

bonjour

Bien vu BonusCad

je me doutais qu'il s'agissait de tangente, mais tu le prouves.

merci bien

quant à la réponse de Tramber, bien sûr que la tangente

comme toutes les valeurs naturelles n'a pas d'unités,

mais la tangente de la valeur absolue d'un angle est variante

suivant l'unité d'expression dudit angle

prenons comme exemple 3

3 grades >> tangente = 0.047159...

3 radians >> tangente = -0.142547...

3 degrés >> tangente = 0.052408...

moralité tout angle retourné par AutoCad est en radians

encore merci à BonusCad :D

Lien vers le commentaire
Partager sur d’autres sites

Oui, et, come tu vois que je n'ai pas oublié tes bons conseils, je rappelle qu'il est préférable de faire une convertion soi-même que d'utiliser les ANGTOF ANGTOS.

Aussi je continue à raisonner en angle et prends mes précautions en programmant, en faisant les transfos by-myself.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Un exemple vaut mieux qu'un long discours:

Pour un objet qui serait un segment unique d'arc de polyligne,

la ligne suivante:

(* 4.0 (atan (cdr (assoc 42 (entget (car (entsel)))))))

retounera la valeur de l'angle au centre en radians de l'arc

 

Celle ci le fera en degré:

(/ (* (* 4.0 (atan (cdr (assoc 42 (entget (car (entsel))))))) 180.0) pi)

 

la fonction (atan n'accepte que les radians comme toutes les fonctions lisp réclamant un angle d'ailleur.

 

A mon avis qui reste personnel est qu'en lisp il vaut mieux préférer

(command "_line" '(0.0 0.0 0.0) (polar '(0.0 0.0 0.0) (/ pi 4) 10) "")

à

(command "_line" '(0.0 0.0 0.0) "@10<45" "")

 

L'avantage? vous n'avez pas besoin de vous préocuper des unités utilisés par l'utilisateur et à vous lancez dans des conversions d'angle. Réservez la convertion pour l'affichage des données mais travaillez en radians (les routines seront plus facilement portables sans bugs) ;)

 

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

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é