Aller au contenu

Boites de dialogue Windows


(gile)

Messages recommandés

Salut,

 

Mon cadeau de fin d'année pour les lispeurs.

Pas vraiment une révolution, plutôt mes balbutiements en dot NET.

 

Il s'agit de 4 nouvelles fonctions LISP qui permettent d'accéder aux boites de dialogues standard Windows.

- gc-GetFileDlg pour choisir un ou plusieurs fichiers existants

- gc-GetFolderDlg pour choisir un répertoire

- gc-MessageBox pour délivrer un message et récupérer une réponse

plus,

- gc-InputBox pour récupérer une entrée utilisateur.

J'ai préfixé les noms des fonctions pour limiter le risque de conflit avec des fonction définies en LISP.

 

Comme je ne suis pas encore au point avec les setup.exe, l'installation se fait depuis AutoCAD :

- décompresser le fichier ZIP dans un répertoire du chemin de recherche

- entrer (load "dialog-setup") à la ligne de commande, valider

- entrer dialog-setup, valider

- laisser vous guider...

 

Télecharger le ZIP

 

PS : pour accéder à l'aide de ces fonctions entrer : (help "LispDialog")

 

PPS : si certains sont intéressé par les codes source (C#) je les mettrais en téléchargement aussi.

 

EDIT : Ça y est !!! Tout les fichiers dans un setup qui s'occupe de tout Réponse 6 (uniquement 2007, 2008 et 2009)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Tu utilises quoi comme programme pour voir/Editer un programme en DLL ?

 

On peut décompiler les assemblies (DLL) .NET avec Reflector, si elles ne sont pas cryptées.

 

Pour modifier le code source on peut utiliser n'importe quel éditeur de texte et on peut recompiler depuis la fenêtre de commande DOS, mais il est plus pratique d'utiliser un éditeur Visual Studio.

 

Je ne suis pas sûr du tout que tout ça fonctionne avec BricsCAD, tout dépend de l'implémentation de .NET

Dans AutoCAD, ça ne fonctionnera qu'à partir de la version 2007.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Salut (gile),

Je ne me suis pas penché sur le C#.

Trouves-tu ça sympa comme logique ?

j'avoue que le vb-net ne m'amuse pas du tout (au contraire du lisp), donc c'est pour voir si je ne tendrais pas vers autre chose...

merci.

 

[Edité le 4/1/2009 par Bred]

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Du peu que je sais, si les syntaxes du VB et du C# diffèrent un peu, l'architecture est la même.

C'est de la Programmation Orientée Objet et les deux utilisent le même Framework.

 

Je dois avouer avoir un peu de mal et beaucoup moins m'amuser qu'en LISP(mais ça viendra peut-être).

 

J'ai choisi C# pour plusieurs raisons (plus ou moins bonnes)

- Ce n'est pas un langage propriétaire, contrairement à VB (Microsoft) et un framework pour les systèmes d'exploitation MacOS et LINUX (MONO) est en train d'être implémenté.

- La syntaxe me semblait moins rébarbative que celle du VB et elle est plus proche du C++ (peut-être un jour...)

- J'ai trouvé plus d'exemples pour AutoCAD en C# qu'en VB, notamment sur TheSwamp ou sur Through the Interface

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...

Salut,

 

Voilà un fichier .msi qui s'occupe de l'installation (AutoCAD 2007/2008/2009):

- création d'un nouveau dossier contenant les fichier (dll, chm)

- inscriptions dans la base de registre du chemin vers le dossier et du chargement automatique de la dll.

 

Pour installer : fermer AutoCAD, décompresser le ZIP et double cliquer sur le fichier msi, relancer AutoCAD, les nouvelles fonctions LISP sont automatiquement chargées.

 

Pour ouvrir l'aide, dans AutoCAD lancer l'expression LISP : (help "LispDialog")

 

La désinstallation se fait par le panneau de configuration Windows >> Ajouter et supprimer des programmes.

 

LispDialogSetup.msi

 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à toutes et tous,

 

Afin de tester, j'ai télécharger "dotnetfx35setup.exe" et lorsque je lance l'install de "LispDialogSetup.msi", j'ai ce message (j'ai testé à plusieurs reprises après avoir rebooté mon ordi,..)

 

