Aller au contenu

Object DCL et Lisp


Messages recommandés

Posté(e)

Bonjour à tous,

 

J'ai un lisp et une boite de dialogue que j'ai fait avec OpenDCL car les boites de dialogue sont assez limites en pur lisp. Je n'arrive pas à lier les deux, le lisp que j'ai fait et les listes ou combo box de ma boite de dialogue.

 

Quelqu'un aurait il une idée ? pour avancer surtout que le format OpenDcl est illisible, il est compilé.

Merci par avance de votre aide.

 

John.

Posté(e)

Salut,

 

Avec OpenDCL, on ne fait pas un LISP d'un côté et une boite de dialogue d'un autre pour essayer, ensuite, de faire fonctionner les deux ensemble.

 

C'est au moment où on crée la boite de dialogue qu'on définit les interactions entre les contrôles et le LISP.

 

Je te conseille de faire ce tutoriel.

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

  • 9 mois après...
Posté(e)

Bonjour à tous,

 

J'ai installé ObjectDCL (via http://www.objectdcl.com).

J'ai fait une fenêtre avec ObjectDCL que j'ai enregistré sous "MetreCAD_AvantProjet.odc" dans un répertoire connu d'AutoCAD...

 

J'ai, dans le même répertoire, un fichier nommé "MetreCAD_AvantProjet.lsp"

Mon ODC est associé avec mon LSP

J'ai posé dans mon LSP :

(Odcl_LoadProject "MetreCAD_AvantProjet_FrmDossier.odc")

ou encore

(Setq rValue (Odcl_Form_Show "MetreCAD_AvantProjet_FrmDossier.odc"))

 

Enfin, toutes les orthographes que j'ai trouvé sur CadXP ou ailleurs...

 

Rien... AutoCAD 2010 me répond toujours...

 

..........; erreur: no function definition: ODCL_LOADPROJECT

 

Je pense qu'il me faut ObjectDCL.arx... ou un fichier dans ce genre pour intégrer avant toute commande :

(Commande "OPENDCL") ou (Commande "_OPENDCL")

Une âme charitable pourrait-elle me sauver ?

 

Merci d'avance,

 

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)

Posté(e)

Salut :

 

(Odcl_LoadProject "CHEMIN\\MetreCAD_AvantProjet_FrmDossier" T)

 

Je te conseille le chemin + .odc non obligatoire (car on distribue aussi des ods, sécurisés) + le T pour assurer un chargement à chaque enregistrement dans l'éditeur ODCL (avec la remarque que cela ne vaut plus pour les ods). Donc le T pendant la période de debug.

 

Effectivement si cette expression ne retourne pas T, les fonctions ODCL ne se mettent pas en bleu dans Vlisp.

Mais il me semble aussi que tu n'as pas installé l'ARX ! D'où le problème.

 

Enfin attention à ce sujet, nous parlons d'Open et d'Object qui sont 2 ensembles différents.

Le titre du forum est faux et il y aurait dû en avoir 2. Patrick n'a pas voulu le faire et je le regrette.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Bonjour à tous,

 

Effectivement Tramber, je ne trouve aucun ObjectDCL.arx sur mon disque ni sur le net, même après l'installation de "ObjectDCL Editor" et de "ObjectDCL AutoCAD® Runtime Extension (ARX)".

 

Mais dans le dernier prog, j'ai trouvé un "ObjectDCL.18.arx" qui ne fonctionne pas avec mon AutoCAD 2010 (peut-être faut-il le 17)...

 

Merci pour cette réponse... je vais continuer, et je trouverai... Je vais tenter maintenant le méthode décrite qui est : faire le DCL en même temps que le LSP...

 

Je vais chercher une aide en Français...

 

PS : j'ajoute le "CHEMIN", même s'il est déjà défini dans le "chemin de recherche de fichiers de support" dans AutoCAD...

 

En tous cas, grand merci,

 

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)

Posté(e)

Au fait :

(Commande "OPENDCL") ou (Commande "_OPENDCL")

n'est pas bon (et ne correspond pas puisque nous parlons d'ObjectDCL).

Bref.

 

ObjectDCL.18.arx fonctionne avec 2010 (2009 et 2011 si ma mémoire est bonne).

