philsogood Posté(e) le 31 mars 2011 Posté(e) le 31 mars 2011 helloje me suis mis depuis peu à faire des "alias" avec du lispça évite bcp de manip pour arriver à un résultat très simplela dernière chose sur laquelle je bosse c'est l'ajout de xref,je travaille souvent sur un SCG différent du SCU et je suis obliger de retourner sous les SCU avant de pvr insérer a xref puis revenir sous le SCG sur lequel je travaillecertes c'esty aps compliqué mais vu qu'on doit pouvoir gagner du temps...voici mon bout de programme (si on peut appeler ça ainsi) (defun c:xa (/) (command "scu" "g") (command "_plan" "c") (command "xattacher") (command "scu" "p") (command "_plan" "c") j'ai bien entendu fait sauter l'alias xa pour ne pas avoir de "conflits" mais ça ne marche pas, c'est probablement dû à la fenètre qui s'ouvre lors de l'insertion de la xref mais je ne vois pas comment faire pour contourner ce problème, faut-il mettre une pause? Phil PS : promis je mettrai un jour prochain le nom des commandes en anglais! Projeteur Revit Indépendant - traitement des eaux/CVC
(gile) Posté(e) le 31 mars 2011 Posté(e) le 31 mars 2011 Salut, On commence comme ça et va savoir comment on finit... ;) Tout d'abord, il manque une parenthèse fermante à la fin de ton code. Pour laisser le temps à l'utilisateur de spécifier tout ce qu'il faut dans la boite de dialogue, tu peux utiliser une boucle qui utilise la variable système CMDACTIVE.Cette variable a une valeur supérieure à 0 tant qu'une commande est active (voir l'aide pour plus de précisions). Exemple : (defun c:xa (/) (command "_ucs" "_world") (command "_plan" "_current") (command "_xattach") (while ( (command pause) ) (command "_ucs" "_previous") (command "_plan" "_current") ) PS : pour des raisons de compatibilité, il est préférable d'utiliser les noms de commandes et leurs options en 'langage international' (anglais précédé d'un underscore). Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
bryce Posté(e) le 31 mars 2011 Posté(e) le 31 mars 2011 Bonjour, Une question : y a-t-il une raison pour faire(< 0 (getvar 'cmdactive))plutôt que(> (getvar 'cmdactive) 0) ?Ou bien c'est juste une question de tournure d'esprit ? :P Et une observation : sur la 2011, il m'a fallu mettre (initdia) avant (command "_xattach") pour avoir la boîte de dialogue de choix de fichier. Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
philsogood Posté(e) le 1 avril 2011 Auteur Posté(e) le 1 avril 2011 merci (gile),mille mercisà force de tatonner mes programmes devraient dépasser les 3 lignes et tou ça grace à toi++Phil Projeteur Revit Indépendant - traitement des eaux/CVC
philsogood Posté(e) le 1 avril 2011 Auteur Posté(e) le 1 avril 2011 miiiiince...le _xattach ne passe plus par la fenètre standart, il faut rentrer tous les paramètres sur la ligne de commande!! Projeteur Revit Indépendant - traitement des eaux/CVC
bryce Posté(e) le 1 avril 2011 Posté(e) le 1 avril 2011 Bonjour, 2 messages plus haut: Et une observation : sur la 2011, il m'a fallu mettre (initdia) avant (command "_xattach") pour avoir la boîte de dialogue de choix de fichier.;) Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
philsogood Posté(e) le 4 avril 2011 Auteur Posté(e) le 4 avril 2011 eRf...no comment, en plus de pas savoir programmer...Phil Projeteur Revit Indépendant - traitement des eaux/CVC
philsogood Posté(e) le 4 avril 2011 Auteur Posté(e) le 4 avril 2011 hello,petite question : comment se fait-il que lorsque je fais "annuler" il me faut répéter les "annuler" pour retrouver mon fichier comme il était avant le lancement du lisp?les lisps que j'utilise d'habitude ne fonctionnent pas de cette façon (un seul "annuler" annule l'ensemble des opérations que le lisp a réalisé)cette question ne m'empèche pas d'utiliser ce lisp hyper puissant, c'est plus par curiosité qu'autre chose!++Phil Projeteur Revit Indépendant - traitement des eaux/CVC
(gile) Posté(e) le 4 avril 2011 Posté(e) le 4 avril 2011 petite question : comment se fait-il que lorsque je fais "annuler" il me faut répéter les "annuler" pour retrouver mon fichier comme il était avant le lancement du lisp?les lisps que j'utilise d'habitude ne fonctionnent pas de cette façon (un seul "annuler" annule l'ensemble des opérations que le lisp a réalisé) Parce que tu a plusieurs appels de la fonction command c'est comme si tu lances plusieurs commandes dans AutoCAD, il faut toutes les annuler. Les autres LISP dont tu parles n'utilisent peut-être pas la fonction command et/ou utilisent un groupe d'annulation. Tu peux faire un groupe d'annulation en appelant la commande "_undo" ("annuler") :(command "_undo" "_begin") ; ici le code (command "_undo" "_end") ou, en Visual LISP, les méthodes StartUndoMark et EndundoMark :(vla-StartUndoMark (vla-get-ActiveDocument (vlax-get-acad-object))) ; ici le code (vla-EndUndoMark (vla-get-ActiveDocument (vlax-get-acad-object))) Attention, si une erreur (ou un annuler) intervient dans le code, avant la fermeture du groupe d'annulation, celui-ci reste ouvert et de futures annulation (avec U) risquent de provoquer une erreur fatale.Donc, à mon avis, l'utilisation de groupes d'annulation nécessite obligatoirement de gérer les erreurs avec une redéfinition locale de la fonction *error* qui referme le groupe d'annulation. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
philsogood Posté(e) le 8 avril 2011 Auteur Posté(e) le 8 avril 2011 merci pour les fonctionnalités supplémentaires (gile)je vais pas me risquer à mettre une telle chose dans mes programmes, le soft a déjà tendance à planter sans que j'ai besoin d'intervenir! j'ai fais un autre super lisp, le lisp qui combine ucs+plan (on tourne le plan ainsi que le cursuer avec une seule commande, le progrès quoi!)attention ça pique les yeux : (defun c:turn (/) (command "_ucs" "z") (command pause) (command pause) (command "_plan" "_current") ) prochaine étape le faire en VBA (même si on sait que c'est un langage qui va tendre à disparaitre...) A tout hasard connaissez-vous une méthode pour rendre le lisp ludique et attractif (j'ai essayé la programmation mais ça devient très vite très barbare!) l'idéal ça serait un bouquin avec des TD, j'ai bien vu qqs trucs sur internet mais les leçons/exo ne vont aps chercher bien loin en tout cas merci à toute la communauté pour l'entraide que vous fournissez au noobZ comme moi bonne journéePhil Projeteur Revit Indépendant - traitement des eaux/CVC
didier Posté(e) le 8 avril 2011 Posté(e) le 8 avril 2011 Coucou A tout hasardes-tu inscrit chez moi ? je donne de temps en temps des exemples d'applicationdans des domaines variésen ce moment la mode est aux courbes. LIEN ça peut-être un moyen de commencer. amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
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