Aller au contenu

Lisp inserer bloc problème


Messages recommandés

Invité pleche.damien
Posté(e)

BONJOUR

j'ai un problème car je n'arrive pas à insérer deux bloc sous lisp:

-le bloc "ancrage IPE"

-le bloc "IPE

le premier bloc étant inséré au milieu des points pt04 et pt08 mais il y a une erreur au niveau de la ligne "getdist pt04 pt08" que je n'arrive pas à déceler ...??? sachant que la variable "longipe" calcul automatiquement la distance entre les deux points. Je veux donc insérer mon bloc au point ptac12

 

 


 )
 (defun c:ipe ()
   ((progn
      (setq longipe (getdist pt04 pt08))
      (setq ptac12 (polar pt04 (/ 0) (/ longipe 2)))
      (command "inserer" "ancrage_IPE" ptac12 1 1 0 long "")
      (setq ptac13 (polar pt00 (/ pi) 6.5))
      (command "inserer" "IPE" ptac13 1 1 0 long "")

    )
   )

 

 

Merci pour votre aide

Invité pleche.damien
Posté(e)

bon je crois qu'il suffi de remplacer "getdist" par la fonction "distance" :)

 

Je débute en lisp et je voudrais savoir si quelqu'un a une aide sur toute les fonctions possibles et utilisables en lisp, car la plus part du temps je ne sais pas à coi elles correspondes.

Merci d'avance

Posté(e)

Salut,

 

Il y a quelques erreurs dans ton code :

- des parenthèses en trop ((progn ... )), d'ailleurs le (progn ...) est inutile.

- (/ 0) est superfétatoire tout comme (/ pi), qui retournent respectivement 0 et pi, donc inutile d'appeler la fonction diviser (/)

 

Tu trouveras l'aide pour les fonctions AutoLISP (en anglais) dans l'aide aux développeurs > AutoLISP Reference > AutoLISP Functions.

 

Je te recommande grandement l'utilisation de l'éditeur Visual LISP pour écrire et modifier tes codes LISP.

Dans cet éditeur (comme expliqué dans le lien ci-dessus) tu peux sélectionner une fonction en double cliquant dessus et faire Ctrl+F1, l'aide s'ouvrira automatiquement sur la page de la fonction.

 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Invité pleche.damien
Posté(e)

merci Gile je vais y jeter un coup d'oeil

Invité pleche.damien
Posté(e)

Bon en faite sa marche presque sauf que mon deuxième bloc ne sincère pas en même temps que le premier bloc. Et je ne sais pourquoi (je suis obliger de mettre ENTRE pour qu'il s'insère)

 

Il me marque l'erreur suivante: "erreur: fonction incorrecte: 60.0" je sais pas si sa un rapport.

Donc si vous avez une solution sa sera avec plaisir merci

Posté(e)

"erreur: fonction incorrecte: 60.0"

 

Très probablement, il y a quelque part dans ton code quelque chose comme : (60.0 ...).

En LISP, toute parenthèse ouvrante marque le début d'un appel de fonction (sauf le cas particulier des listes quotées). Donc derrière chaque parenthèse ouvrante l'interpréteur cherche une fonction et 60.0 n'en est pas une.

Je te conseille une lecture attentive de ce sujet.

 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

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é