Si tu as installé "ObjectDCL AutoCAD® Runtime Extension (ARX)"., il est sur ton disque.

Mieux, il y a un onglet supplémentaire dans les options d'AutoCAD qui s'affiche.

Sinon, débrouilles-toi pour le charger (glisser, APPLOAD, etc...).

 

Pour l'aide en Français, il y a moi

Mais c'est payant.

Blagues à part, clique-droit sur tes controles et utilise l'"Intelligent Help" avec ton dictionnaire à proximité.

 

Pour le chemin, il n'est pas obligatoire en effet. L'extension, je ne la mets pas (j'ai peut-être tord). Mais il me semble que c'est à voir avec les ods. Tu en est loin ! Conclusion : peu importe.

 

Conseil, commence par une toute petite boite à 1 control. Je pourrais t'aider à faire le LSP.

 

Ex :

(defun c:test()
 (defun c:DclForm1_OnInitialize ()
   (Odcl_Control_SetText maboite_DclForm1_TextBox1 (itoa 30))
   )
 
 (defun c:DclForm1_TextBox1_OnKillFocus ()
   (Odcl_MessageBox (strcat"la valeur en sortie est "(Odcl_Control_SetText maboite_DclForm1_TextBox1)) "donc")
   )
 (Odcl_Form_Show maboite_DclForm1)
 )

 

J'ai créé le fichier maboite, je l'ai chargé (avec le T) sous AutoCAD après l'avoir enregistré.

Il y a dedans :

Une modal-form avec OnInitialize coché

Une textbox avec OnKillFocus coché

 

Allez, bon courage

[bbcode desactivé]

 

[Edité le 20/10/2010 par Tramber]

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

(defun c:test()

(defun c:__DclForm1_OnInitialize ()

(Odcl_Control_SetText maboite_DclForm1_TextBox1 (itoa 30))

)

 

(defun c:__DclForm1_TextBox1_OnKillFocus ()

(Odcl_MessageBox (strcat"la valeur en sortie est "(Odcl_Control_SetText maboite_DclForm1_TextBox1)) "donc")

)

(Odcl_Form_Show maboite_DclForm1)

)

 

BBCODE mieux desactivé ?c:=c:__

 

[Edité le 20/10/2010 par Tramber]

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Bonjour à tous...

 

Merci beaucoup, Tramber, une fois de plus CadXP me sauve ! ! Mais j'ai un affreux doute, "ObjectDCL AutoCAD® Runtime Extension (ARX)" n'est pas payant ?

 

J'ai la version trial pour 15 jours... Mais après ?

 

Sinon, je m'y colle immédiatement...

 

Et merci encore ! ! !

 

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)

Posté(e)

Ah ben ouais,....

Je te conseille alors la version Open, si dépenser la somme n'est pas possible dans ton BE.

Le fonctionnement est identique, seuls les noms exacts des commandes varient et c'est aussi en anglais !

 

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Bonjour à tous ! !

 

Merci beaucoup Tramber...

 

J'ai bien l'onglet supplémentaire dans [Outils] d'AutoCAD, comme prévu...

 

Mais ObjectDCL m'écrit dans cet onglet:

"ObjectDCL ARX Activation Status: The trial is over."

Alors que je viens de l'installer...

 

Je suis donc allé faire un tour sur le site et j'ai vu qu'il coûtait 44€...

Donc, pour 44€, j'ai procédé à l'achat... Mais il ne veut pas par CB...

 

Je tente la création d'un compte PayPal ! ! !

 

Mais j'aimerai savoir s'il n'y a pas un distributeur européen voir français avant...

 

En tous cas... 1000 Merci...

 

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)

Posté(e)

Bonjour à tous,

 

Au sujet d'OpenDCL, il faut un "arx" quelquonque ?

 

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)

Posté(e)

Resalut...

 

Je pense que l'on peut clore cette discution au sujet de OpenDCL...

 

Je me suis légèrement trompé de forum...

 

Je reviendrais avec une licience ObjectDCL...

Pour l'instant, je pense avoir trouvé une réponse ici : http://www.cadxp.com/modules.php?op=modload&name=XForum=viewthread&tid=19292#pid79279 merci à (gil)

 

