dfbiagio Posté(e) le 15 janvier 2020 Posté(e) le 15 janvier 2020 Bonjour,Un petit renseignement, lorsque je tape au clavier :Commande: _layer j'ai bien la boîte de layer qui s'ouvre, mais lorsque j'utilise cette command dans un lisp, la boîte ne s'ouvre pas !!Commande: (if (= (getvar "layermanagerstate") 0)(command "_layer"))_layerCalque courant: "02 P - Egouttage eaux pluviales"Entrez une option [?/Etablir/CHoisir/Nouv/Renommer/ACtif/INactif/COuleur/TLigne/EPaisseurl/TRANsparence/MAtériau/Tracé/Geler/Libérer/Verrouiller/Déverrouiller/étAt/deScription/RApprocher/Xréf]: Quelqu'un peu m'expliquer !
(gile) Posté(e) le 15 janvier 2020 Posté(e) le 15 janvier 2020 Salut, La fonction AutoLISP command appelle toujours la version 'ligne de commande' de la commande (quand elle existe). Pour forcer la version 'boite de dialogue', if faut appeler la fonction initdia avant l'appel à command. (initdia) (command "_layer") Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
dfbiagio Posté(e) le 15 janvier 2020 Auteur Posté(e) le 15 janvier 2020 Salut,Lorsque j'utile la command directement au clavier, ça fonctionne nickel, mais lorsque je l'inclue dans ligne du type if (= (getvar "layermanagerstate") 0)((initdia)(command "_layer")))Là, ça ne fonctionne plus !!Bàt
bonuscad Posté(e) le 15 janvier 2020 Posté(e) le 15 janvier 2020 Salut,Lorsque j'utile la command directement au clavier, ça fonctionne nickel, mais lorsque je l'inclue dans ligne du type if (= (getvar "layermanagerstate") 0)((initdia)(command "_layer")))Là, ça ne fonctionne plus !!Bàt Et si tu mettait un progn à ta fonction if, parce que là il exécute soit l'un, soit l'autre(if (= (getvar "layermanagerstate") 0)(progn (initdia)(command "_.layer"))) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
dfbiagio Posté(e) le 15 janvier 2020 Auteur Posté(e) le 15 janvier 2020 Et si tu mettait un progn à ta fonction if, parce que là il exécute soit l'un, soit l'autre(if (= (getvar "layermanagerstate") 0)(progn (initdia)(command "_.layer"))) Nickel, merci
VDH-Bruno Posté(e) le 15 janvier 2020 Posté(e) le 15 janvier 2020 Et si tu mettait un progn à ta fonction if, parce que là il exécute soit l'un, soit l'autre(if (= (getvar "layermanagerstate") 0)(progn (initdia)(command "_.layer")))Ou en incluant initdia dans l'appel de la fonction command (histoire d'économiser un progn ) (if (= (getvar "layermanagerstate") 0) (command (initdia) "_.layer")) Apprendre => Prendre => Rendre
dfbiagio Posté(e) le 15 janvier 2020 Auteur Posté(e) le 15 janvier 2020 Ou en incluant initdia dans l'appel de la fonction command (histoire d'économiser un progn ) (if (= (getvar "layermanagerstate") 0) (command (initdia) "_.layer")) C'est bon aussi. Un grand merci
VDH-Bruno Posté(e) le 15 janvier 2020 Posté(e) le 15 janvier 2020 C'est bon aussi. Un grand merciOui, et l'occasion de préciser que c'est la commande AutoCAD (et non la fonction command d'AutoLISP) qui à besoin d'être précédé d'un appel à (initdia) pour forcer l'affichage de la BD. 1 Apprendre => Prendre => Rendre
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant