cs_okido
Messages postés4Date d'inscriptionsamedi 26 juin 2004StatutMembreDernière intervention31 mai 2006
-
25 mai 2006 à 09:03
cs_davels
Messages postés1Date d'inscriptionlundi 10 octobre 2005StatutMembreDernière intervention20 mars 2008
-
20 mars 2008 à 21:31
Bonjour a tous,
Je me permets de vous demander de l'aide. J’ai trouvé ce petit programme sur le net
qui permet d'envoyer des commandes à autocad depuis delphi.
Tout fonctionne correctement de la version autocad 14 à 2006, c'est magnifique.
J’ai constaté qu'il ne fonctionne plus sous autocad 2007.
Voila ma question, y aurais-t-il quelqu’un qui puisse m'aider à résoudre ce problème et m'expliquer pourquoi il ne fonctionne plus sous autocad 2007.
Dans l'attende de vos nouvelles je vous souhaite une bonne journée.
Matt 261
Messages postés1173Date d'inscriptionmercredi 2 novembre 2005StatutMembreDernière intervention10 septembre 20113 25 mai 2006 à 09:21
Salut,
Si cela ne marche pas c'est que chez Autocad ils ont du changer leur code ce qui fait que quand tu veux dire à Autocad par exemple Fermer et bien il ne se ferme pas (à moins de prendre son handle et de lui envoyer cette commande), il faudra toi aussi t'adapter et changer ton code pour qu'Autocad "comprenne" ce que tu lui envoies comme commande.
@+
Matt
<hr size="2" width="100%" />La paresse est la mère du génie...
cs_okido
Messages postés4Date d'inscriptionsamedi 26 juin 2004StatutMembreDernière intervention31 mai 2006 25 mai 2006 à 10:41
Merci pour ta réponse MATT.
Mais changer le code, ca veut dire quoi ??? qu'es qu'un handle ???
Quelle direction faut-il prendre ???
DDE, OLE, ... Je cherche depuis 2 mois j'ai écris dans plusieurs forum donc celui d'Autodesk, j'ai même écris a l'auteur de ce code ou du moins l'auteur du site sur le quelle je l'ai trouvé "Tony Tanzillo" et il ma répondu qu'il ne le reconnaissait pas. Bref aucune réponse satisfaisante.
J'aime ce code car il ne fait appelle ni "ActiveX" ni fichier "*.TLB". il est totalement indépendant.
elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 20163 26 mai 2006 à 11:33
Juste une apparté sur AutoDesk : à chaque nouvelle revision ou version d'AutoCAD .. il s'amuse à changer des API de leur logiciel. On a déja eut plein de programme à réecrire en bureau d'etude à cause de çà !
Matt 261
Messages postés1173Date d'inscriptionmercredi 2 novembre 2005StatutMembreDernière intervention10 septembre 20113 26 mai 2006 à 19:14
@ Okido : en fait il faut que tu trouves ou que tu cherches les codes correspondants à ce que tu veux faire pour que Autocad puisse analyser et interpreter ta commande. Bon courage...
@+
Matt
<hr size="2" width="100%" />La paresse est la mère du génie...
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_okido
Messages postés4Date d'inscriptionsamedi 26 juin 2004StatutMembreDernière intervention31 mai 2006 27 mai 2006 à 12:20
En faite je cherche tous simplement a envoyer n'importe quel texte ou chiffre dans la barre de commande d'autocad depuis un bouton delphi.
Si vous avez l'occasion d'essayer le petit programme en question à « http://www.caddzone.com/delphi/sendcmd.zip » avec une version d'autocad antérieur a 2007 vous aller vite comprendre et voir les multiples possibilités que ce programme peut offrir.
cs_okido
Messages postés4Date d'inscriptionsamedi 26 juin 2004StatutMembreDernière intervention31 mai 2006 31 mai 2006 à 14:10
Bonjour,
J'ai essayé avec "Sendmessage ()", mais "WM_COPYDATA" n'accepte pas les
UNICODES.
Dans le "PRESSE-PAPIER", je mets le contenu de "Edit1.txt" mais je ne trouve
pas de fonction qui me permet de faire un "PASTE" d'un texte dans un
"HANDLE" de fenêtre.
Je joins les sources du programme et dans l'attente de vos nouvelles
Je vous souhaite une bonne journée.
___________________________________________________________________
unit Unit1;
cs_davels
Messages postés1Date d'inscriptionlundi 10 octobre 2005StatutMembreDernière intervention20 mars 2008 20 mars 2008 à 21:31
En faite, ca fonctionne pas car tu envois du texte a la fenêtre principal de d'AutoCAD.
Le HANDLE de la bar de commande est différent! Soit tu recherches cet HANDLE, soit tu utilises une tout autre méthode qui est beaucoup plus simple!
Lorsque tu ta variable ACAD, tu fais qlq chose du genre ACAD.ActiveDocument.SendCommand('Ta commande').
Voici l'exemple donné par la doc AutoCAD ActiveX programming (fournie d'origine et très bien faite!) en VB :
Sub Example_SendCommand()
' This example sends a command for evaluation to the AutoCAD command line
' of a particular drawing
' Create a Circle in the active drawing and
' zoom to display the entire circle
ThisDrawing.SendCommand "_Circle" & vbCr & "2,2,0" & vbCr & "4" & vbCr
ThisDrawing.SendCommand "_zoom" & vbCr & "a" & vbCr
' Refresh view
ThisDrawing.Regen acAllViewports
MsgBox "A circle command has been sent to the command line of the current drawing."
End Sub
ThisDrawing étant l'équivalent de ACAD.ActiveDocument
J'espère que cela t'a aidé.
La différence avec les 2 fonctions : celle que utilises copie un message dans AutoCAD (si tu trouves le HANDLE) tandis qu'avec l'autre, tu demande a AutoCAD d'effecter une commande.
Le SendCommand peut ammener dans certains cas au freeze de ton application jusqu'a ce qu'AutoCAD ne rende la main de mémoire