![]() |
|
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.
Beiträge: 1713 / 0 Windows 10 x64, AIP 2021 Mit der Annahme, dass: Makro starten und Punkt selektieren, die Infos werden angezeigt. Wiederholen für weiteren Punkt, Abbruch zum Beenden. Private Sub PointInfoDemo() Dim oDrawDoc As DrawingDocument Set oDrawDoc = ThisApplication.ActiveDocument Do While oRes = vbRetry oDrawDoc.SelectSet.Clear End Sub Dim oDrawDoc As DrawingDocument Set oDrawDoc = ThisApplication.ActiveDocument Do While oRes = vbYes Set oPointMark = ThisApplication.CommandManager.Pick(kDrawingCentermarkFilter, "Mittelpunkt wählen...") Dim oInsertPoint As Point2d Dim oTG As TransientGeometry Dim oLeaderPoints As ObjectCollection Call oLeaderPoints.Add(oTG.CreatePoint2d(oInsertPoint.X + 1, oInsertPoint.Y + 1)) Dim oGeometryIntent As GeometryIntent Call oLeaderPoints.Add(oGeometryIntent) Dim sText As String Dim oLeaderNote As LeaderNote Dim oFirstNode As LeaderNode oRes = MsgBox("Weiteren Punkt abfragen?", vbYesNo, "Punktinfos") Loop End Sub ------------------rkauskh Moin
- 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.Code:
Option Explicit
Dim oPointMark As Centermark
Dim oPoint As WorkPoint
Dim dX, dY, dZ As Double
Dim oRes As VbMsgBoxResult
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
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 oPointMark As Centermark
Dim oPoint As WorkPoint
Dim dX, dY, dZ As Double
Dim oRes As VbMsgBoxResult
oRes = vbYes
Set oPoint = oPointMark.AttachedEntity
Set oInsertPoint = oPointMark.Position
Set oTG = ThisApplication.TransientGeometry
Set oLeaderPoints = ThisApplication.TransientObjects.CreateObjectCollection
Set oGeometryIntent = oDrawDoc.ActiveSheet.CreateGeometryIntent(oPointMark)
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
Set oLeaderNote = oDrawDoc.ActiveSheet.DrawingNotes.LeaderNotes.Add(oLeaderPoints, sText)
Set oFirstNode = oLeaderNote.Leader.RootNode.ChildNodes.Item(1)
MfG
Ralf