如何使用 api 在发明者中获取对象的属性

Posted

技术标签:

【中文标题】如何使用 api 在发明者中获取对象的属性【英文标题】:how to get the properties of an object in inventoer using api 【发布时间】:2013-06-25 20:31:59 【问题描述】:

我是 Inventor api 编程的新手。我想获取活动文档的属性。我正在使用 vb.net 进行编码。我尝试了一些代码但没有帮助。 这里我使用了一些代码来打开一个发明者文档,它工作正常

Public Sub OpenDoc()
    Dim oDoc As Document
    oDoc = _InvApplication.Documents.Open _
                             ("C:\Temp\Part1.ipt")
End Sub

有人知道如何获取 part1.ipt 文档的属性吗?

【问题讨论】:

【参考方案1】:

首先尝试了解对象模型

Application
   |
   -------- Documents
               |
               ---------- Document
                              |
                              ------------- PropertySet
                                                |
                                                ------------ Property

现在,您可以访问所需的信息...

Public Sub ShowDocuments()
     ' Get the Documents collection object.
     Dim invDocs As Documents
     Set invDocs = ThisApplication.Documents
     ' Iterate through the contents of the Documents collection.
     Dim i As Integer
     For i = 1 To invDocs.Count
         ' Get a specific item from the Documents collection.
         Dim invDocument As Document
         Set invDocument = invDocs.Item(i)
         ' Display the full filename of the document in the Immediate window.
         Debug.Print invDocument.FullFileName
     Next
End Sub

【讨论】:

谢谢先生..这里打印文档的文件名。我需要打印对象使用的属性平均长度、宽度等...... 查看教程:download.autodesk.com/us/community/mfg/Part_1.pdfdownload.autodesk.com/us/community/mfg/Part_2.pdfdownload.autodesk.com/us/community/mfg/Part_3.pdfdownload.autodesk.com/us/community/mfg/Part_4.pdf【参考方案2】:

由于您已经获得了文档,因此您可以使用两个 For-Each-Loops 来遍历 PropertySets 和其中的 Properties,例如:

    Dim oPropSets As PropertySets
    oPropSets = oDoc.PropertySets
    Dim oPropSet As PropertySet
    For Each oPropSet In oPropSets
        Dim oPartProp As Inventor.Property
        For Each oPartProp In oPropSet
            Dim oPropertyValue As Object
            If oPartProp.Value Is Nothing Then
                'NullValue-Properties are ignored
            ElseIf oPartProp Is Nothing Then
                   'Null-Properties are ignored too
            ElseIf System.String.Equals(oPartProp.Value.ToString.Trim, "") Then
            'Properties with empty values are also ignored
            Else
                'And here you have your Property:
                Debug.Print(oPartProp.Name & "=" & oPartProp.Value.ToS5tring & vbLf)
            End If
        Next
    Next

【讨论】:

以上是关于如何使用 api 在发明者中获取对象的属性的主要内容,如果未能解决你的问题,请参考以下文章

如何在反应中获取 api 对象属性

如何在 Flutter 中使用 OpenWeather API 的时区属性获取任何城市/国家的当前时间?

模块属性名称-值对 C++ API 框架 - 重新发明?

使用 fetch、cors 时如何从 json API 获取属性?

调用api时如何获取数据对象在nodejs中使用https.request

如果我有对象 ID,如何使用 REST API 在 AzureAD 中获取对象的显示名称?