Inventor VBA Makro - Textfeld einfügen

Inventor VBA Makro - Textfeld einfügen

Anonymous
Nicht anwendbar
2.502Aufrufe
8Antworten
Nachricht 1 von 9

Inventor VBA Makro - Textfeld einfügen

Anonymous
Nicht anwendbar

Guten Tag,

 

ich bin auf der Suche nach einer Möglichkeit ein Textfeld, mit einem definierten Inhalt, automatisch in einer Zeichnung via Makro zu platzieren.

Das Textfeld soll beinhalten "Vorabzug - aktuelles Datum".

Das Property für das aktuelle Datum habe ich bereits gefunden.

Leider habe ich nicht gefunden, wie man ein Textfeld automatisch via Button auf eine Zeichnung platziert.

 

Könnte mir jemand da bitte weiter helfen?

 

Viele Grüße

Philipp

0 „Gefällt mir“-Angaben
Akzeptierte Lösungen (1)
2.503Aufrufe
8Antworten
Antworten (8)
Nachricht 2 von 9

raith-mb
Advocate
Advocate

Hallo Philip,

erstell ein skizziertes Symbol mit deinem Text und dem Datum.

Füge das auf der Zeichnung ein. Datum kannst du auch als angeforderte Einagbe machen, dann kannst du auch ältere Stände erstellen.

 

Wenn es unbedingt mit Button sein muss: skizziertes Symbol über Makro einfügen.

 

Gruß Roland

Nachricht 3 von 9

Anonymous
Nicht anwendbar
Tut mir Leid, aber das ist nicht das was ich wollte.

Trotzdem besten Dank!
0 „Gefällt mir“-Angaben
Nachricht 4 von 9

j_weber
Mentor
Mentor

Hallo @Anonymous 

 

schau dir mal folgenden Beitrag aus dem englischen Forum an. 

 

https://forums.autodesk.com/t5/inventor-customization/api-adding-text-on-drawing-that-moves-with-vie...

 

Da ist im ersten Code zu sehen, wie der Anwender eine ganze Reihe von Texten per VBA auf die Zeichnung positioniert. 

Vielleicht hilft dir das ja weiter. 




Jörg Weber
CAD Systemtechniker für AutoCAD, Inventor, Vault





Nachricht 5 von 9

Anonymous
Nicht anwendbar
Besten Dank!
Nun habe ich es fast so wie ich es wollte 🙂
2 Fragen bzw. Features die ich noch brauche 😄
Hat jemand den Codeschnipsel für Schriftgröße und für Farbe (rot)?
0 „Gefällt mir“-Angaben
Nachricht 6 von 9

Anonymous
Nicht anwendbar
Hier mal mein Makro. Ich benötige jetzt noch die Farbe des Textes in rot. Den Code muss ich noch etwas aufräumen, ja
Falls mir da jemand helfen könnte, wäre ich sehr dankbar 🙂

Sub Wasserzeichen()

Dim oDrawDoc As DrawingDocument
Set oDrawDoc = ThisApplication.ActiveDocument

Dim oActiveSheet As Sheet
Set oActiveSheet = oDrawDoc.ActiveSheet

Dim oGeneralNotes As GeneralNotes
Set oGeneralNotes = oActiveSheet.DrawingNotes.GeneralNotes

Dim oTG As TransientGeometry
Set oTG = ThisApplication.TransientGeometry
oDrawDoc.PropertySets("{32853F0F-3444-11D1-9E93-0060B03C1CA6}").Item("Creation Time").Value = Date

Dim sText As String
sText = "Example"
Select Case oDrawDoc.ActiveSheet.Size
Case kA3DrawingSheetSize
Dim oGeneralNote As GeneralNote
Set oGeneralNote = oGeneralNotes.AddFitted(oTG.CreatePoint2d(23.9, 4.9), sText)
sText = Date
Set oGeneralNote = oGeneralNotes.AddFitted(oTG.CreatePoint2d(24.4, 4.4), sText)

Case kA4DrawingSheetSize
Set oGeneralNote = oGeneralNotes.AddFitted(oTG.CreatePoint2d(2.9, 4.9), sText)
sText = Date
Set oGeneralNote = oGeneralNotes.AddFitted(oTG.CreatePoint2d(3.4, 4.4), sText)
End Select
End Sub
Nachricht 7 von 9

Martin-Winkler-Consulting
Advisor
Advisor
Akzeptierte Lösung

Hallo @Anonymous 

so änderst du dann noch Farbe und kannst den Text formatieren.

Ich habe das bei A3 ergänzt. Es scheint mir auch sinnvoller den ganzen Text vorher zu erstellen und dann in sText zu übergeben und nicht zwei einzelne Textfelder zu erzeugen, je nach Anwendungsfall.

 

Sub Wasserzeichen()

Dim oDrawDoc As DrawingDocument
Set oDrawDoc = ThisApplication.ActiveDocument

Dim oActiveSheet As Sheet
Set oActiveSheet = oDrawDoc.ActiveSheet

Dim oGeneralNotes As GeneralNotes
Set oGeneralNotes = oActiveSheet.DrawingNotes.GeneralNotes

Dim oTG As TransientGeometry
Set oTG = ThisApplication.TransientGeometry
oDrawDoc.PropertySets("{32853F0F-3444-11D1-9E93-0060B03C1CA6}").item("Creation Time").Value = Date

Dim oC As Color
Set oC = ThisApplication.TransientObjects.CreateColor(120, 120, 120)
Call oC.SetColor(255, 0, 0)

Dim sText As String
sText = "Example" & vbCrLf & Date
Select Case oDrawDoc.ActiveSheet.Size
Case kA3DrawingSheetSize
Dim oGeneralNote As GeneralNote
Set oGeneralNote = oGeneralNotes.AddFitted(oTG.CreatePoint2d(23.9, 4.9), sText)
oGeneralNote.Color = oC
oGeneralNote.FormattedText = "<StyleOverride FontSize = '1.5'>" & sText & "</StyleOverride>"

'sText = Date
'Set oGeneralNote = oGeneralNotes.AddFitted(oTG.CreatePoint2d(24.4, 4.4), sText)

Case kA4DrawingSheetSize
Set oGeneralNote = oGeneralNotes.AddFitted(oTG.CreatePoint2d(2.9, 4.9), sText)
sText = Date
Set oGeneralNote = oGeneralNotes.AddFitted(oTG.CreatePoint2d(3.4, 4.4), sText)
End Select
End Sub

 

Hier kam der entscheidende Hinweis her:

https://forums.autodesk.com/t5/inventor-customization/text-style-in-general-note/td-p/6255006

Martin Winkler
CAD Developer
Did you find this post helpful? Feel free to like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.


EESignature

Nachricht 8 von 9

Anonymous
Nicht anwendbar
Besten Dank!
0 „Gefällt mir“-Angaben
Nachricht 9 von 9

Anonymous
Nicht anwendbar
Ich habe dennoch eine Frage
wenn das Makro durchgelaufen ist (also nach dem Erzeugen einer Pdf mit dem Text), dann sollen die beiden Notes gelöscht werden.
Könnte mir jemand eine Sub zur Verfügung stellen?


Danke 🙂
0 „Gefällt mir“-Angaben