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 |
Nummer 33 Tabellen Zeilenhöhe optimieren |
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
Kritik und Anregungen bitte an Stefan Berlitz. Letzte Änderung dieser Seite am Mittwoch, 11. Juli 2007 17:52 |