sechanbask Posté(e) le 24 octobre 2007 Posté(e) le 24 octobre 2007 il est possible d'afficher le nom du plan sur lequel on travaille. Le nom apparait en bas à gauche de l'écran juste avant la position du curseur pour cela : taper modemacro puis $(getvar,dwgname)... et c'est tout !! [Edité le 24/10/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
x_all Posté(e) le 24 octobre 2007 Posté(e) le 24 octobre 2007 pas mal.... merci, dans la barre bleu en haut ya jamais la place pour l'indiquer... ya moyen de mettre ça au démarrage? quelques trucs sur autocad
lovecraft Posté(e) le 24 octobre 2007 Posté(e) le 24 octobre 2007 tu peux aussi faire la même chose avec la commande rtext puis $(getvar,dwgname).C'est assez utile pour le cartouche. Y a aussi $(xrefs,2) pour avoir le nom de ref externe "remplacer le 2 par 3 pour avoir le chemin complet"Voila ma p'tit contribution@plus http://www.youtube.com/user/CADMINATOR?feature=mhee
sechanbask Posté(e) le 24 octobre 2007 Auteur Posté(e) le 24 octobre 2007 Pour le mettre au démarrage, je pense qu'il faut qu'un lispeur nous aide.... Js pourrais le faire en vba mais ça va pas être simple car il faudra intercepter l'ouverture d'autocad = 2 modules et 20 lignes de code !!! à mon avis eux vont nous faire ça dans les fichier de démarrage en 3 lignes... personnellement j'ai découvert ça aujourd'hui car je fait des truc chiant ou j'ai besoin que des fonctions usuelles alors je dessine en plein écran mais j'avais du mal à savoir sur quel plan je travaillais, et j'ai pensé à mon livre sur le programmation d'eyrolles... pratique non ? merci pour Rtext, j'utilisé les champs dynamiques pour faire ça mais vu que ta fonction fait en sort de changer le texte lorsque le nom du fichier change avec l'incrément des indices. je vais essayer de l'utiliser... 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 24 octobre 2007 Posté(e) le 24 octobre 2007 Salut, MODEMACRO est une variable système dont la valeure est une chaine. Pour avoir le nom du fichier à chaque ouverture de fichier (ou de nouveau dessin), il suffit de mettre la ligne de code suivante dans un fichier de chargement automatique de routines LISP : - soit un fichier nommé acaddoc.lsp à créer dans un répertoire du chemin de recherche ;- soit le fichier MNL du même nom que le fichier de menu utilisé (CUI ou MNS) : acad.mnl si aucun fichier de menu n'a été crée, MonMenu.mnl sinon. (setvar "MODEMACRO" (getvar "DWGNAME")) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
sechanbask Posté(e) le 25 octobre 2007 Auteur Posté(e) le 25 octobre 2007 merci (gile) Est-ce possible de formater la variable pour enlever l'extension. Car j'ai vraiment pas besoin de voir que je suis sur un DWG, car je suis toujours sur un Dwg... et mieux encore, serait-il possible de modifier la casse pour indiquer que le fichier est en lecture seule ? ? ? pour poursuivre ce sujet, je me demande s'il serait possible d'envoyer une boite à l'utilisateur pour lui indiquer que ça fait 20 minutes qu'il n'a pas enregistré son plan.... pour ceux qui auront une surprise quand ça plantera...... [Edité le 25/10/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
Patrick_35 Posté(e) le 25 octobre 2007 Posté(e) le 25 octobre 2007 Salut serait-il possible de modifier la casse pour indiquer que le fichier est en lecture seule ? ? ?C'est indiqué dans la barre des titres ? je me demande s'il serait possible d'envoyer une boite à l'utilisateur pour lui indiquer que ça fait 20 minutes qu'il n'a pas enregistré son planRien de plus simple (enfin, pour ceux qui connaissent) avec les réacteurs. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
x_all Posté(e) le 25 octobre 2007 Posté(e) le 25 octobre 2007 oki merci (gile) j'ai rajouter ça a un de tes nombreux lisp que je charge au démarrage et ça marche nickel (comd'ab :) ) quelques trucs sur autocad
sechanbask Posté(e) le 26 octobre 2007 Auteur Posté(e) le 26 octobre 2007 pour moi depuis que j'ai le lisp de (gile) le nom du plan s'affiche, mais ne change plus quand je change de plan... donc ça n'a plus d'utilité, je dois avoir un problème de variable pour le chargement du lisp non?? Patrick_35 en plein écran, il n'y a plus de barre titre, c'est pourquoi j'utilise modemacro !!! 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
Patrick_35 Posté(e) le 26 octobre 2007 Posté(e) le 26 octobre 2007 je dois avoir un problème de variable pour le chargement du lisp Si tu charges AutoCAD.lsp, regarde la variable acadlspasdoc Pour voir si ton dessin est en lecture seul ou pas, utilise(vla-get-readonly (vla-get-activedocument (vlax-get-acad-object))) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
sechanbask Posté(e) le 26 octobre 2007 Auteur Posté(e) le 26 octobre 2007 j'ai 0 à la variable acadlspasdoc mais je ne sais pas si je charge AutoCAD.lsp puisque que j'ai mis le lisp pour la macro commande dans acaddoc.lsp dans un dossier support : le dossier "Support". je ne vois pas comment avec ton code, je dois le rajouter à celui de (gile) et comment il faut faire pour formater ce qui apparait à l'écran... 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
Patrick_35 Posté(e) le 26 octobre 2007 Posté(e) le 26 octobre 2007 Par exemple(setvar "MODEMACRO" (strcat (getvar "DWGNAME") (if (eq (vla-get-readonly (vla-get-activedocument (vlax-get-acad-object))) :vlax-true) " RO" ""))) Pour le chargement automatique des lisps. Et bien, je viens de tester, et effectivement, en fermant un dessin, modemacro ne change pas.Il reste donc plus qu'à utiliser les réacteurs et logiquement avec vlr-docmanager-reactor et l'évenement :vlr-documentBecameCurrent. @+ [Edité le 26/10/2007 par Patrick_35] Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
sechanbask Posté(e) le 26 octobre 2007 Auteur Posté(e) le 26 octobre 2007 alors là, je suis largué... le lisp et moi on est pas vraiment copain... à mon grand damne... 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
Patrick_35 Posté(e) le 26 octobre 2007 Posté(e) le 26 octobre 2007 Je vais convertir un "vbïste" au lisp ;) le lisp et moi on est pas vraiment copainCa va venir, ça va venir... Le lisp avec le réacteur(defun maj_macro() (setvar "MODEMACRO" (strcat (getvar "DWGNAME") (if (eq (vla-get-readonly (vla-get-activedocument (vlax-get-acad-object))) :vlax-true) " RO" ""))) ) (defun mon_reacteur_modemacro(rea doc) (maj_macro) ) (or (setq rea_macro (vlr-docmanager-reactor nil (list (cons :vlr-documentBecameCurrent (function mon_reacteur_modemacro)))))) (maj_macro) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 26 octobre 2007 Posté(e) le 26 octobre 2007 Salut, Une autre solution est de mettre l'expression dans la fonction S::STARTUP qui n'est évaluée qu'après l'initialisation du dessin. Mettre la fonction S::STARTUP dans le fichier acaddoc.lsp (defun-q S::STARTUP () (setvar "MODEMACRO" (strcat (getvar "DWGNAME") (if (eq (vla-get-readonly (vla-get-activedocument (vlax-get-acad-object)) ) :vlax-true ) " RO" "" ) ) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Patrick_35 Posté(e) le 28 octobre 2007 Posté(e) le 28 octobre 2007 Salut (gile)Sauf que cette solution ne fonctionne pas quand on bascule d'un dessin à un autre, ou que l'on ferme un dessin. ModeMacro ne s'actualise pas. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
winfield Posté(e) le 28 octobre 2007 Posté(e) le 28 octobre 2007 En vba, faut mettre ça dans un module ThisDrawing : 'le principe ne gère pas les fichiers dxf Private Sub AcadDocument_Activate() NomFichier = UCase(ThisDrawing.Name) NomFichier = Split(NomFichier, ".DWG") ThisDrawing.SetVariable "MODEMACRO", NomFichier(0) End Sub Bonne continuation Nous n’ héritons pas de la terre de nos ancêtres.Nous l’empruntons à nos enfants.
sechanbask Posté(e) le 30 octobre 2007 Auteur Posté(e) le 30 octobre 2007 j'ai un problème, comme j'aime bien que ça marche pour tout le monde, il faut que je déclare tout mais avec ou sans de toute manière j'ai un problème 'le principe ne gère pas les fichiers dxf Private Sub AcadDocument_Activate() Dim strNomFichierentier As String Dim strNomFichier(1) As String Dim strExtension As String strNomFichierentier = VBA.UCase(ThisDrawing.Name) strExtension = VBA.Right(strNomFichierentier, 3) Debug.Print strExtension strNomFichier(0) = Split(strNomFichierentier, ".DWG") ThisDrawing.SetVariable "MODEMACRO", strNomFichier(0) End Sub j'ai une erreur 13 sur la ligne :strNomFichier(0) = Split(strNomFichierentier, ".DWG") j'aurais besoin d'aide... 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
sechanbask Posté(e) le 31 octobre 2007 Auteur Posté(e) le 31 octobre 2007 J'ai trouvé comme faire pour ça fonctionne bien, j'ai même pris en charge tous les types de fichier. par contre, ça ne marche qu'à partir de l'ouverture d'un second fichier : Private Sub AcadDocument_Activate() Dim strNomFichierentier As String Dim strNomFichier As String Dim strExtension As String strNomFichierentier = VBA.UCase(ThisDrawing.Name) strExtension = VBA.Right(strNomFichierentier, 4) Debug.Print strExtension strNomFichier = VBA.Replace(strNomFichierentier, strExtension, "") ThisDrawing.SetVariable "MODEMACRO", strNomFichier End Sub 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
sechanbask Posté(e) le 2 novembre 2007 Auteur Posté(e) le 2 novembre 2007 ce code me convient alors pour moi, le sujet est résolu 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
papyrus1985 Posté(e) le 23 avril 2010 Posté(e) le 23 avril 2010 Boujour a tous, Je reviens sur ce post un peu vieu pour donnée la SOLUTION : (setvar "MODEMACRO" "$(getvar,dwgname)") Pourquoi cherché compliqué quand on peut faire simple. Bon courage au lispeur. Cyprien Utilisateur AutoCAD depuis la R12 Longue Vie à CADxp
dilack Posté(e) le 23 avril 2010 Posté(e) le 23 avril 2010 salut,sur 2008 full ca donne pas le résultat escompter.
papyrus1985 Posté(e) le 23 avril 2010 Posté(e) le 23 avril 2010 Voici un code plus elaboré(setvar "MODEMACRO" "$(substr, $(getvar,DWGNAME), 1 ,$(-,$(strlen, $(getvar,DWGNAME)),4))$(if,$(=,$(getvar,WRITESTAT),0),\" [Lecture seule]\",\"\")") Cyprien Utilisateur AutoCAD depuis la R12 Longue Vie à CADxp
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