CADxp: Routine GEF V3.21 - CADxp

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Routine GEF V3.21

#1 L'utilisateur est hors-ligne   dilack 

  • ceinture noire
  • Groupe : Membres
  • Messages : 447
  • Inscrit(e) : 26-avril 04

Posté 14 janvier 2020 - 11:24

Bonjour à tous,

Pour faire suite à ce sujet et plus précisément au message 14 et aux réponses de Steven : Lien

Je n'arrive pas à utiliser la routine GEF de Patrick

Je précise que le chemin de recherche de la routine est bien implémenter dans mes options.

La routine se charge bien avec la commande "-appload"

Par contre au chargement de la dll "vplayerlisp_19.dll" j'ai un message d'erreur à rallonge et un pop-up qui s'affiche.

Je n'arrive pas à voir ou se situe le problème.

Commande: GEF
_netload Nom du fichier d'assemblage: vplayerlisp_19.dll Impossible de charger l'assemblage. Détails de l'erreur: System.IO.FileLoadException: Impossible de charger le fichier ou l'assembly 'file:///D:\07_resources_dao_cao_pao\01_acad\01_lisp\vplayerlisp_19.dll' ou une de ses dépendances. L'opération n'est pas prise en charge. (Exception de HRESULT : 0x80131515)
Nom de fichier : 'file:///D:\07_resources_dao_cao_pao\01_acad\01_lisp\vplayerlisp_19.dll' ---> System.NotSupportedException: Tentative de chargement d'un assembly à partir d'un emplacement réseau qui aurait entraîné l'utilisation de l'assembly en mode Bac à sable (sandbox) dans les versions antérieures du .NET Framework. Cette version du .NET Framework n'activant pas la stratégie CAS par défaut, ce chargement peut être dangereux. Si ce chargement n'est pas destiné à utiliser l'assembly en mode Bac à sable (sandbox), activez le commutateur loadFromRemoteSources. Pour plus d'informations, consultez http://go.microsoft.com/fwlink/?LinkId=155569.
   à System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   à System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   à System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark)
   à System.Reflection.Assembly.LoadFrom(String assemblyFile)
   à Autodesk.AutoCAD.Runtime.ExtensionLoader.Load(String fileName)
   à loadmgd()



Image IPB


Merci d'avance pour réponses
0

#2 L'utilisateur est hors-ligne   VDH-Bruno 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 949
  • Inscrit(e) : 29-avril 10

Posté 14 janvier 2020 - 12:22

Bonjour

Voir le messagedilack, le 14 janvier 2020 - 11:24 , dit :

Bonjour à tous,

Pour faire suite à ce sujet et plus précisément au message 14 et aux réponses de Steven : Lien



Personnellement je n'utilise pas cette routine mais pour développer la réponse faite par Steven, j'ai regardé rapidement le code (code qui a toujours été très formateur et agréable à lire chez Patrick_35)

Voir le messageSteven, le 14 janvier 2020 - 08:34 , dit :

Une dll se charge bien avec la commande NETLOAD, tu as tout bon Image IPB

Mais tu n'es pas obligé de la charger ladite dll pour faire fonctionner le lisp GEF. En tous cas, je n'en ai pas eu besoin.
Tu peux juste charger gef.lsp Image IPB



