sechanbask Posté(e) le 30 juin 2007 Posté(e) le 30 juin 2007 Je suis vraiment débutant, je souhaite purger tout ce qu'il y a de purgeable dans mon dessin. l'idéal serait que le programme garde en mémoire le calque courant1, puis qu'il rende courant le Calque 0, qu'il purge, et qu'il se remette sur le calque courant1 s'il existe toujours... J'ai commencé par ça: (defun c:purgertout () (vla-PurgeAll (vla-get-ActiveDocument (vlax-get-acad-object)))) c'est certainement bancale car il me fait "nil" dans la ligne de commande à la fin de l'opération néanmoins réussie... [Edité le 30/6/2007 par sechanbask] ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
(gile) Posté(e) le 30 juin 2007 Posté(e) le 30 juin 2007 Salut, L'expression reoturne nil quand l'opération s'est bien déroulée, c'est normal. Si elle ne s'était pas bien déroulée, tu aurais un message d'erreur. Si tu veux que ton LISP s'achève "silencieusement" (sans retour sur la ligne de commande), rajoute (princ) à la fin de l'expression et il est préférable de charger les extensions VisualLISP au cas où elles ne le soient aps (vl-load-com). (defun c:purgertout () (vl-load-com) (vla-PurgeAll (vla-get-ActiveDocument (vlax-get-acad-object)) ) (princ) ) Telle quelle la routine purge tout sauf le calque courant (même s'il ne contient rien) et les blocs imbriqués dans les blocs non insérés. J'avais essayé de faire une super purge qui purge les blocs imbriqués, les xrefx et images rasters, mais il semble que sur certains fichiers elle semble poser encore quelques soucis. Voir ce long sujet. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
sechanbask Posté(e) le 30 juin 2007 Auteur Posté(e) le 30 juin 2007 Merci (gile) pour le coup de pouce.Comme je me sens prêt à commencer le lisp... avant ça me paraissait vraiment impossible... mais bon en commençant petit... Je ne comprend pas ta remarque sur (vl-load-com), ça sert à quoi ? vl = VisualLisp ? vla = ?Pourquoi tu as mis en forme le code de cette manière? Je pense qu'il y a bien une raison. Merci d'avance et bon week-end ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
(gile) Posté(e) le 30 juin 2007 Posté(e) le 30 juin 2007 Salut, Rapidement, Visual LISP est une extension d'AutoLISP (plus orientée objet) qui comprends des fonction vl-* (fonctions AutoLISP supplémentaires) et les fonctions vlax-* (ActiveX), vlr-* (réacteurs), et vla-* (objets méthodes et propriétés VBA).(vl-load-com) charge les fonctions Visual LISP (vla-*, vlax-* et vlr*) si elles ne sont pas déjà chargées (voir ici et ici) La mise en forme n'importe pas dans l'interprétation du LISP, mais permet de rendre le code un peu plus lisible. J'utilise l'éditeur Visual LISP intégré à AutoCAD (Outils >> AutoLISP >> Editeur Visual LISP). Une commande de cet éditeur permet de mettre automatiquement en forme le code (voir ici) Si tu débutes en LISP, je pense qu'il est préférable de se dégrossir d'abord avec AutoLISP pour bien apréhender la syntaxe et la souplesse du langage(sa "grammaire") passer à VisualLISP n'est pratiquement qu'une question de "vocabulaire" supplémentaire.La compréhension de l'Anglais est un plus, l'aide est plutôt bien foutue (à mon avis). [Edité le 30/6/2007 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
sechanbask Posté(e) le 30 juin 2007 Auteur Posté(e) le 30 juin 2007 Pour en revenir au sujet, pour ton énorme lisp (Spruge), je pense que ton code serait encore plus puissant en ajoutant ce que tu m'a donné ici : http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=14245#pid56210 Mais ce n'est que mon opinion. Bon aller bonne soirée. ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
(gile) Posté(e) le 30 juin 2007 Posté(e) le 30 juin 2007 Dans Spurge version 1.4, tu peux ajouter (c:supp) juste après (c:xref_purge)(c:raster_purge) et le nettoyage sera fait (tu peux supprimer le vla-purgeall de supp, la purge "profonde" est faite ensuite).Il faut, bien sûr que les LISP supp xref_purge et raster_purge soient chargés. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
PHILPHIL Posté(e) le 1 juillet 2007 Posté(e) le 1 juillet 2007 bonjour quel est le fichier help *.chm ( en anglais surement ) pour les focntions activex dans la 2008 on ne peut plus faire de "recherche" l'onglet est tout blanc pratique pour trouver merci phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
(gile) Posté(e) le 1 juillet 2007 Posté(e) le 1 juillet 2007 Salut C:\Program Files\AutoCAD 200*\Help\acad_dev.chm Tu peux y accéder depuis AutoCAD menu aide (?) >> Ressources supplémentaires >> Aide aux développeurs >> ActiveX and VBA Reference.Ou depuis l'éditeur Visual LISP en faisant F1 ou encore dans l'éditeur tu sélectionnes une fonction (double clic sur le nom de la fonction) et tu cliques sur l'icone avec un point d'interrogation, l'aide s'ouvrira directement à la page de la fonction. [Edité le 1/7/2007 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour 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