Inventor (VBA/iLogic) Positiver Werte bei Koordinatenbemaßungssatz editieren

Inventor (VBA/iLogic) Positiver Werte bei Koordinatenbemaßungssatz editieren

j_weber
Mentor Mentor
471Aufrufe
2Antworten
Nachricht 1 von 3

Inventor (VBA/iLogic) Positiver Werte bei Koordinatenbemaßungssatz editieren

j_weber
Mentor
Mentor

Hallo zusammen, 

 

ich hatte vor längerer Zeit mal die Frage, ob bei einem Koordinatensatz, der so eingestellt ist das beide Seiten nicht positiv sind, vor den positiven Werten ein + gesetzt werden kann. Bei den negativen Werten ist ja auch ein - davor. 

Ich hatte es leider verneinen müssen, ich hatte keine Möglichkeit gefunden, weder mi Stil noch im Text

 

Mich hat das aber nicht los gelassen und da ich eh gerade Versuche ein bisschen Programmieren zu lernen hatte ich mir das als Aufgabe genommen. 

 

Folgendes ist dabei heraus gekommen. 

 

Sub PosCoord()

'Zeichnugsumgebung aktivieren
Dim odrawing As DrawingDocument
Set odrawing = ThisDocument

'Bezug auf aktuelles Blatt herstellen
Dim oSheet As Sheet
Set oSheet = odrawing.ActiveSheet

'Bemaßungsbereich aktivieren
Dim odim As DrawingDimensions
Set odim = oSheet.DrawingDimensions

'Bezug innerhalb der Bemaßungen auf Koordinatenbemaßungsatz
Dim oodimsets As OrdinateDimensionSets
Set oodimsets = odim.OrdinateDimensionSets

'Festlegen, das die weiteren Anweisungen für jeden Koordiantenbemaßungssatz gelten soll.
For i_sets = 1 To oodimsets.Count
    
    'Bezug auf die einzelnen Bemaßungen im Koordinatenbemaßungssatz
    Dim oodimset As OrdinateDimensionSet
    Set oodimset = oodimsets.Item(i_sets)
    
    'Festlegen das nicht in beiden Richtungen positiv ist, sondern nach links oder unten negativ
    oodimset.PositiveBothDirections = False
        
    'Bezug auf das einzelne Maß im Koordinatenbemaßungssatz herstellen
    Dim oodimsetmember As OrdinateDimensionsEnumerator
    Set oodimsetmember = oodimset.Members
    
    'Anweisung gilt für jedes Maß im Koordinatenbemaßungssatz
    For i_set = 1 To oodimsetmember.Count
        'Variable für den Inhalt des Bemaßungswertes
        Dim koortext As String
        koordtext = oodimsetmember.Item(i_set).Text.Text
            If Left$(koordtext, 1) <> "-" And Not koordtext = "0,00" Then
            oodimsetmember.Item(i_set).Text.FormattedText = "+<DimensionValue/>"
            End If
    Next
 Next

Es funzt sogar, jedenfalls bei mir. Im Screencast kann man es sehen. 

 

Sicher könnten die Code-Profis noch was verbesssere. Ich bin froh das ich es bis hier hin geschafft hatte. 

 

Vielleicht kann es der eine oder andere gebrauchen. 

 

Meinungen sind gern gesehen und erwünscht. 

 

bis dann

 

 

 

 




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





472Aufrufe
2Antworten
Antworten (2)
Nachricht 2 von 3

Dennis.Ossadnik
Autodesk Support
Autodesk Support

Hallo @j_weber,

 

also ich finde es cool!

 

Toll zu sehen, wie schnell du in das Thema VBA/iLogic reingekommen bist. Hut ab.



Dennis Ossadnik
Senior Technical Support Specialist
Nachricht 3 von 3

j_weber
Mentor
Mentor

Danke ☺

 

Es macht mir auch Spaß

 

Und es gibt noch so viele Möglichkeiten. Ideen hab ich genug

 




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