Denis...

 

Encore un grand merci à Tramber...

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)

Posté(e)

Je n'arrive pas à suivre ton lien.

Ca n'est pas grave.

 

Je suis client ObectDCL depuis des années. C'est à dire avant que son créateur ne décède et donc avant que le projet ne soit repris à la fois par le secteur OpenSource et à la fois par le secteur privé (Ductisoft).

 

Je précise quand même que Ductisoft est une société bilingue installée au Canada. Le projet Opensource ne pourra pas te répondre en Français ! ObectDCL oui !

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Bonjour,..

 

Je suis tombé sur cette discussion via un lien...

ObjectDCL doit être installé sur un poste avec des droits administrateur.

 

Mais vous auriez moin de misère à contacter directement DuctiSOFT à support@ductisoft.com où moi et mon collègue seront heureux de pouvoir vous aider.

 

Merci.

 

Andrea Andreetti

 

 

[Edité le 20/10/2010 par CADy]

Posté(e)

Salutations...

 

Pour Tramber : mon lien indiquait le forum "LISP et Visual LISP > Débuter en LISP > Editeur DCL", réponse n°3 de (gile)

 

Pour CADy : merci beaucoup, je n'hésiterait pas... Pour mon Pb de license, j'ai fait la désinstallation 2h après l'installe... Peut-être que...

 

Pour les deux... Effectivement, pour le développement, je préfère le français, surtout qu'en lisp, je débute depuis quelques années ;).

 

Par contre, je ne comprend pas pourquoi en lisp, on charge toujours un fichier .dcl alors qu'ils sont tous en .odcl...

 

Bref, merci à tous,

 

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)

Posté(e)

DenisH,

 

Nous avons tous débuté à qqpart....moi y compris.

d'ailleurs, je continue à apprendre autant des experts que des débutants.

 

Je ne comprend pas pourquoi tu dis toujours charger un DCL ?

 

un fichier LISP = fichier LSP

un fichier DCL = fichier DCL (dialogue natif autoCAD)

un fichier ODCL = fichier ODCL (dialogue natif d'OpenDCL)

un fichier ODC = fichier ODC (dialogue natif d'ObjectDCL)

 

Or, une programmation LISP n'est pas obligé de charger une boite de dialogue si non-requise.

 

Andrea.

Posté(e)

CADy,

 

Je débute en "dcl" depuis une journée, en fait, depuis hier...

 

Je comprend mieux maintenant, après le forum dont je parlais et tes explications...

 

Et dans ce forum, les trois exemples de (gile) sont excellents...

Je vais faire quelques petites recherches pour en savoir plus sur la structure des dcl (Dialog Control Language)...

 

Merci encore pour tout...

 

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)

Posté(e)
CADy,

 

Je débute en "dcl" depuis une journée, en fait, depuis hier...

 

Je comprend mieux maintenant, après le forum dont je parlais et tes explications...

 

Et dans ce forum, les trois exemples de (gile) sont excellents...

Je vais faire quelques petites recherches pour en savoir plus sur la structure des dcl (Dialog Control Language)...

 

Merci encore pour tout...

 

Denis...

 

quand tu veux DenisH...

surtout n'hésites pas. !

 

Bonne journée.

 

Posté(e)

Par contre, je ne comprend pas pourquoi en lisp, on charge toujours un fichier .dcl alors qu'ils sont tous en .odcl...

 

Denis, j'ai vraiment l'impression que tu confonds toujours DCL et ODCL (object ou open). ou alors je ne comprends rien à ta phrase.

 

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)
Par contre, je ne comprend pas pourquoi en lisp, on charge toujours un fichier .dcl alors qu'ils sont tous en .odcl...

 

Denis, j'ai vraiment l'impression que tu confonds toujours DCL et ODCL (object ou open). ou alors je ne comprends rien à ta phrase.

 

là c'Est moi qui est perdu...

Bertrand....dis-moi si je me trompe...

mais DCL et ODCL sont (AutoCAD ou Open) et non (object ou open) ??

 

Enfin....pourquoi faire simple..?

 

;-P

Posté(e)

Salut,

 