Effectivement, tu n'as pas besoin de charger les dll, le chargement est automatique pris en charge par ces quelques lignes de codes implantés dans le fichier lisp (fichier Gef.lsp).
Extrait du code du fichier Gef.lsp:
(and	(not (eval 'gc-vpthaw))
	(setq dcl (findfile "VpLayerLisp.dll"))
    (if (< 18 (atoi (getvar 'acadver)))
      (vl-cmdf "_netload" "vplayerlisp_19.dll")
      (vl-cmdf "_netload" "vplayerlisp.dll")
    )
  )
  (if (fra)
    (setq dcl "gef_fr.dcl")
    (setq dcl "gef_en.dcl")
  )


Au lancement la routine détecte: ta version d'AutoCAD et charge la dll correspondant (soit vplayerlisp_19.dll ou vplayerlisp.dll), ainsi que l'option de langue pour charger la version francaise ou anglaise de la boite de dialogue (gef_fr.dcl ou gef_en.dcl), après je suppose que tous ces fichiers doivent être installé dans un des chemins de recherche de fichiers de support pour le bon fonctionnement du programme.

En conclusion le programme s'installe et se lance comme un lisp classique, l'usage de dll est transparent pour l'utilisateur.

Salutations Bruno
Apprendre => Prendre => Rendre
0

#3 L'utilisateur est hors-ligne   dilack 

  • ceinture noire
  • Groupe : Membres
  • Messages : 447
  • Inscrit(e) : 26-avril 04

Posté 14 janvier 2020 - 12:36

On est d'accord...
- Les fichiers sont installés dans un chemin de recherche de fichiers de support
- Et les dll doivent se chargées

Mais au final je n'arrive pas à utiliser la routine GEF
0

#4 L'utilisateur est hors-ligne   Steven 

  • ceinture rouge et blanche 7em dan
  • Groupe : Membres
  • Messages : 3677
  • Inscrit(e) : 03-mars 03
  • LocationDans le TARDIS

Posté 14 janvier 2020 - 13:25

Salut dilack,

As-tu suivi la procédure que j'ai expliqué ---> ici?


Voir le messageSteven, le 10 janvier 2020 - 20:48 , dit :

Lorsque tu as télécharger le fichier compressé Gef-v3.22.zip, décompresse le contenu dans un dossier.

Dans les options d'AutoCAD, dans l'onglet Fichiers, ajoute le chemin dudit dossier dans les Chemins de recherche de support en cours d'utilisation.

Ensuite, tape la commande APPLOAD puis va chercher le fichier gef.lsp dans ton dossier puis charge-le.
Tape ensuite, dans la ligne de commande, gef Image IPB

Steven________________________________________
Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.
Pour la maison; Linux Mint et pas de problèmes. Mais pas d'AutoCAD.
En rêve; AutoCAD sous Linux.
0

#5 L'utilisateur est hors-ligne   bonuscad 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 4703
  • Inscrit(e) : 20-juin 03

Posté 14 janvier 2020 - 13:43

Voir le messagedilack, le 14 janvier 2020 - 12:36 , dit :

On est d'accord...
- Les fichiers sont installés dans un chemin de recherche de fichiers de support
- Et les dll doivent se chargées

Mais au final je n'arrive pas à utiliser la routine GEF


Bonjour,
Avec windows il peut être nécessaire de débloquer les dll
Pour ce faire dans l'explorateur, click-droit sur le fichier et si dans l'onglet général" il est stipulé que ce fichier provient d'un autre ordinateur il est proposé de de le débloqué si tu lui fais confiance.
Après ceci la commande pourra être lancée, si il n'est pas débloqué, il n'est pas chargé et tu as droit a commande inconnue.

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
0

#6 L'utilisateur est hors-ligne   dilack 

  • ceinture noire
  • Groupe : Membres
  • Messages : 447
  • Inscrit(e) : 26-avril 04

Posté 14 janvier 2020 - 14:09

@ Steven: oui j'ai appliqué la procédure.

@ bonuscad: même en débloquant la dll cela ne fonctionne pas!

J'ai bien récupéré la version 3.22

Commande: _appload Gef.lsp correctement chargé(s)


Commande:
GEF.LSP Chargé......Tapez GEF pour l'éxecuter.
Commande:
Commande: GEF
_netload Nom du fichier d'assemblage: vplayerlisp_19.dll Impossible de charger l'assemblage. Détails de l'erreur: System.IO.FileLoadException: Impossible de charger le fichier ou l'assembly 'file:///D:\07_resources_dao_cao_pao\01_acad\01_lisp\vplayerlisp_19.dll' ou une de ses dépendances. L'opération n'est pas prise en charge. (Exception de HRESULT : 0x80131515)
Nom de fichier : 'file:///D:\07_resources_dao_cao_pao\01_acad\01_lisp\vplayerlisp_19.dll' ---> System.NotSupportedException: Tentative de chargement d'un assembly à partir d'un emplacement réseau qui aurait entraîné l'utilisation de l'assembly en mode Bac à sable (sandbox) dans les versions antérieures du .NET Framework. Cette version du .NET Framework n'activant pas la stratégie CAS par défaut, ce chargement peut être dangereux. Si ce chargement n'est pas destiné à utiliser l'assembly en mode Bac à sable (sandbox), activez le commutateur loadFromRemoteSources. Pour plus d'informations, consultez http://go.microsoft.com/fwlink/?LinkId=155569.
   à System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   à System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   à System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark)
   à System.Reflection.Assembly.LoadFrom(String assemblyFile)
   à Autodesk.AutoCAD.Runtime.ExtensionLoader.Load(String fileName)
   à loadmgd()


Commande:
Erreur : type d'argument incorrect: fixnump: nil

0

#7 L'utilisateur est hors-ligne   dilack 

  • ceinture noire
  • Groupe : Membres
  • Messages : 447
  • Inscrit(e) : 26-avril 04

Posté 14 janvier 2020 - 14:29

Bon après moulte essais, je suis arrivé à faire fonctionner la routine mais celle ci est en anglais, y a t-il un moyen de l'avoir en français?
J'ai essayé de supprimer le dcl anglais mais ce n'est pas la meilleur méthode car je me chope un message d'erreur.
0

#8 L'utilisateur est hors-ligne   VDH-Bruno 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 949
  • Inscrit(e) : 29-avril 10

Posté 14 janvier 2020 - 16:29

Voir le messagedilack, le 14 janvier 2020 - 14:29 , dit :

Bon après moulte essais, je suis arrivé à faire fonctionner la routine mais celle ci est en anglais, y a t-il un moyen de l'avoir en français?


Tu peux tenter dans le lisp de mettre cette séquence d'instruction en commentaire..
(if (fra)
    (setq dcl "gef_fr.dcl")
    (setq dcl "gef_en.dcl")
  )


Pour la remplacer par la suivante
(setq dcl "gef_fr.dcl")


En théorie qq soit ta config il chargera la dcl en Français

A+
Apprendre => Prendre => Rendre
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)