SolidWorks MakroMania - Tabellen Zeilenhöhe optimieren

SolidWorks MakroMania ist eine Beispielsammlung einiger Makros, die Ihnen eine Vorstellung davon geben soll, was man auch schon mit Makros in SolidWorks alles anstellen kann. Der Code des Makros sollte so gut dokumentiert sein, dass Sie damit ohne weitere Anleitung verstehen, was gemacht wird.

< voriges
MakroMania
Übersicht


nächstes >

Nummer 33
Tabellen Zeilenhöhe optimieren

Download
ZIP, 8 KB

Ich übernehme keine Haftung für die korrekte Funktion der Routinen oder irgendwelcher Schäden bei der Anwendung dieser Beispiele. Das gesamte Risiko trägt der Benutzer selbst. - Sorry, muss sein.

' **********************************************************************
' Das Makro stellt für die selektierte SolidWorkstabelle für alle
' Zeilen wieder die optimale (=kleinstmögliche) Zeilenhöhe ein.
'
' 28.10.2005 Stefan Berlitz
'            Stefan.Berlitz@solidworks.cad.de
'            http://solidworks.cad.de
'            http://swtools.cad.de
' **********************************************************************

' Einige Konstanten definieren
Const swDocDRAWING = 3
Const swSelANNOTATIONTABLES = 98
Const swTableRowColChange_TableSizeCanChange = 0

Sub main()
    ' Die Zeilenhöhe der markierten Tabelle auf Minimum setzen

    ' Deklarationen
    Dim swApp As Object         ' SolidWorks
    Dim DrawingDoc As Object    ' Drawing
    Dim SelectionMgr As Object  ' Selection
    Dim HoleTable As Object     ' HoleTable
    Dim Kotab As Object         ' TableAnnotation

    Dim columns As Long
    Dim col As Long
    Dim rows As Long
    Dim row As Long

    ' an SolidWorks anklinken und aktives Assembly holen
    Set swApp = CreateObject("SldWorks.Application")
    Set DrawingDoc = swApp.ActiveDoc

    ' = wenn's keine Zeichnung ist Meldung abgeben
    If Not DrawingDoc.GetType = swDocDRAWING Then
        Meldung = MsgBox("Bitte erst Zeichnung in SolidWorks aktivieren " & _
                         "und eine Bohrungstabelle selektieren!", _
                  vbOKOnly + vbExclamation, "Information")
        Exit Sub
    End If

    ' Die selektierte Tabelle holen
    Set SelectionMgr = DrawingDoc.SelectionManager
    ' dann das erste selektierte Objekt holen

    If SelectionMgr.GetSelectedObjectCount >= 1 Then

        ' wenn es eine der neuen (seit 2004) Tabellen ist
        If SelectionMgr.GetSelectedObjectType(1) = swSelANNOTATIONTABLES Then
            ' dann die Tabelle holen, das ist dei komplette Tabelle, auch wenn
            ' diese gesplittet wurde, was die Sache natürlich deutlich vereinfacht
            Set Kotab = SelectionMgr.GetSelectedObject5(1)

            cols = Kotab.ColumnCount
            rows = Kotab.RowCount

            ' Die Header werden anders farblich dargestellt
            For row = 0 To rows - 1        ' alle Zeilen
                ' set row height to 1 mm, so smallest value is automatically used
                Call Kotab.SetRowHeight(row, 0.0001, swTableRowColChange_TableSizeCanChange)
            Next row

            ' Und ein rebuild, damit man es auch sieht
            ' do a rebuild to show the changes
            DrawingDoc.EditRebuild
        Else
            MsgBox "Bitte Bohrungstabelle selektieren", vbOKOnly + vbExclamation, "Information"
        End If

    Else
        MsgBox "Bitte Bohrungstabelle selektieren", vbOKOnly + vbExclamation, "Information"
    End If

End Sub

Zurück zum Seitenanfang

hr.gif (4491 Byte)

counter Kritik und Anregungen bitte an Stefan Berlitz. Letzte Änderung dieser Seite am Mittwoch, 11. Juli 2007 17:52