Merci à tous... J'ai enfin saisie quelque chose ! ! !

Mais en DCL...( donc, pas "chargé" mais juste "appelé" )

 

Mais il me reste un petit problème, (gile) a posté çà en 2005 :

pop_up:dialog{
 label="Pop_up exemple";
 :boxed_column{
   label="Choisissez un nombre";
   :popup_list{
     label="Nombre :";
     key="nbr";
     edit_width=10;
   }
 }
 ok_cancel;
} 

Le LISP qui le controle :

(defun c:pop_up (/ liste n nbre)
 (setq liste (list "10" "20" "30" "40"))
 (setq dcl_id (load_dialog "pop_up.dcl"))
 (if (not (new_dialog "pop_up" dcl_id))
   (exit)
 )
 (start_list "nbr")
 (mapcar 'add_list liste)
 (end_list)
 (action_tile
   "accept"
   "(setq nbre (atof (nth (atoi (get_tile \"nbr\")) liste)))
   (done_dialog))"
 )
 (start_dialog)
 (unload_dialog dcl_id)
 (princ nbre)
 (princ)
) 

 

Mais j'ai remplacé les nombres "10" "20" "30" ".... par des chaines "Denis" "Jean" "Albert"...

Et maintenant, le retour de la valeur cliqué dans le dcl retourne un "string" et non un "integer"

Je dois donc changer [surligneur] "atoi" [/surligneur] dans [surligneur] "(setq nbre (atof (nth (atoi (get_tile \"nbr\")) liste))) [/surligneur] par un [surligneur] "atos" [/surligneur]?

 

Il y a des années que je n'ai pas touché au LiSP... Et là, je rame...

 

Merci encore pour toute cette aide...

 

J'ai bien dégrossis mon projet... Je vois de bonnes perspectives avec le DCL (inclu dans AutoCAD) mais si je n'y arrive pas, ObjectDCL devrait bien m'aider...

Mais je vais voir avec mon BE pour une licence, sinon, je me l'achèterais personnellement...

 

Encore merci...

 

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)

Posté(e)

CADy : je dis "DCL et ODCL (object ou open)" ce qui veut dire "DCL et ODCL (soit OpenDCL ou ObjectDCL)". Tu sais bien que je ne confonds pas.

 

DenisH, ici c'est un forum ODCL (malheureusement, je l'ai dit plus haut, Patrick n'a pas créé 2 sous-forum différents). Il me semble que ton dernier message qui parle de DCL n'est pas dans le bon forum. J'ajoute pour continuer la conversation sur tes dernières phrases, qu'ODCL est bien plus puissant et fourni que DCL.

Si tu as des difficultés avec le DCL, il faut publier un sujet dans le forum ad-hoc afin d'attirer l'attention de ceux qui savent et qui ne viennent pas forcement dans ce forum-ci.

 

Ouffff

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Salut,

 

Autant pour moi Tramber, j'avais oublié...

 

Et merci encore...

 

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)

Posté(e)

Salut,

 

atos n'existe pas en LISP.

 

 

(setq nbre (atof (nth (atoi (get_tile \"nbr\")) liste)))

 

En DCL, pour tous les contrôles, la valeur renvoyé par la fonction LISP get_tile est une chaîne de caractère. De même que les valeurs qui alimentent les listes doivent être des chaines.

 

Pour les contrôles de type liste (popup_list ou list_box) la chaîne retournée par get_tile contient l'index de l'élément sélectionné dans la liste d'où le :

(nth (atoi (get_tile \"nbr\")) liste)

qui retourne le énième élément de liste après avoir converti la chaîne retournée par get_tile en entier.

 

Dans l'exemple, pour convertir l'élément retourné par l'expression ci-dessus en nombre réel, j'utilise la fonction atof, c'est l'appel à cette fonction qu'il faut supprimer pour avoir la valeur sous forme de chaîne.

 

Encore une fois, avant de s'attaquer aux boites dialogue (que ce soit avec le DCL AutoCAD ou avec les éditeurs ObjectDCL et OpenDCL) il faut absolument maitriser les fondamentaux du LISP.

Une boite de dialogue sans programme derrière, c'est pas plus performant qu'une image.

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é