Aller au contenu

Lisp INCATT de (Gile) et bloc dynamique


Demixav

Messages recommandés

Bonjour,

 

J'ai un bloc dynamique avec un attribut représentant une lettre.

J'ai souhaité utiliser le LISP INCATT de (Gile) sur ce bloc, il fonctionne bien mais je perds le dynamisme de mon bloc... est ce possible de le conserver?

 

En vous remerciant!

Xav

 

NB : Pour (Gile), dans le descriptif de ton LISP INCREMENT au début, une des commandes est noté "INSEL" au lieu de "INCSEL"! Pas bien important, juste pour info... :unsure:;)

AutoCad Map 3D 2011 - Covadis v16.0d

Windows 7 - 64b

Lien vers le commentaire
Partager sur d’autres sites

Merci pour ta réponse et sa rapidité!

 

Merci pour le lien, mais je n'arrive pas à le lancer... avant qu'il soit compatible avec AA2020, est ce qu'il est compatible avec AA2011 ? :unsure: <_< <_<

 

J'ai installé le fichier, j'ai fermé et redémarré Autocad mais non, "commande inconnue"!

 

Encore merci pour ton aide et tes LISP!

Xavier

AutoCad Map 3D 2011 - Covadis v16.0d

Windows 7 - 64b

Lien vers le commentaire
Partager sur d’autres sites

Désolé, le mécanisme de chargement automatique Autoloader ne fonctionne qu'à partir d'AutoCAD 2012.

 

Mais tout n'est pas perdu, tu peux charger la DLL Gile_Increment_18.dll (Gile_Increment_19.dll est pour A2013 et plus) qui se trouve dans le dossier :

C:\Users\\AppData\Roaming\Autodesk\ApplicationPlugins\Gile_Increment.bundle\Contents

avec la commande NETLOAD.

 

Si tu veux automatiser le chargement, tu peux voir ce sujet (Utilisation du fichier acad.lsp et Utilisation de la base de registre)

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

Lien vers le commentaire
Partager sur d’autres sites

Pour enregistrer la DLL et qu'elle se charge automatiquement au premier appel de la commande GILE_INCR, tu charges ce LISP :

;;; NetDemandAutoLoad
;;; Inscrit une application .NET dans la base de registre pour
;;; un chargement automatique au lancement d'une commande
;;;
;;; Arguments
;;; key : la clé de l'application (string)
;;; descr : une description (string)
;;; filename : le chemin complet de la dll (string)
;;; commands : la liste des noms de commande (list)
;;; groups : la liste des noms de groupes de commande ou nil

(defun NetDemandAutoLoad (key descr filename commands groups / regpath)
 (vl-load-com)
 (if (setq fullname (findfile filename))
   (progn
     (mapcar
       '(lambda (k v)
          (vl-registry-write
            (setq regpath (strcat "HKEY_CURRENT_USER\\"
                                  (vlax-product-key)
                                  "\\Applications\\"
                                  key
                          )
            )
            k
            v
          )
        )
       '("DESCRIPTION" "LOADCTRLS" "LOADER" "MANAGED")
       (list descr 12 filename 1)
     )
     (foreach n commands
       (vl-registry-write (strcat regpath "\\Commands") n n)
     )
     (foreach n groups
       (vl-registry-write (strcat regpath "\\Groups") n n)
     )
   )
   (princ (strcat "\nLe fichier \"" filename "\"  est introuvable"))
 )
)

 

Puis tu lances cette expression :

(NetDemandAutoLoad "Increment"
                  "Boite de dialogue Increment"
                  (strcat (getenv "appdata") "\\Autodesk\\ApplicationPlugins\\Gile_Increment.bundle\\Contents\\Gile_Increment_18.dll")
                  '("GILE_INCR")
                  '("GILE_GROUP")
)

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

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Heu... je ne pige pas tout j'avoue !!! :unsure:

 

J'ai essayé une première fois, sans succès! du coup, j'ai :

- j'ai désinstallé INCREMENT,

- J'ai fermé AutoCad

- J'ai réinstallé INCREMENT

- Rouvert AA, et j'ai tapé la commande NETLOAD pour aller ouvrir le fichier Gile_Increment_18.dll, et j'ai eu un message d'erreur ci dessous

 

Commande: netload

Impossible de charger l'assemblage. Détails de l'erreur:

System.BadImageFormatException: Impossible de charger le fichier ou l'assembly

'file:///C:\Users\Prénom.Nom\AppData\Roaming\Autodesk\ApplicationPlugins\Gi

le_Increment.bundle\Contents\Gile_Increment_18.dll' ou une de ses dépendances.

Cet assembly a été construit par un runtime plus récent que le runtime

actuellement chargé et ne peut pas être chargé.

Nom du fichier :

'file:///C:\Users\Prénom.Nom\AppData\Roaming\Autodesk\ApplicationPlugins\Gi

le_Increment.bundle\Contents\Gile_Increment_18.dll'

à System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase,

Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark,

Boolean throwOnFileNotFound, Boolean forIntrospection)

à System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence

assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)

à System.Reflection.Assembly.LoadFrom(String assemblyFile)

à Autodesk.AutoCAD.Runtime.ExtensionLoader.Load(String fileName)

à loadmgd()

AVT : le journal de liaison d'assembly est désactivé.

Pour activer le journal des échecs de liaison d'assembly, attribuez la valeur 1

à la valeur de Registre [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD).

Remarque : une certaine perte de performance est associée à l'enregistrement

dans le journal des échecs de liaison d'assembly.

Pour désactiver cette fonctionnalité, supprimez la valeur de Registre

[HKLM\Software\Microsoft\Fusion!EnableLog]

 

- J'ai copié le LISP NetDemandAutoLoad

- J'ai ouvert AA, et j'ai essayé de lancer le LISP NetDemandAutoLoad → commande inconnue,

- Du coup j'ai copié les quelques lignes de l'expression sous le LISP dans ton post, que j'ai copié dans AA. Là, le programme s'arrête sur un truc du genre " (_> "... je pense qu'il attend une réponse mais je ne sais pas quoi...

- dans le doute, j'ai réessayé de lancer GILE_INCR, mais toujours inconnu au bataillon !!! :unsure:

 

Il a l'air vraiment bien ton LISP mais là, ça devient trop compliqué pour moi ou mon ordi...

J'ai pas envie de te faire perdre ton temps pour rien, et ça me gene si c'est le cas! Tu en accordes déjà suffisamment comme ça je trouve... donc je vais faire avec mes moyens et je vais bien me débrouiller ainsi !!! tant pis !! :unsure:

 

Encore un grand merci malgré tout!

Xav

AutoCad Map 3D 2011 - Covadis v16.0d

Windows 7 - 64b

Lien vers le commentaire
Partager sur d’autres sites

La DLL ne doit pas être compatible avec A2011.

Tu peux désinstaller Increment via le panneau de configuration.

 

Tu peux télécharger increment_18.zip qui contient une version compatible A2011.

Tu débloques le zip (clic droit > Propriétés > onglet Général > Débloquer).

Tu extraits la DLL dans un dossier des chemins de recherche d'AutoCAD.

Tu essayes de la charger "manuellement" avec NETLOAD.

Tu lances la commande GILE_INCR

 

Si tout fonctionne comme ça devrait, tu peux envisager le chargement automatique, soit avec un fichier acad.lsp dans lequel tu colles l'expression suivante :

(command "_netload" "Increment_18.dll")

soit via la base de registre en créant une clé comme celle de l'image que j'ai jointe au zip en remplaçant le chemin par simplement : Increment_18.dll, puisque le fichier est dans les chemins de recherche.

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

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é