Aller au contenu

Petite différence entre DCL et VBA.


DenisHen

Messages recommandés

Bonjour à la communauté.
Je sais que je vais en facher certains, mais pour les besoins d'un lisp que je viens de terminer, j'ai tenté aujourd'hui de faire un DCL qui va avec.
J'en avais déjà fais plusieurs  il y a quelques années, et j'en avais gardé un très maivais souvenir...
J'ai donc commencé mon DCL vers 12h30, à 17h00, je n'avais fais que ça  (et sans le code qui va avec) :

image.jpeg.f4e9efeb2c1027bf2d2139d9af2566d6.jpeg
Après deux aspirines, je me suis demandé si par le VBA, ce ne serait pas plus "rapide" ?
J'ai donc ouvert l'éditeur VBA, et :
 image.jpeg.ba1b6129e5d970ef976987402d614d95.jpeg
Avec le code VBA qui va bien, en même pas une heure...
Sachant que mon code VBA fait une centaine de lignes et qu'il ne sert juste qu'à stocker et attribuer des ldata (ces échanges sont très rapides avec nos PC actuels) ex

ThisDrawing.SendCommand "(setvar" & """HPNAME""" & """POROTHERM""" & """)" & vbCr

Ou encore :

  ThisDrawing.SetVariable "users1", ""
  ThisDrawing.SendCommand "(setvar " & """users1""" & " (vlax-ldata-get " & """DenisH""" & " " & """RepTabloAxe""" & "))" & vbCr
  RepTabloAxeVal = ThisDrawing.GetVariable("users1")

Je sais, ce n'est pas académique, mais ça fait le job...
J'ai aussi testé OpenDCL et ObjectDCL, mais ils ne fonctionnent pas chez moi (problème d'installation, de langue, de compatibilité ? ?).
Et je ne sais toujours pas s'il faut les installer sur les autres machines.
L'IDE d'AutoLISP ne progresse pas beaucoup depuis très longtemps, mais on a tous pris nos petites habitudes, par contre, avec les DCL, Pffffff...
Quelqu'un aurait une solution pour m'aider à tout faire des DCL simplement ?
Bien à toi la communauté.
Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @DenisHen

Oui, le DCL est assez peu intuitif si on le compare au glisser-déposer du VBA ou des plus modernes encore.
Toutefois, il fait le job à la condition de s'entêter quelque peu.
Les icônes et autres embellissements ne sont pas simples à réaliser, euphémisme bien sûr.

Je n'ai pas d'avis sur OpenDCL et ObjectDCL que je n'ai jamais pratiqué.

Amicalement

 

Lien vers le commentaire
Partager sur d’autres sites

Objectdcl et Opendcl sont des arx, ils doivent être installés sur chacun des machines.

Ils repondent à ton besoin et rien n'est difficile. Bientôt 20 ans d'utilisation pour moi ! Mais si votre VBA fonctionne, où est le souci ?

 

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Bonjour @Tramber

Pas de souci de mon côté, merci.
J'ai juste installé le VBA pour travailler dessus afin de ne pas dire de conneries bêtises sur da-code.

Par contre, au sujet des ARX d'OpenDCL et ObjectDCL, il les faut pour créer les boîtes de dialogue, je comprends bien,
MAIS : doivent-ils être présent sur la machine de l'utilisateur si je partage mon programme ou bien est-ce autoporteur ?

Je te remercie de me répondre, car c'est en partie ce qui me bloque.
C'est ce genre de truc qui bloque le partage de VBA d'ailleurs.

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à toutes et à tous.
Merci pour vos remarques.
Comme le souligne@didier, il faut installer le bon module VBA sur les autres machines. 
Mais la procédure est très simple.
@Tramber: pour les ARX d'OpenDCL ou ObjectDCL, peut-on juste les charger, sans installer les logiciels ?
J'ai eu ma réponse ici, sur CadXP.

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Il y a l'arx mais bien sûr les fichiers odc propres à chacun des développements créés. 

Pour créer ces derniers, il y a besoin de l'éditeur, c'est sur, mais c'est le développeur seul qui en a besoin.

Un fichier ODC, quant à lui, contient une ou plusieurs boites de dialogue. Et enfin on peut faire appel à plusieurs fichiers odc. Ces fichiers sont appelés une première fois par le code lisp adapté. Ceci fait, les boites et leurs contrôles sont reconnues et deviennent interactives.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Bonjour @Tramber

Je te prie de m'excuser, mais je dois te demander de clarifier.
Hypothèse :

J'ai tout ce qu'il faut sur ma machine pour faire des boites avec Opendcl ou Objectdcl ***
Question :
De quoi a besoin la personne à qui je vais donner le programme pour faire tourner la chose ?

Le fichier LSP, le fichier boite de dialogue, comme avec AutoCAD natif, mais y a-t-il autre chose ?

La confusion vient du fait qu'une fois, tu écris "mais c'est le développeur seul qui en a besoin."
et ailleurs, tu écris : "arx sur toutes les machines"

Sans compter que le lien cité dit aussi qu'il faut "que le Runtime soit installé sur les postes cible"

Merci de clarifier en développant un tantinet plus.

*** Ce sont bien deux logiciels différents ?

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Premier message, j'ai oublié le "e" à "chacune" mais j'ai été clair sur l'arx. Il le faut sur chaque machine.

Dans mon deuxième message, je parle bien de l'éditeur, utilisé par le développeur.

Ce sont des utilitaires différents. L'un est un arx, l'autre un exe indépendant.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

@Tramber,

Donc, je vais récapituler pour te laisser répondre par OUI ou NON.

Pour que ce que je fais fonctionne sur une machine tierce (inconnue de moi, genre distribution sur internet)
il n'est pas possible, avec seulement le fichier LSP et le fichier "boite de dialogue" à un quidam équipé en AutoCAD (sans aucun arx exotique).

De cette façon, un simple OUI ou NON répondra à ma question.

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Je profite de la judicieuse question de@didierpour en ajouter une :
Que ce passe-t-il si on fait un .vlx ? Peut-on y ajouter les ODC via un plug-in quelconque d'OpenDCL ou ObjectDCL ?

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Tiens, tu poses une colle, mais il me semble que l'on peut compiler les fichiers dans le vlx ! Il s'agit alors de remplacer l'extension .odc ou .odcl par .lsp ! Et ca marche. Je viens de vérifier dans l'aide.

[edit : à faire depuis l'éditeur, plutôt que de remplacer manuellement l'extension, mais possible !]

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

@DenisHen

Très bonne question, merci.
Dans un premier temps, attendons la réponse
Pour l'instant, je ne sais pas si c'est intéressant de s'investir dans ces logiciels dans l'idée de partage général, je comprends que dans une entreprise, on puisse y penser si toutes les machines sont conformes (comme pour le VBA par exemple).

Mais sur le net ... pas certain

Ah zut, @Tramber a répondu à ta question, mais pas à la mienne !

Amicalement

 

Lien vers le commentaire
Partager sur d’autres sites

il y a 13 minutes, didier a dit :

@Tramber,

Donc, je vais récapituler pour te laisser répondre par OUI ou NON.

Pour que ce que je fais fonctionne sur une machine tierce (inconnue de moi, genre distribution sur internet)
il n'est pas possible, avec seulement le fichier LSP et le fichier "boite de dialogue" à un quidam équipé en AutoCAD (sans aucun arx exotique).

De cette façon, un simple OUI ou NON répondra à ma question.

Amicalement

C'est sur, sans l'ARX, ca ne marche pas. Donc : NON.

Cependant, avec Objectdcl, il y a un kit de distribution que l'on peut acheter, qui installe l'ARX de manière transparente. Mais pas en Opendcl.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Mais OpenDCL n'était pas entièrement gratuit fut un temps ?

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à tous(tes)

Désolé de cette intrusion, j'ai découver ce post par hasard 🙂

 

J'ai actuellement 37 ans d'expérience avec autocad et j'ai développé plusieurs outils et programmes complet permettant de maximiser l'efficacité et productivité des Autocadiens(nes) .

 

Les fichiers DCL sont tres limités et très ardu pour la création de boites de dialogues...perso..je trouves les DCL "OK" pour dépannage ou petits projets simple..mais si on veut élevé le statut d'un outil en lui permettant d'avoir des animations et interactions que le simple DCL ne permet pas..il faudra opter pour une facon de faire un peu différente.

 

Que ce soit pour avoir l'option d'utiliser une boite de dialogue modeless ou meme qui s'accroche au "frame" d'autocad ou encore ajouter un onglet à la boite de dialogue "config" d'autocad, créer des sous-menu, des onglets, images et textes en couleur, ajout de grilles ou meme d'utiliser excel dans une boite de dialogue... bref..

le DCL ne permettra jamais d'atteindre ce statut.

Le DCL:

simple fichier texte qui peut etre créé à meme la programmation LISP. Mais tres tres limité et long a créer. Résultat "OK" mais sans plus.

 

Le VBA:

Le module complémentaire VBA doit etre installé. Il faut connaitre la programmation VBA et la modifier pour chaques version Autocad ou presque. Donc un soutien plus rigoureux. Cependant lorsqu'on créer un installateur pour un outil développé,.. on peut inclure l'installation du module VBA..ce qui devient encore plus complexe lors d'une installation car il faut vérifier les versions, la plateforme 64 ou 32 bits, même si les 32 bits sont rares.. etc...  il ne faut pas oublier non plus que certains utilisateurs ont plusieurs versions Autocad  d'installé sur leur PC.   Il faut éviter les conflits aussi avec les thirdparty qui utilisent le VBA à leur sauces.

 

ObjectDCL:

L'extension ObjectDCL ARX doit etre installé....mais ceci peut etre fait lors de la création d'un installation de votre programme.

Ensuite, ObjectDCL s'occupe lui meme de charger le bon ARX selon les versions Autocad utilisées afin d'éviter les conflits

Le boites de dialogues sont extremement facile à créer, "drag&drop" et le tout fonctionne avec le language natif d'Autocad,..  le lisp.

http://www.Objectdcl.com

 

Voir des exemples d'applications:

https://apps.autodesk.com/ACD/en/List/Search?isAppSearch=True&searchboxstore=ACD&facet=&collection=&sort=&query=Ductisoft

Deplus, ObjectDCL contient plus de 439 fonctions utiles prêts à etre utilisées.

http://www.objectdcl.com/help/freeextralispfunction.htm

 

La limite de vos créations ne réside pas dans votre imagination mais bien avec les outils utilisés.

 

Voilà..

S'il y a des questions..  je suis là

Merci de m'avoir lu 🙂

 

Amicalement

Andrea.

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @DuctiSoft

---------------------------------------------------
Préambule :
Je suis content comme tout de te voir ici, je suis fan de tes réalisations et j'admire ce que tu arrives à faire.
Je te suis sur "TheSwamp" depuis bien longtemps, toujours avec un grand intérêt, on avait communiqué à une époque et je me souviens de ta disponibilité généreuse.
---------------------------------------------------


Je n'ai aucun doute sur la puissance de ObjectDCL par rapport à DCL qui n'a pas évolué depuis une vingtaine d'années, alors que tout le monde autour évoluait.

Je comprends que pour fournir à un tiers dont on ne connaît pas la configuration de la machine, il faut passer par un "installateur" qui copiera le bon ARX au bon endroit.
Il ne suffit pas d'envoyer les LSP et le fichier ODCL car je crois que c'est l'extension des boîtes de dialogues de ce soft.

Encore une fois : Bienvenue à toi dans la communauté.
Je ne sais pas si tu es inscrit sur le forum Autodesk français, mais tu serais à ta place parce que c'est assez actif aussi.

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Merci Didier,..

Je suis beaucoup moins présent sur les forums désolé,...je crois que la majorité des programmeurs LISP n'ont pas aimé du fait que je me suis procuré l'entiereté des travaux et les droits d'auteurs d'ObjectDCL qui à la base, avait été créé par Chad Wanless.  Rappelons que tout à été fait légalement en Janvier 2007 entre Chad et DuctiSoft dans le plus grand des respect. Ayant créé plusieurs outils avec ObjectDCL, je ne pouvais me permettre que ce programme meurt. AutoDESK nous avait même approché à l'époque afin d'inclure ObjectDCL directement dans l'installateur AutoCAD. mais les choses se sont gâtés,.. enfin bref les anciens connaissent l'histoire.

j'adore utiliser ObjectDCL,..il est tres intuitif et tres rapide pour le développement de boites de dialogues,..j'ai encore beaucoup de projets non-finalisé car comme la plupart des programmeurs,...lorsqu'on commence un outils,.. on veut toujours l'améliorer  🙂   Ceux qui me connaissent, avent que je pousse souvent la machine afin de réaliser des outils un peu loufoque,.. comme par exemple DLMO, BEXP, DYNOFFSET etc,...pas tres utiles selon moi mais agréable a voir 🙂

et d'autres parfois tres utiles,.. 

voir SDUCT,

http://www.ductisoft.com/sduct.html

InfoDWG:

 http://www.ductisoft.com/idwgDEMO.gif

CROX:

http://ductisoft.com/downloads/crox_help/CROX_help.html

 

etc,..

Je crois qu'il y a beaucoup a développer encore car AutoDESK semble s'attarder sur des modifications selon moi un peu insignifiantes,...comme par exemple ajouter d'autres variables afin de permettre le changement de couleur du curseur...  enfin bref,.. j'en aurait long a dire,... on dirait que AutoDESK ne savent plus quoi inventer afin d'améliorer AutoCAD dans le but d'aider les utilisateurs a maximiser leur rendements..

cependant,....étrangement AutoDesk appliquent certaines idées vue sur le web,... comme par exemple :
DHATCH
http://www.ductisoft.com/images/freelisp/dhatch4.5.gif

mais le refont à leur sauce..

Il reste encore beaucoup à améliorer....
DiLEADER par exemple,...est tres populaire,..

enfin bref,...beaucoup à dire sur le développement.. 🙂

 

Merci encore Didier pour tes mots gentils,..  c'est tres apprécié

en espérant avoir aidé. 🙂

 

Andrea.

 

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é