第一次跳槽来到这家公司(山水比德)
工作的主要任务是对中望CAD软件进行插件的开发工作。用到的主要开发语言是C#语言。开发框架是.NETFramework4.7.2.
熟悉CAD的API接口
主要用到开发接口的两个动态库是ZwDatabaseMgd.dll和ZwManaged.dll。
.在ObjectARX中,“acrxEntryPoint”函数是ARX程序的载入点,程序的初始化和清除均可在该函数中进行,命令在入口函数中注册。而在NET中只需要将命令注册在一个带[CommandMethod()]属性的类中。如:
[assembly:CommandClass(typeof(Sample.CommandClass))]
namespace Sample{
class CommandClass{
[CommandMethod(“MyCommand”)]
public void MyCommand()
{
/命令执行代码
}
}
为加快加载速度,可在命名空间前加人[assembly:CommandClass(typeof(命名空间.类名))]属性描述,在加载程序时AutoCAD将直接注册相应命名空间下的类中的命令。否则,AutoCAD将搜索每个类里面注册的命令。
注册命令常用的两种形式:
1)CommandMethodAttribute(string globalName);
2)CommandMethodAttribute(string globalName,CommandFlags flags);
其中CommandFlags枚举值可以用运算符“|”并联。CommandFlags枚举值含义见表51-1。;
*2、加载程序后自动运行应用程序的方法:定义命令类实现IExtensionApplication接口。该接口包含Initialize与Terminate两个函数。其中Initialize负责加载程序时的初始化操作,Terminate则负责进行卸载程序时的清除操作。
[assembly:ExtensionApplication(typeof(Sample.CommandClass))]
namespace Sample
{
public class CommandClass:IExtensionApplication
{
public void Initialize()
{
/程序加载后立即执行的代码
}
public void Terminate() {
}
}
}
为加快加载速度,可在命名空间前加入[assembly:ExtensionApplication(typeof(命名空间.类名))属性描述,在加载程序时AutoCAD将直接注册相应命名空间下的类中的命令。否则AutoCAD将搜索dll中所有的类以找到实现IExtensionApplication接口的类。