Sehr geehrte Forums Mitglieder,
Ich bin dabei eine Baugruppenaufbau über die API zu automatisieren. Dazu brauche ich eigentlich die Funktion "Statuserfassen" die es in der iLogic Umgebung für Abhängigkeiten/Constraints gibt, in der API. Leider konnte ich diese funktiin in keinster weise finden weder über den Command manager noch anderweitig. Ich weiß das es möglich ist, die Infos wie Komponentennamen in der Abhängigkeit und den Typ der Abhängigkeit über den Pfad ThisApplication.ActiveDocument.ComponentDefinituons.Constraints zu finden allerdings eben nicht die Beteiligten Flächen zwischen denen die Abhängigkeit besteht. Dies wird wiederum über die Funktion "Status Erfassen" ermittelt. Vielleicht hat ja einerfahrendes Mitglied einen guten Tipp. Schonmal vielen Dank für die Hilfe.
Sehr geehrte Forums Mitglieder,
Ich bin dabei eine Baugruppenaufbau über die API zu automatisieren. Dazu brauche ich eigentlich die Funktion "Statuserfassen" die es in der iLogic Umgebung für Abhängigkeiten/Constraints gibt, in der API. Leider konnte ich diese funktiin in keinster weise finden weder über den Command manager noch anderweitig. Ich weiß das es möglich ist, die Infos wie Komponentennamen in der Abhängigkeit und den Typ der Abhängigkeit über den Pfad ThisApplication.ActiveDocument.ComponentDefinituons.Constraints zu finden allerdings eben nicht die Beteiligten Flächen zwischen denen die Abhängigkeit besteht. Dies wird wiederum über die Funktion "Status Erfassen" ermittelt. Vielleicht hat ja einerfahrendes Mitglied einen guten Tipp. Schonmal vielen Dank für die Hilfe.
Hallo @amarxFHPE3 ,
den Status gibt es in der API nicht, aber schau mal in der Hilfe:
https://help.autodesk.com/view/INVNTOR/2022/ENU/?guid=GUID-BF70CF3D-0631-44FE-B31B-21E380F067FE
Da gibt es die Eigenschaft EnitiyOne und EntityTwo, die dir die beteiligten Flächen zurückgeben.
Andreas
etaCAD
Hallo @amarxFHPE3 ,
den Status gibt es in der API nicht, aber schau mal in der Hilfe:
https://help.autodesk.com/view/INVNTOR/2022/ENU/?guid=GUID-BF70CF3D-0631-44FE-B31B-21E380F067FE
Da gibt es die Eigenschaft EnitiyOne und EntityTwo, die dir die beteiligten Flächen zurückgeben.
Andreas
etaCAD
Hallo,
Schonmal vielen dank für die antwort.Ich kenne prinzipiell EntityOne und EntityTwo.Um zu den beteiligten Entity einer Abhängigkeit zu kommen war mein weg in VBA Editor
ThisApplication→ActiveDocument→ComponentDefinition→Constraints→Item n→EnitiyOne/EntityTwo
Allerdingskann ich dort keinen anzeigbaren Namen finden den ich wieder für der Befehl Add.Constraint nutzen könnte.Gruß
Hallo,
Schonmal vielen dank für die antwort.Ich kenne prinzipiell EntityOne und EntityTwo.Um zu den beteiligten Entity einer Abhängigkeit zu kommen war mein weg in VBA Editor
ThisApplication→ActiveDocument→ComponentDefinition→Constraints→Item n→EnitiyOne/EntityTwo
Allerdingskann ich dort keinen anzeigbaren Namen finden den ich wieder für der Befehl Add.Constraint nutzen könnte.Gruß
EntityOne gibt ein Objekt zurück. Das ist erst mal neutral und du musst überprüfen, was es für ein Typ ist.
Das geht zum Beispiel so:
If TypeOf EntityOne Is FaceProxy Then
Dim fp as FaceProxy
Set fp = EntityOne
...
ElseIf TypeOf EntityOne Is EdgeProxy Then
Dim ep as EdgeProxy
Set ep = EntityOne
...
End If
Markiere im Browser eine Baugruppebeziehung und lass mal das folgende VBA laufen.
Wenn es bei 'Stop' stehen bleibt Rechtsklick auf 'selection' -> Überwachung hinzufügen.
Im Überwachungsfenster gibt es dann viel zu entdecken.
Public Sub SelectTest()
Dim selection As Object
Set selection = ThisApplication.ActiveDocument.SelectSet.Item(1)
Debug.Print "Selection: " & TypeName(selection)
Stop
End Sub
Andreas
etaCAD
EntityOne gibt ein Objekt zurück. Das ist erst mal neutral und du musst überprüfen, was es für ein Typ ist.
Das geht zum Beispiel so:
If TypeOf EntityOne Is FaceProxy Then
Dim fp as FaceProxy
Set fp = EntityOne
...
ElseIf TypeOf EntityOne Is EdgeProxy Then
Dim ep as EdgeProxy
Set ep = EntityOne
...
End If
Markiere im Browser eine Baugruppebeziehung und lass mal das folgende VBA laufen.
Wenn es bei 'Stop' stehen bleibt Rechtsklick auf 'selection' -> Überwachung hinzufügen.
Im Überwachungsfenster gibt es dann viel zu entdecken.
Public Sub SelectTest()
Dim selection As Object
Set selection = ThisApplication.ActiveDocument.SelectSet.Item(1)
Debug.Print "Selection: " & TypeName(selection)
Stop
End Sub
Andreas
etaCAD
Die Info ob es ein edge oder faceproxy ist bringt mir ja im ersten moment nichts wenn ich die abhängigkeit zwischen den entitys erstellen möchte. Gruß
Die Info ob es ein edge oder faceproxy ist bringt mir ja im ersten moment nichts wenn ich die abhängigkeit zwischen den entitys erstellen möchte. Gruß
Diese Namen gibt's in VBA leider nicht. Da muss man die entsprechende Fläche schon irgendwie anders finden und den Proxy selbst erstellen oder von einer bestehenden Beziehung übernehmen.
Ich glaube auch nicht, dass das was mit benannter Geometrie zu tun hat wie in dem Beispiel hier:
https://modthemachine.typepad.com/my_weblog/2019/03/automate-creation-of-named-geometry.html
iLogic ist etwas Spezielles und vieleDinge sind vereinfacht. Für alle anderen Programmiersprachen gibt es nur das, was auch in der API-Hilfe beschrieben ist.
Andreas
etaCAD
Diese Namen gibt's in VBA leider nicht. Da muss man die entsprechende Fläche schon irgendwie anders finden und den Proxy selbst erstellen oder von einer bestehenden Beziehung übernehmen.
Ich glaube auch nicht, dass das was mit benannter Geometrie zu tun hat wie in dem Beispiel hier:
https://modthemachine.typepad.com/my_weblog/2019/03/automate-creation-of-named-geometry.html
iLogic ist etwas Spezielles und vieleDinge sind vereinfacht. Für alle anderen Programmiersprachen gibt es nur das, was auch in der API-Hilfe beschrieben ist.
Andreas
etaCAD
Sie finden nicht, was Sie suchen? Fragen Sie die Community oder teilen Sie Ihr Wissen mit anderen.