Community
Inventor - Deutsch
Das Forum für alle Fragen rund um Autodesk Inventor, iLogic, Factory Design, Automation und mehr. Der Ort zum Fragen stellen, Antworten erhalten und Wissen teilen.
abbrechen
Suchergebnisse werden angezeigt für 
Anzeigen  nur  | Stattdessen suchen nach 
Meintest du: 

Status erfassen API

5 ANTWORTEN 5
Antworten
Nachricht 1 von 6
amarxFHPE3
316 Aufrufe, 5 Antworten

Status erfassen API

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.

5 ANTWORTEN 5
Nachricht 2 von 6
etaCAD
als Antwort auf: amarxFHPE3

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

Nachricht 3 von 6
amarxFHPE3
als Antwort auf: 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ß

Nachricht 4 von 6
etaCAD
als Antwort auf: amarxFHPE3

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

Nachricht 5 von 6
amarxFHPE3
als Antwort auf: etaCAD

  1. Zurersteinmal wieder vielen Dank. Das überwachungsfenster kenne ich bereits und nutze ich auch, was mir jedoch einfach nicht klar wird ist der Schritt zu den namen der Entitys One/Two der Constraints (wie im bild zu sehen).Screenshot_20210607-140045__02.jpg

    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ß
Nachricht 6 von 6
etaCAD
als Antwort auf: amarxFHPE3

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.

In Foren veröffentlichen  

Autodesk Design & Make Report