Aller au contenu

Capture ligne de commande Autocad LT


mour66

Messages recommandés

Bonjour,

 

Je travaille sous delphi et je voudrais développer un petit applicatif qui permet de capturer des points à l'écran sous autocad LT pour calculer une transformation d'helmert (calage de scans du cadastre et autres).

 

Par OLE depuis mon applicatif je sais donner l'ordre à Autocad de faire une commande style point ou renseignement ( commande windows SendMessage ).

 

Voici le détail

Function GetAcadWindow: HWnd;

var

AutoCAD : OleVariant;

Caption : String;

begin

AutoCAD := GetActiveOleObject('AutoCAD LT.Application');

Try

Caption := Acad.Caption;

except

on EOleSysError do

begin

Result := 0;

Exit;

end;

end;

Result := FindWindow(Nil, PChar(Caption));

end;

 

function TForm1.EnvoyerCommande(Cmd: String) : boolean;

var

cds: TCopyDataStruct;

wnd, sender : HWND;

pData : array [0..255] of char;

begin;

result := False;

wnd := GetAcadWindow;

sender := Application.Handle;

if wnd <> 0 then

begin

StrPCopy(pData, Cmd + #13);

pData[Length(Cmd)+1] := #0;

cds.dwData := 1;

cds.cbData := SizeOf(pData);

cds.lpData := @pData;

Result := SendMessage(wnd, WM_COPYDATA, Sender, LParam(@cds)) <> 0;

end;

end;

 

If Edit1.Text <> '' then

EnvoyerCommande(Edit1.Text); ->par exemple point ou _id

 

J'ai tenté par la commande window getmessage, de récupérer le XY qui apparait sur la ligne de commande mais cela ne marche pas.

 

Je voudrais automatiser tout cela sans avoir à mettre en surbrillance ces données puis faire des copier coller. C'est trop fastidieux.

 

Merci de vos réponses

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

ce n'est pas une réponse que je t'apporte,

je ne connais pas Delphi ni AutoCad LT

 

par contre je sais ce qu'est une transformation Helmert,

et de ce fait je me demande comment vas tu appliquer

la transformation point par point dans LT ?

 

à moins que tu te contentes d'une translation-rotation

sans facteur d'échelle.

 

amicalement

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Je pique les points sur le scan en local.

Ces points ont bien sur des coordonnées Lambert ( soit le scan est corroyé soit on a des coordonnées par GPS ou orthophoto de l'IGN)

Les résultats de l'Helmert donnent le point d'insertion le coefficient d'échelle et la rotation du fichier dwg contenant le scan toujours en local.

Ensuite je fait insertion bloc de ce fichier dwg et Autocad me demande justement les renseignements calculés par l'adaptation.

Mon scan est donc géoréférencé.

 

Cordialement

Lien vers le commentaire
Partager sur d’autres sites

  • 2 mois après...

Bonjour,

J'utilise également Autocad 2000 LT. Sur le site de Michel Martin (the MM site) on peut télécharger hlmdxf. Je ne pense pas qu'il accepte la capture des points directement à l'écran. La solution pas géniale est donc de faire copier/coller pour chaque point sur la ligne de commande "localiser un point" d'Autocad pour alimenter au format Nxy les fichiers d'appui de l'applicatif hlmdxf.

Pour passer du dxf au nxy il y a le convertisseur Dxf2xyz 2.0 que j'utilise et qui qui fait très bien ça (merci winfield!) mais dans ce cas, on allonge la chaine de traitement.

Pour la capture directe de points sur Autocad LT je reste donc des plus intéressé par le sujet! ;)

cordialement.

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é