Aller au contenu

Messages recommandés

Posté(e)

Salut,

Vous avez écrit un programme LISP (ou autre) que vous souhaitez partager avec vos collègues, vos amis ou tout le monde mais vous n'avez pas envie d'expliquer à chacun comment l'installer, dans quel dossier mettre les ressources, etc.

Je propose un petit tutoriel avec un exemple très simple pour apprendre à utiliser les bases du mécanisme de chargement automatique avec un dossier .bundle et à créer un installeur pour placer ce dossier dans le répertoire idoine.

Ce tutoriel est, bien sûr, disponible sur cette page.

  • Like 3

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

Posté(e)

Bonjour @(gile)

Un grand merci pour ce partage d'informations.
Je suis complètement passé à côté de ce concept en étant surpris qu'il date de AutoCAD 2013 !.
Je vais bien lire tes explications et m'en servirai pour faire des tests et plus si affinités.

Il n'y a pas à dire !, quand GILLES écrit ou parle, il faut le lire et l'écouter, en paraphrasant l'inénarrable Michel Audiard :
Quand les types de 130 kilos disent certaines choses, les types de 60 kilos les écoutent.

Amicalement
 

 

Posté(e)

Bonjour,

 

Le seul truc qui m'embête avec le principe du bundle, c'est de ne pas pouvoir lier le chargement d'un bundle avec un profil AutoCAD.

J'ai 2 plug-in pour :

- un client qui fait du réseau d'eau avec son gabarit (qui s'installe comme gabarit par défaut), ses unités topo (mètre, grade... par changement de variables systématiques AUNITS, LUNITS, LUPREC, ANGBASE, ANGDIR...)

- un client qui fait des plans de bâtiment avec son gabarit (qui s'installe aussi comme gabarit par défaut) et ses unités (centimètres, degrés...)

Evidemment ça ne fonctionne pas car ça génère des conflits. Le dernier plugin chargé réinitialise l'autre "en partie" car les DLL et VLX ne se chargent pas à la suite, mais d'abord toutes les DLL (.Net), puis tous les VLX...

Je m'en sors avec 2 lanceurs différents (.BAT) qui renomment les dossiers .bundle avant de lancer AutoCAD, chacun avec son profil, mais si on pouvait charger un plug-in à la demande ça serait plus simple.

 

Olivier

  • Upvote 1
Posté(e)

@Olivier Eckmann

Il y a 8 heures, Olivier Eckmann a dit :

si on pouvait charger un plug-in à la demande ça serait plus simple.

En même temps, le principe du .bundle, c'est le chargement automatique...

Et ton problème ne me semble pas directement lié au chargement automatique mais plutôt au fait qu'on ne peut pas décharger/recharger une DLL(donc c'est la première chargée qui prévaut) et, au contraire, charger un LISP (ou fas ou vlx) de même nom, écrase le précédent.

Et si on ne peut pas conditionner le chargement d'un programme à un profil, on peut le faire à un produit (Civil, MAP, Archi, MEP, ...)

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

Posté(e)

@(gile)

Quand je développe un bundle pour un client, je fais en sorte que ce plug-in initialise le gabarit par défaut, mette en place les unités et les variables spécifiques pour son travail. Chaque client n'a qu'un bundle, donc pas de souci chez lui.

Le problème se pose sur nos postes de production, car nous travaillons avec ces bundles installés sur nos postes certains jours pour 1 client, certains jours pour un autre.

J'ai donc les 2 bundle installés sur nos PC de production. Les noms des VLX, DLL ne sont pas identiques, mais chacun d'eux travaillent de la  même manière est redéfinissent le gabarit par défaut, et les unités de travail et les variables utiles à chaque environnement de production.

 

Donc ça rentre en conflit. Si on pouvait lier un le chargement d'un bundle à un profil AutoCAD, comme on peut lier un espace de travail à un profil, ça me permettrait de démarrer sur le profil souhaité et ne charger que le bundle associé.

 

Je peux m'en sortir sans passer par un bundle et travailler avec un MNL associé à un CUIX partiel propre à chaque WS donc profil, mais ça m'oblige à produire un MSI pour le client et une autre manière de travailler en interne pour passer outre le bundle. Ce n'est pas forcément simple. 

 

Je ne sais pas comment font les BE qui ont plusieurs clients qui leur fournissent chacun leur bundle lorsqu'ils travaillent pour eux.

 

Olivier

Posté(e)

@Olivier Eckmann

Je comprends mieux ton problème. Il ne concerne que les BE ou développeurs qui fournissent des applications et ça n'enlève rien à l'intérêt de fournir des dossiers .bundle (ou des installeurs qui les déploient) aux clients.

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

Posté(e)

Petite mise à jour du tutoriel : l'exemple de dossier .bundle charge deux programmes LISP (Edit_Bloc et TotalArea) dont un avec un fichier DCL.

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

Posté(e)

@(gile),

Tu as tout à fait raison, cela n'enlève absolument rien à l'intérêt du bundle ou de l'installeur pour déployer un plug-in avec chargement automatique.

Petite question subsidiaire : est-ce que tu indiques une version max ou pas? Jusqu'à présent, je le faisais systématiquement puis je déployais un nouveau bundle, lorsque j'avais testé que tout fonctionnait avec la nouvelle version, mais j'ai vu que certains xml d'Autodesk, ne déclarait pas de version max.

 

Olivier

Posté(e)

Déclarer une version max est obligatoire pour les plug-ins publiés sur Autodesk App Store et il faut systématiquement tester le plug-in et le faire approuver à chaque nouvelle version.
Par contre, pour ceux que j'ai donné sur CADxp j'ai fini par retirer la version max parce que j'oubliais régulièrement de les mettre à jour.

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

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é