http://images4.hiboox.com/images/0409/a1a829745d01e379a3cfffaf4a136c05.jpg

 

Une idée ?

 

Merci d'avance,

Civil 3D 2025 - COVADIS_18.3a

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Le dll fonctionne nickel (Gile), merci. Pour le msi je ne peux pas l'installer..... problème de droits administrateur.

 

En revanche si je peux me permettre, J'apporterai une petite option à "gc-GetFolderDlg". Ne pourrait-on pas définir un chemin par défaut.

Parce que j'ai des chemins de répertoire à rallonge et je dois toujours remonté toute l'arborescence pour cibler mon dossier.

 

Cela dit, encore merci tout fonctionne nickel

 

 

Lili2006 est trop fort. Il a été écrire son message dans le futur et est revenu après. Il y a un problème dans l'horloge

 

[Edité le 22/1/2009 par Arcasdk]

<IMG SRC=http://peronfrederic.free.fr/banniere.jpg></IMG>

 

<a href=www.formu-lan.net>www.FormuLan.net

</a>

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

À tous,

Je débute avec C#, ce qui explique que certaines choses ne soient pas tout à fait point...

 

lili2006,

j'ai télécharger "dotnetfx35setup.exe"

C'est curieux, j'ai tout paramétré pour que ça fonctionne avec la version2.0 de .NET Framework ?...

 

L'installation ne fonctionne peut-être pas suivant la version par défaut d'AutoCAD.

Peux-tu essayer cette expression LISP à la ligne de commande et me dire le retour :

(vl-load-com) (vlax-product-key)

 

Arcasdk,

En revanche si je peux me permettre, J'apporterai une petite option à "gc-GetFolderDlg". Ne pourrait-on pas définir un chemin par défaut.

Cette propriété existe, mais je l'avais volontairement écartée parce que spécifier un chemin par défaut empêche l'accès aux répertoires situés plus haut dans l'arborescence.

Dès que j'ai un peu de temps, je rajouterais cette option à utiliser avec prudence donc.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

lili2006,

 

Peux tu essayer plutôt ceci :

((lambda (/ k)
  (setq k "HKEY_CURRENT_USER\\Software\\Autodesk"
 k (strcat k "\\" (vl-registry-read k "CurProd"))
 k (strcat k "\\" (vl-registry-read k "CurVer"))
 k (strcat k "\\" (vl-registry-read k "CurVer"))
  )
)
)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

As tu bien tous les droits sur ton poste ?

 

J'ai une embrouille su ce poste, la boite qui m'a fait le montage de mon PC et l'install de windows à coulé aujourdh'ui ! Je me suis pourtant mis en administrateur mais certains pg "bloquent" effectivement,...

 

Donc cela provient de chez moi,..

 

Désolé, c'était pour faire avancer le chmilblick pensant que cela pouvait provenir de ton prog,....

 

Encore désolé,

 

Merci pour ta patience lili2006

 

C'est plutôt à toi, ;)

 

1er méthode, sans pb, j'avais déjà testé (euh, au fait, peut-être un rapport aussi ???!)

 

D'autres vont surement testé et tu seras alors fixé !

 

@+,

Civil 3D 2025 - COVADIS_18.3a

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

1er méthode, sans pb, j'avais déjà testé (euh, au fait, peut-être un rapport aussi ???!)

 

Oui, le programme étant déjà installé, c'est normal.

Si tu veux vraiment tester à nouveau, il faut d'abord faire une désinstallation "manuelle" :

- supprimer le dossier "LispDialog"

- supprimer chemin de recherche de fichiers de support qui pointe vers ce dossier

- supprimer la clé "LispDialog" dans le registre :

HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\\R17.1\ACAD-6001:40c\Applications\LispDialog

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Plus simple, j'ai testé sur mon PC portable, avec la même licence (transfert).

 

