我通常是一名JavaScript开发人员,但是对于我的公司来说,我才刚开始学习c#,以便使用CimatronE 13 API来为此3D建模软件开发自定义命令行PDM工具。
随着我逐渐了解编程语言,在这种令人沮丧的情况下,我想使用API终结点方法,但我无法使其正常工作。
Cimatron文档中的内容如下:
IPdm :: GetRelatedDocuments
语法:RelatedDocuments = GetRelatedDocuments(DocumentPath);
此方法使您可以从复合文件类型(例如,装配体或工程图)中获取相关文件。
输入 :(字符串)DocumentPath, 文件路径。例如\ Documents \ Location \ Folder \ Document。该文件必须是装配体或工程图。
返回 :(变体)相关文档, 变量类型数组,每个元素包含与选定的一个相关的文件的二维字符串类型数组。
这对我来说似乎很简单,因此我尝试从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文档:
属性:
获取 查询(String,DocumentEnumType,DocumentEnumUnit) 变体
方法:
很多,包括
Variant GetRelatedDocuments ( String )
答案 0 :(得分:0)
正如我现在所看到的... interop.CimatronE.IPdm
是一个接口,为了使用它的方法,我们首先需要访问Cimatron应用程序。使用应用程序对象,我们可以使用它的方法来获取所需的接口,例如IPdm
并使用它们的方法。
下面的代码从编译器给出任何错误,但在执行时却没有。这似乎与CimatronE的版本13有关,因为应用程序对象使用版本12可以正常工作。在这些版本之间进行了很多更改,我认为这是API无法正常运行的原因,并且已经过时。
interop.CimAppAccess.AppAccess AppAcc = new interop.CimAppAccess.AppAccess();
interop.CimatronE.IApplication CimApp = /*(interop.CimatronE.IApplication)*/AppAcc.GetApplication();
interop.CimatronE.IPdm pdm = CimApp.GetPdm();
var RelatedDocuments = pdm.GetRelatedDocuments("path");
Console.WriteLine(RelatedDocuments);
如果我错了,请纠正我! (因为我才刚开始学习C#)
答案 1 :(得分:0)
我在使用 Cimatron 14 时遇到了同样的问题。 我需要在 Visual Studio 中进行一些更改,以便在 Cimatron 中正常运行。
我使用此代码 (VB.Net) 创建了 Cimatron 应用程序:
Dim gAppAccess As New CIMAPPACCESSLib.AppAccess 'Define an AppAccess object to get running active application
Dim gApp As CIMAPPACCESSLib.Application 'Define an Application object
gApp = gAppAccess.GetApplication 'Getting running active application
If gApp Is Nothing Then
gApp = New CIMAPPACCESSLib.Application 'Creating a new instance of a Cimatron application
End If
参考:Interop.CIMAPPACCESSLib.dll & interop.CimServicesAPI.dll
据我了解,Cimatron 15 可能还需要一些明显的更改。
Cimatrom Modules > Cimaton SDK 下的 Cimatron 程序中有一些帮助信息,可能会有一些帮助。