Aller au contenu

Exécuter plusieurs lisp


oran

Messages recommandés

Salut.

 

Alors il doit y avoir moyen de faire ça beaucoup mieux, mais à mon petit niveau de compétence je peut te conseiller de faire comme ça :

 

(defun c:compilation_de_lisp ()
(command "lisp1")
(command "lisp2")
(command "lisp3")
)

Du coup y'a plus qu'une seul commande à lancer pour que tout ce fasse en chêne.

 

Cordialy.

 

EDIT : Oups, grillé... Je ne me serais pas permis de repasser après Maître (gile) laugh.gif

Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !
Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2021 sous Windows 10

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

YES pour le Script de Aleck !

 

Mais encore faut il que le Lisp lance soit Scriptable !?

Donc que toutes les reponses aux questions et a la selection puissent venir du Script ...

 

A ce niveau SVP j'aimerais bien que notre Grand Maitre Gilles

(ou un autre Super Pro du Lisp/VLisp) nous expliquent qq trucs ?

Pourquoi certains Lisp/VLisp plantent un Script ?

Que ne faut il surtout pas faire dans un Lisp/VLisp pour qu'il puisse etre commande depuis un Script ?

etc ...

 

Merci d'avance, Bye, lecrabe

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Avec la fonction command (comme avec vl-cmdf ou command-s), on ne peut appeler que les commandes natives ou les commandes personnalisées définies en .NET ou ObjectARX.

Les "commandes" définies en LISP avec : (defun c:NomDeLaCommande ...) ne peuvent être appelées en AutoLISP qu'en tant que fonctions LISP : (c:NomDeLaCommande). Ceci qui ne permet pas de spécifier les options ou entrées utilisateur.

La méthode COM SendCommand que l'on peut appeler en LISP avec vla-SendCommand) permet de "scripter" une commande LISP en lui passant les entrées utilisateur à condition que celles-ci soient exprimables en chaîne de caractère.

 

(defun c:exemple (/ cen)
 (if (setq cen (getpoint "\nCentre: "))
   (command "_.circle" cen 10.)
 )
 (princ)
)

 

La fonction c:exemple définie ci-dessus peut être appelée simplement avec :

(c:exemple)

mais l'utilisateur sera invité à spécifier le centre.

En utilisant SendCommand, on peut passer la donnée pour le centre :

(vla-SendCommand
 (vla-get-ActiveDocument (vlax-get-acad-object)) ; le dessin actif
 "exemple 10,8 "				  ; le script à exécuter
)

Cette dernière méthode est équivalente à exécuter un fichier .scr qui contiendrait :

exemple 10,8 

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

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é