Hello!
I have standalone application. With this app I'm startin an AutoCAD 2007.
const string progID = "AutoCAD.Application.17"; AcadApplication acApp = null; try { acApp = (AcadApplication)Marshal.GetActiveObject(progID); } catch { try { Type acType = Type.GetTypeFromProgID(progID); acApp = (AcadApplication)Activator.CreateInstance(acType, true); } catch { MessageBox.Show("Cannot create object of type \"" + progID + "\""); } } if (acApp != null) { // By the time this is reached AutoCAD is fully // functional and can be interacted with through code acApp.Visible = true; acApp.ActiveDocument.SendCommand(....); .... }
I've added references to the AutoCAD 2007 Type Library and ObjectDBX (2007).
But I want to have my application compatibile with AutoCAD 2011. With detection which AutoCAD is installed I don't have any problems.
But how can I add the references depending on AutoCAD version? I tried to add both, but this is impossible.
I was thinking about dynamically loading assemblies, but how can I then call AutoCAD and SendCommand?
Thanks for the help.
Type in the command lIne ACADVER
you will be get a current version of your
AutoCAD installed
With version detection I don't have problems as I said, but thanks.
That's nice tricky command 😉
The question is about assemblies references and differents versions.
Or maybe other question:
How can I send command to the autocad without declaring its version? So the code will be compatibile for both AC 2007 and 2011.