Aller au contenu

Création de rectangle depuis 2 point de même abcisse


Messages recommandés

Posté(e)

Bonjour;

 

Je souhaiterai créer un rectangle de 0.75 de part et d'autre suivant 2 points choisis. J'ai écris le code suivant mais en raison de mes premiers pas, il comporte des erreurs.

 

Merci de votre aide par avance:

 

(defun c:RESA150()

 

(setq P1 (getpoint "\n point 01: "))

(setq P2 (getpoint "\n point 02: "))

 

(setq P1Y (cadr P1(-0.75)))

(setq P2Y (cadr P2(+0.75)))

 

(command "rectangle" P1Y P2Y"")

)

Posté(e)

coucou tu y été presque!!!

 

En fait c'est l'opération d'addition et de soustraction qui merde!!!

 

 

(setq P1Y (cadr P1(-0.75)))

 

Devrait plutôt s'écrire

 

(setq P1Y (- (cadr P1) 0.75 ))

 

Par contre ensuite tu dois réécrire le point d'insertion en entier

 

Pour celà il faut recréer une liste

 

(setq P1Y (list (car P1) (P1Y) (cddr P1)))

 

(car P1) -> correspond à X

(P1Y) -> c'est ton nouveau Y et

(cddr P1) ->c'est Z

 

Même chose pour P2Y

 

et la suite devrait fonctionner

 

[Edité le 1/7/2008 par Arcasdk]

<IMG SRC=http://peronfrederic.free.fr/banniere.jpg></IMG>

 

<a href=www.formu-lan.net>www.FormuLan.net

</a>

Posté(e)

Bonjour;

 

 

Merci pour ton aide, la syntaxe fonctionne. Malheureusement et je ne comprends pas pourquoi le rectangle tracé n'a rien à voir avec les critères de la commande. Merci d'avance:

 

(defun c:RESA150()

;

(setq P1(getpoint "\n point 01: "))

(setq P2(getpoint "\n point 02: "))

;

(setq P1Y(-(cadr P1) 0.75)

(setq P2Y(+(cadr P2) 0.75)

;

(setq P1Y(list(car P1)(P1Y)(cddr P1)))

(setq P2Y(list(car P2)(P2Y)(cddr P2)))

;

(command "rectangle" P1Y P2Y"")

)

Posté(e)

Re coucou

 

Jviens de jeter un coup d'oeil. Il y a trois petites erreurs. (Dont deux de ma faute.....Je débute aussi)

 


(defun c:RESA150()

(setq P1(getpoint "\n point 01: "))
(setq P2(getpoint "\n point 02: "))

(setq P1Y(-(cadr P1) 0.75)[surligneur])[/surligneur]
(setq P2Y(+(cadr P2) 0.75)[surligneur])[/surligneur]

(setq P1Y(list(car P1) [surligneur]P1Y[/surligneur] [surligneur](caddr P1)[/surligneur]))
(setq P2Y(list(car P2) [surligneur]P2Y[/surligneur] [surligneur](caddr P2)[/surligneur]))

(command "rectangle" P1Y P2Y"")
) 

 

•Comme je le fait remarquer en jaune, il manque une parenthèse aprés la définition de P1Y et P2Y.

•Lorsque tu créés la liste, les variables ne doivent pas être entre parenthèse.

•Et pour finir le (cddr p1) te renvoi (0.0) donc pour enlever les parenthèse entre plutot (caddr P1) et là tu aura 0.0.

 

Ensuite en ce qui concerne la forme de ton rectangle.....Je ne sais pas ce que tu aurais voulu avoir.

 

Tu lui donnes deux points de même abscisse P1(0,1,0) et P2(1,1,0)

 

Autocad les transforme en P1(0,0.25,0) et P2(1,1.75,0)

 

 

 

Oups :casstet: en me relisant je m'aperçois que c'est les mêmes ordonnées que nous avons..... Pas les mêmes abscisses. Dans ce cas, on ne modifie pas les bonnes coordonnées...

 

Mais si tu as compris tu ne devrait pas avoir de problème à le réécrire, tu as tous ce qu'il faut pour le corriger.

 

Tiens nous au jus.

 

[Edité le 2/7/2008 par Arcasdk]

<IMG SRC=http://peronfrederic.free.fr/banniere.jpg></IMG>

 

<a href=www.formu-lan.net>www.FormuLan.net

</a>

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é