Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

 

Je cherche quelqu'un qui pourrait me dire comment écrire des coordonnées relatives en LISP ?

 

Du style :

 

(setq P1 (command "line" P0 "@chauss,deltay" ""))

 

Sachant que le point 0, la largeur de chaussée et le décalage en Y sont des valeurs connues.

 

Lorsque je tape ceci, autocad me renvoi " Commande inconnue "@CHAUSS,DELTAY". "

 

 

Merci de votre réponse

Posté(e)

Il faut passer par un petit calcul !

 

remplacer donc "...." par (list (+(car P0)CHAUSS) (+(cadr P0)DELTAY))

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Ou autrement, transformer les nombres en textes et concaténer le tout:

(command "_line" P0 (strcat "@" (rtos chauss) "," (rtos deltay)) "")

Par contre ça ne te donnera pas P1 mais nil.

Si tu veux P1:

(setq P1 (cdr (assoc 11 (entget (entlast)))))

Aide au téléchargement du cadastre dgfip-download-helper
Insertion de photos géolocalisées exif https://www.dropbox.com/s/gkf6o9ac2hxen97/exifscr.zip?dl=0
Script correction BUG SPDC V2, propriétaire département 21 et 22 : https://greasyfork.org/scripts/442400-spdcv2/code/SPDCV2.user.js

Posté(e)

Merci

 

Mais en fait je recupere la largeur de chaussée ( chauss ) dans une boite de dialogue DCL.

J'ai donc récuperé la valeur de ma cellule que j'ai transformé ensuite a l'aide de ( atof ).

 

Le fait d'écrire (rtos chauss) ne risque pas de creer une erreur ?

Posté(e)

Utilise donc mon conseil si tu as peur, mais, en effet, il y a cette solution du RTOS.

 

Méfiance avec RTOS tout de même... c'est une fonction qui tronçonne les valeurs avec la variable LUPREC. Tout dépend des cas...

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Mais avec la fonction que tu m'a donné, tu utilises le car et le cdr pour le Point0 et je sais pas si sa peut marcher avec mon programme car je le pointe sur l'écran à l'aide de "getpoint".

Posté(e)

Mais avec la fonction que tu m'a donné, tu utilises le car et le cdr pour le Point0 et je sais pas si sa peut marcher avec mon programme car je le pointe sur l'écran à l'aide de "getpoint".

 

Ca, ça veut dire que t'as même pas essayé ! :P

Heureusement que les copains sont là pour proposer d'autres solutions ou compléter les explications B)

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Desolé de pas vous avoir répondu.

 

Oui je n'ai toujours pas essayé, mais j'essaie sa dans la semaine et je vous tiens au courant.

 

MErci

  • 2 semaines après...
Posté(e)

Bonjour,

 

J'ai une nouvelle question concernant les conditions.

Apres avoir regardé dans les autres sujets, j'ai vu que l'écriture d'une condition se faisait comme ceci =

 

(cond

((= X 0 )

( action ))

 

((= X 1)

( action ))

)

 

Mais lorsque j'écrit ma condition en gardant la même syntaxe cela ne marche pas: Quand j'execute le programme pas à pas le programme passe sur la bordure sans la reconnaitre et n'éxecute donc pas les actions liées. Pourtant lorsque je met un espion sur "bordure" celui-ci me renvoit "0" ou "1" selon le choix de la bordure.

 

(cond
       
       ((= bordure 0)
               (command "inserer" "T1_droite" p1 0.001 0.001 0 "")				; insere le bloc au millimètre
   	(setq larg_bord (car T1))							; récupere la largeur de bordure
	(setq h_bord  (- (caddr T1) (cadr t1)))						; recupere delta hauteur - fil d'eau
 	(command "_line" P1 (list (+(car P1) larg_bord) (+(cadr P1) h_bord)) "" )	; trace jusqu'a l'angle superieur droit de la bordure
 	(setq P3 (cdr (assoc 11 (entget (entlast))))))					; recupere l'extrémité de la ligne
       

       ((= bordure 1)
               (command "inserer" "T2_droite" p1 0.001 0.001 0 "")
 	( setq larg_bord ( car T2 ))
	( setq h_bord ( - ( caddr T2 ) ( cadr T2 )))
 	(command "_line" P1 (list (+(car P1) larg_bord) (+(cadr P1) h_bord)) "" )	; trace jusqu'a l'angle de la bordure
 	(setq P3 (cdr (assoc 11 (entget (entlast))))))
)

 

Quelqu'un pourrait-il m'aider svp ?

 

Merci.

Posté(e)

Ben, vu comme ça, cela parait tout à fait correct. Tu m'as l'air d'avoir compris le COND.

 

Mais bordure vaut "0" ou 0 ?

C'est pas pareil...

 

(atoi "0") renvoie 0

(itoa 0) renvoie "0"

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)

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é