【发布时间】:2019-02-01 19:40:12
【问题描述】:
我通常是一名 javascript 开发人员,但对于我的公司而言,我刚刚开始学习 c#,以便使用 CimatronE 13 API 为这个 3D 建模软件开发自定义命令行 PDM 工具。
随着我对编程语言的理解不断进步,出现了一种令人沮丧的情况,我想使用 API 端点方法,但无法使其正常工作。
Cimatron 文档说明如下:
IPdm::GetRelatedDocuments
语法:RelatedDocuments = GetRelatedDocuments (DocumentPath);
此方法允许您从复合类型的文件中获取相关文件,例如 Assembly 或 Drawing。
输入:(字符串)文档路径, 文件路径。例如 \Documents\Location\Folder\Document。该文件必须是装配体或工程图。
返回:(变体)RelatedDocuments, 变体类型数组,其中每个元素包含与所选文件相关的二维字符串类型数组。
这对我来说看起来很简单,所以我尝试从 static void Main() 方法中以多种方式调用它,但我不断收到错误:
var RelatedDocuments = interop.CimBaseAPI.IPdm.GetRelatedDocuments("path");
CS0120:非静态字段、方法或属性“IPdm.GetRelatedDocuments(string)”需要对象引用
interop.CimBaseAPI.IPdm pdm = new interop.CimBaseAPI.IPdm();
var RelatedDocuments = pdm.GetRelatedDocuments("path");
CS0144:无法创建抽象类或接口“IPdm”的实例
有什么想法吗?这可能很简单,但我仍然是 c# 的菜鸟:p
编辑:
关于接口interop.CimBaseAPI.IPdm的Cimatron文档:
属性:
获取 查询(字符串、DocumentEnumType、DocumentEnumUnit) 变体
方法:
很多,包括
Variant GetRelatedDocuments ( String )
【问题讨论】:
-
供应商没有提供如何使用其产品的示例吗?如果
IPdm类是抽象类或接口,那么您确实不能直接创建它的实例。但大概他们会有一个实现IPdm类/接口的类。 -
查看文档是否有实现
IPdm的类型 -
interop.CimBaseAPI.IPdm是类还是接口? -
也许你需要先调用
GetPdm( ),然后在返回的实例上调用GetRelatedDocuments(path)。 -
感谢您的回复!不幸的是,他们的文档真的很差,而且他们没有提供示例(它们确实很有帮助)。 @vc74:
interop.CimBaseAPI.IPdm是一个接口。 @linuxrocks:GetPdm()是什么意思。
标签: c# class methods interface static