Try exploring this code.
[code]
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
namespace acad_net
{
class Program
{
static void Main(string[] args)
{
//Instance of AutoCAD
Type AppType = Type.GetTypeFromProgID("Autocad.Application");
Object App = Activator.CreateInstance(AppType);
// Get AcadDocuments
Object doc =
AppType.InvokeMember("documents",
BindingFlags.DeclaredOnly |
BindingFlags.Public | BindingFlags.NonPublic |
BindingFlags.Instance | BindingFlags.GetProperty, null, App, null);
// Open a document and add it to the current database
doc =
doc.GetType().InvokeMember("open",
BindingFlags.DeclaredOnly |
BindingFlags.Public | BindingFlags.NonPublic |
BindingFlags.Instance | BindingFlags.InvokeMethod, null, doc, new Object[] { "C:\\drawing2.dwg", false });
// Make the document visible
AppType.InvokeMember("visible",
BindingFlags.DeclaredOnly |
BindingFlags.Public | BindingFlags.NonPublic |
BindingFlags.Instance | BindingFlags.SetProperty, null, App, new Object[] { 1 });
// Execute some command - zoom for this example
doc.GetType().InvokeMember("sendcommand",
BindingFlags.DeclaredOnly |
BindingFlags.Public | BindingFlags.NonPublic |
BindingFlags.Instance | BindingFlags.InvokeMethod, null, doc, new Object[] { "zoom e " });
//
Object ut = // utility object
doc.GetType().InvokeMember("utility",
BindingFlags.DeclaredOnly |
BindingFlags.Public | BindingFlags.NonPublic |
BindingFlags.Instance | BindingFlags.GetProperty, null, doc, null);
// Some prompt
ut.GetType().InvokeMember("prompt",
BindingFlags.DeclaredOnly |
BindingFlags.Public | BindingFlags.NonPublic |
BindingFlags.Instance | BindingFlags.InvokeMethod, null, ut, new Object[] { "Hello Hello Hello Hello : " });
// execute netload - if you fant to load something - load it yourself 🙂
doc = doc.GetType().InvokeMember("sendcommand",
BindingFlags.DeclaredOnly |
BindingFlags.Public | BindingFlags.NonPublic |
BindingFlags.Instance | BindingFlags.InvokeMethod, null, doc, new Object[] { "netload" });
}
}
}
[/code]