Bonjour à tous, J'ai énormément de mal, malgré mes recherches, à comprendre le fonctionnement d'un appel à une commande Autocad en utilisant les TypedValues. N'ayant pas accès à Editor.Command(), j'utilise:
[DllImport("accore.dll", EntryPoint = "acedCmd", CallingConvention = CallingConvention.Cdecl)]
private static extern int acedCmd(IntPtr vlist);
Et du coup, je peux faire des choses simples comme:
ResultBuffer rb = new ResultBuffer();
rb.Add(new TypedValue(5005, "ZOOM"));
rb.Add(new TypedValue(5005, "E"));
rb.Add(new TypedValue(5005, ""));
acedCmd(rb.UnmanagedObject);
J'ai également la liste des codes:
//RT CODES
#define RTNONE 5000 /* No result
#define REAL 5001 /*Real number
#define RTPOINT 5002 /* 2D point X and Y only
#define RTSHORT 5003 /* Short integer
#define RTANG 5004 /* Angle
#define RTSTR 5005 /* String
#define RTENAME 5006 /* Entity name
#define RTPICKS 5007 /* Pick set
#define RTORINT 5008 /* Orientation
#define RT3DPOINT 5009 /* 3D point - X, Y, and Z
#define RTLONG 5010 /* Long integer
#define RTVOID 5014 /* Blank symbol
#define RTLB 5016 /* list begin
#define RTLE 5017 /* list end
#define RTDOTE 5018 /* dotted pair
#define RTNIL 5019 /* nil
#define RTDXF0 5020 /* DXF code 0 for ads_buildlist only
#define RTT 5021 /* T atom
#define RESBUF 5023 /* resbuf
#define RTMODELESS 5027 /* interrupted by modeless dialog
Mais je ne comprends toujours pas comment cela marche. Concrètement, j'aimerais par exemple lancer une commande PLINE, où le premier point serait d'office indiqué via le code. Mais comment faire?