Pas de pb d'installation, tout fonctionne !

 

Désolé de t'avoir fait perdre ton temps,...

 

Mais, c'était dans le but de tester et donner un retour sur ton appli, ;)

Civil 3D 2025 - COVADIS_18.3a

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Cela fonctionne néanmoins au lancement de la commande dialog-setup dans la ligne de commande, j'ai eu un message d'erreur....Est ce que c'est grave docteur

 

Commande: dialog-setup
netload Nom du fichier d'assemblage: LispDialog
Commande: System.InvalidCastException: Le cast spécifié n'est pas valide.
  à Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorker(MethodInfo mi, Object 
commandObject, Boolean bLispFunction)
  à 
Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorkerWithExceptionFilter(MethodInfo
mi, Object commandObject, Boolean bLispFunction)
  à Autodesk.AutoCAD.Runtime.CommandClass.Invoke(MethodInfo mi, Boolean 
bLispFunction)
  à Autodesk.AutoCAD.Runtime.CommandClass.CommandThunk.InvokeLisp(); erreur: 
Demande ADS erronée 

<IMG SRC=http://peronfrederic.free.fr/banniere.jpg></IMG>

 

<a href=www.formu-lan.net>www.FormuLan.net

</a>

Lien vers le commentaire
Partager sur d’autres sites

J'étais sur une version 2009.

J'ai bien eu la fenêtre "Charger automatiquement au démarrage ?" Par contre pour celle de la documentation. Je ne pense pas l'avoir vu. Je vais ré-essayer....

 

Après tests.

 

Non y a pas de fenêtre de documentation. Mais la commande fonctionne quand même. En revanche si je ferme autocad.... Le programme se décharge et je doit relancer la commande "dialog-setup".

 

Est ce quelqu'un a déjà essayé cette macro sur une 2009? Merci...

 

[Edité le 25/3/2009 par Arcasdk]

<IMG SRC=http://peronfrederic.free.fr/banniere.jpg></IMG>

 

<a href=www.formu-lan.net>www.FormuLan.net

</a>

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Salut Arcasdk,

 

Excuse moi, je n'avais pas vu ton message.

 

Il semble que que le chargement automatique ne fonctionne pas, c'est peut-être un problème de droit. Le chargement automatique nécessite de créer des entrés dans la base de registre.

 

Après avoir tenté l'installation, essaye de lancer l'expression suivante :

((lambda ()
  (foreach val	'("DESCRIPTION" "LOADCTRLS" "LOADER" "MANAGED")
    (print
      (vl-registry-read
 (strcat "HKEY_CURRENT_USER\\"
	 (vlax-product-key)
	 "\\Applications\\LispDialog"
 )
 val
      )
    )
  )
  (princ)
)
)

 

tu devrais avoir le retour suivant (au chemin de la dll près) :

 

"Charge les fonctions LispDialog"

2

"C:\\Program Files\\LispDialog\\LispDialog.dll"

1

 

Si tu n'as pas ça, c'est que tu n'as pas les droits pour écrire dans la base de registre.

Tu peux toujours essayer de créer (si ce n'est déjà fait) un fichier acaddoc.lsp (ou AutoCAD.lsp les dll n'ont besoin d'être chargées qu'une fois par session) dans un dossier du chemin de recherche, et dans ce dossier, ajouter l'expression suivante :

 

(if (findfile "LispDialog.dll")
 (command "_netload" "LispDialog.dll")
 (princ "\nLispDialog introuvable")
)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Salut (gile),

 

Merci d'avoir jeté un coup d'oeil sur mon problème...

 

Tu le lances comment ce programme....

 

Sinon je l'ai fait avec le fichier acaddoc.lsp ça fonctionne merci bcp.

<IMG SRC=http://peronfrederic.free.fr/banniere.jpg></IMG>

 

<a href=www.formu-lan.net>www.FormuLan.net

</a>

Lien vers le commentaire
Partager sur d’autres sites

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é