作者: littleboy 2025-03-04 16:19:07

I版本与非I版本区别

SOLIDWORKS API中的方法、属性和对象(接口)有两个版本可供选择:

  • I开头的版本(例如ISldWorks、IModelDoc2、IAnnotation、ISldWorks::IActiveDoc)
  • 不以I开头的版本(例如SldWorks、ModelDoc2、Annotation、SldWorks::ActiveDoc)

这两个版本对应的是同一个对象或方法。主要区别如下:

  • I版本的方法不会公开事件

下面是以SldWorks声明的变量的可用成员的快照。这些成员包含了事件。

下面是以ISldWorks声明的变量的可用成员的快照。这些成员不包含事件。

  • I版本的方法通常返回类型安全的接口版本,而不是对象或IDispatch。这意味着在编译时强制执行类型安全的语言(如C#)中不需要显式转换:
1
2
3
4
5
ISldWorks app;
...
IModelDoc2 model = app.IActiveDoc; //正确
IModelDoc2 model = app.ActiveDoc; //编译错误
IModelDoc2 model = app.ActiveDoc as IModelDoc2; //正确

参考:

SOLIDWORKS API方法及接口的I版本与非I版本的区别 | solidworks-GPThttps://www.solidworks.com/support/subscription/key-request/ )