Forum:Inventor VBA
Thema:XYZ-Koordinate und Bezeichnung von einem Punkt in der Zeichnung anzeigen
Möchten Sie sich registrieren?
Wer darf antworten? Registrierte Benutzer können Beiträge verfassen.
Hinweise zur Registrierung Sie müssen registriert sein, um Beiträge oder Antworten auf Beiträge schreiben zu können.
Ihr Benutzername:
Ihr Kennwort:   Kennwort vergessen?
Anhang:    Datei(en) anhängen  <?>   Anhänge verwalten  <?>
Grafik für den Beitrag:                                                
                                                       
Ihre Antwort:

Fachbegriff
URL
Email
Fett
Kursiv
Durchgestr.
Liste
*
Bild
Zitat
Code

*HTML ist AUS
*UBB-Code ist AN
Smilies Legende
Netiquette

10 20 40

Optionen Smilies in diesem Beitrag deaktivieren.
Signatur anfügen: die Sie bei den Voreinstellungen angegeben haben.

Wenn Sie bereits registriert sind, aber Ihr Kennwort vergessen haben, klicken Sie bitte hier.

Bitte drücken Sie nicht mehrfach auf "Antwort speichern".

*Ist HTML- und/oder UBB-Code aktiviert, dann können Sie HTML und/oder UBB Code in Ihrem Beitrag verwenden.

T H E M A     A N S E H E N
rkauskh

Beiträge: 1612 / 0

Windows 10 x64, Inventor 2020

Moin

Mit der Annahme, dass:
- ein Arbeitspunkt gemeint ist.
- der Punkt in der Baugruppe und nicht in einer Unterbaugruppe/ einem Bauteil definiert ist.
- mit "Bezeichnung" der Displayname im Modellbrowser gemeint ist.

Makro starten und Punkt selektieren, die Infos werden angezeigt. Wiederholen für weiteren Punkt, Abbruch zum Beenden.

Code:

Option Explicit

Private Sub PointInfoDemo()

Dim oDrawDoc As DrawingDocument
Dim oPointMark As Centermark
Dim oPoint As WorkPoint
Dim dX, dY, dZ As Double
Dim oRes As VbMsgBoxResult

Set oDrawDoc = ThisApplication.ActiveDocument
oRes = vbRetry

Do While oRes = vbRetry
    Set oPointMark = ThisApplication.CommandManager.Pick(kDrawingCentermarkFilter, "Mittelpunkt wählen...")
    Set oPoint = oPointMark.AttachedEntity
    oRes = MsgBox("X: " & Round(oPoint.Point.X * 10, 2) & " mm" & vbCrLf & _
        "Y: " & Round(oPoint.Point.Y * 10, 2) & " mm" & vbCrLf & _
        "Z: " & Round(oPoint.Point.Z * 10, 2) & " mm" & vbCrLf & vbCrLf & _
        "Name: " & oPoint.Name, _
        vbRetryCancel, "Punktinfos")
       
Loop

oDrawDoc.SelectSet.Clear

End Sub



Oder ist mit "anzeigen" z.B. das Einfügen eines Führungslinientextes gemeint? Dann Makro starten und Punkt selektieren, Infos werden eingefügt. Ja für weiteren Punkt, Nein zum Beenden.

Code:

Private Sub PointInfoDemo2()

Dim oDrawDoc As DrawingDocument
Dim oPointMark As Centermark
Dim oPoint As WorkPoint
Dim dX, dY, dZ As Double
Dim oRes As VbMsgBoxResult

Set oDrawDoc = ThisApplication.ActiveDocument
oRes = vbYes

Do While oRes = vbYes

    Set oPointMark = ThisApplication.CommandManager.Pick(kDrawingCentermarkFilter, "Mittelpunkt wählen...")
    Set oPoint = oPointMark.AttachedEntity

    Dim oInsertPoint As Point2d
    Set oInsertPoint = oPointMark.Position

    Dim oTG As TransientGeometry
    Set oTG = ThisApplication.TransientGeometry

    Dim oLeaderPoints As ObjectCollection
    Set oLeaderPoints = ThisApplication.TransientObjects.CreateObjectCollection

    Call oLeaderPoints.Add(oTG.CreatePoint2d(oInsertPoint.X + 1, oInsertPoint.Y + 1))

    Dim oGeometryIntent As GeometryIntent
    Set oGeometryIntent = oDrawDoc.ActiveSheet.CreateGeometryIntent(oPointMark)

    Call oLeaderPoints.Add(oGeometryIntent)

    Dim sText As String
    sText = "X: " & Round(oPoint.Point.X * 10, 2) & " mm" & vbCrLf & _
        "Y: " & Round(oPoint.Point.Y * 10, 2) & " mm" & vbCrLf & _
        "Z: " & Round(oPoint.Point.Z * 10, 2) & " mm" & vbCrLf & vbCrLf & _
        "Name: " & oPoint.Name

    Dim oLeaderNote As LeaderNote
    Set oLeaderNote = oDrawDoc.ActiveSheet.DrawingNotes.LeaderNotes.Add(oLeaderPoints, sText)

    Dim oFirstNode As LeaderNode
    Set oFirstNode = oLeaderNote.Leader.RootNode.ChildNodes.Item(1)

    oRes = MsgBox("Weiteren Punkt abfragen?", vbYesNo, "Punktinfos")

Loop

End Sub


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