Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Kante aus Auswahl wählen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Kante aus Auswahl wählen (233 mal gelesen)
Bluejay
Mitglied
Ingenieur


Sehen Sie sich das Profil von Bluejay an!   Senden Sie eine Private Message an Bluejay  Schreiben Sie einen Gästebucheintrag für Bluejay

Beiträge: 198
Registriert: 14.05.2007

Inventor 2011 for Simulation<P>Microsoft Windows XP Professional<P>Dell Precision T3400
Intel(R) Core(TM)2 Duo CPU
E6750 @2,66 GHz
3,00 GB RAM

erstellt am: 26. Okt. 2021 10:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Guten Morgen zusammen,
ich habe wieder mal eine kleine Frage: Ich möchte gerne im Zeichnungebrowser eine Unterbaugruppe auswählen und folgend per Makro an eine Kante dieser Auswahl einen Führungstext platzieren. Wie kann ich aus einem selectiertem Set eine Kante auswählen?

Habt ihr einen Ansatz für mich:

Dim oDrawingCurveSegment As DrawingCurveSegment
Set oDrawingCurveSegment = ThisApplication.CommandManager.Pick(SelectionFilterEnum.kDrawingCurveSegmentFilter, "Linie Auswählen")

Momentan mache ich das noch über einen Pick Filter - sollte aber über selection im Browser der Zeichnung erfolgen.

Danke schon mal für einen Tip
MFG

------------------
MFG

BlueJay

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 26. Okt. 2021 22:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bluejay 10 Unities + Antwort hilfreich

Hallo

1. Warum? Ich versteh den Sinn dahinter nicht.
2. Die Auswahl im Browser der Zeichnungsableitung liefert meines Wissen nur ein generisches Objekt zurück. Das ist im Grunde nur die Info das etwas selektiert ist, aber sonst nichts. 
Um herauszufinden was du da selektiert hast, mussst du rekursiv durch die BrowserNodes laufen und den mit Selected=True finden. Bei mehreren Selektionen, würde ich nur den ersten berücksichtigen oder abbrechen - Geschmackssache. Ein bißchen Zeit sparen kann man, wenn man nur ChildNodes bearbeitet, wenn der BrowserNode.Expanded=True liefert. Vermutlich selektiert niemand einen Browsereintrag und klappt dann den Baum zu, bevor der Befehl gestartet wird. Der Browser der Zeichnungsableitung liefert noch andere unvollständige Nodes oder seltsame Ergebnisse. Ich bin daher weitestgehend aud den Teilebrowser der referenzierten Baugruppe ausgewichen. Ich unterstelle mal, das es nur eine referenzierte Baugruppe gibt. Diverse Sonderfälle wie Ersatzdetailgenauigkeiten und ähnliches hab ich nicht getestet, nur normale Baugruppen und ein paar Reihenanordnungen.

Code:

Option Explicit

Private Sub GetDrawCurve()

Dim oApp As Inventor.Application
Set oApp = ThisApplication

Dim oDrawDoc As DrawingDocument
Set oDrawDoc = oApp.ActiveDocument

Dim oAssDoc As AssemblyDocument
Set oAssDoc = oDrawDoc.ReferencedDocuments(1)

Dim oAssPane As BrowserPane
For Each oAssPane In oAssDoc.BrowserPanes
    If oAssPane.InternalName = "AmBrowserArrangement" Then
        Exit For
    End If
Next

Dim oBPane As BrowserPane
For Each oBPane In oDrawDoc.BrowserPanes
    If oBPane.InternalName = "DlHierarchy" Then
        Exit For
    End If
Next

If oBPane.TopNode.Selected = True Then Exit Sub

Dim oBNode As BrowserNode
Set oBNode = TraverseBrowserNodes(oBPane.TopNode.BrowserNodes)

If oBNode Is Nothing Then Exit Sub

Dim oDrawView As DrawingView
Dim oNode As BrowserNode
Set oNode = oBNode.Parent
Do While Not TypeOf oNode.NativeObject Is DrawingView
    Set oNode = oNode.Parent
Loop

Set oDrawView = oNode.NativeObject

Dim oParentView As DrawingView
Set oParentView = oDrawView
Do While Not oParentView.ParentView Is Nothing
    Set oParentView = oParentView.ParentView
Loop

Dim oSheet As Sheet
Set oSheet = oParentView.Parent

If Not oSheet.Name = oDrawDoc.ActiveSheet.Name Then
    oSheet.Activate
End If

Dim oCompOcc As ComponentOccurrence
Set oCompOcc = oBNode.BrowserNodeDefinition.NativeObject

Dim oAssNode As BrowserNode
Set oAssNode = oAssPane.GetBrowserNodeFromObject(oCompOcc)

Dim oDrawCurves As DrawingCurvesEnumerator
Set oDrawCurves = oDrawView.DrawingCurves(oAssNode.NativeObject)

End Sub

Private Function TraverseBrowserNodes(ByVal oBNodes As BrowserNodesEnumerator) As BrowserNode
    Dim oBNode As BrowserNode
    For Each oBNode In oBNodes
        If Not oBNode.NativeObject Is Nothing Then
            If oBNode.Selected = True Then
                Set TraverseBrowserNodes = oBNode
                Exit Function
            End If
            If oBNode.Expanded = True Then
                Set TraverseBrowserNodes = TraverseBrowserNodes(oBNode.BrowserNodes)
                If Not TraverseBrowserNodes Is Nothing Then
                    Exit Function
                End If
            End If
        End If
    Next
End Function


------------------
MfG
Ralf

RKW Solutions GmbH
www.RKW-Solutions.com

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz