Aller au contenu

Messages recommandés

Posté(e)

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 Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

Posté(e)

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 Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

Posté(e)

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

Posté(e)

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 Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

Posté(e)

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 plan

Rien de plus simple (enfin, pour ceux qui connaissent) avec les réacteurs.

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

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 Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

Posté(e)

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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

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 Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

Posté(e)

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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

alors là, je suis largué... le lisp et moi on est pas vraiment copain... à mon grand damne...

ATEGIE - Bureau d'Études Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

Posté(e)

Je vais convertir un "vbïste" au lisp ;)

 

le lisp et moi on est pas vraiment copain

Ca 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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

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

Posté(e)

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.

Posté(e)

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 Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

Posté(e)

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 Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

Posté(e)

ce code me convient alors pour moi, le sujet est résolu

ATEGIE - Bureau d'Études Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

  • 2 ans après...
Posté(e)

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

 

Posté(e)

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

 

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é