Vertikale Bemaßung mit VBA platzieren


Produkt(e):MicroStation
Version(en):10.00.00.25
Umgebung: Windows 8
Produktbereich: Programmierung
Produktunterbereich: VBA

Problembeschreibung

Mit der VBA Funktion CreateDimensionElement1 lassen sich leicht horizontale ausgerichtete Bemaßungen erstellen. Wenn jedoch die zu bemaßenden Punkte vertikal liegen, muss die Bemaßung mit einer entsprechenden Drehung erstellt werden.

Schritte zur Problembehebung

Die Angabe der Drehung erfolgt über eine Rotationsmatrix. Bei einer horizontalen Bemaßung reicht die Angabe der neutralen Matrix: Matrix3dIdentity,

dies entspricht einer Drehung von 0°.
Eine vertikale Bemaßung jedoch verlangt eine Drehung der Bemaßung um 90° bzw. 270° je nach gewünschter Richtung der Bemaßungslinien.

Wie beispielsweise eine solche Bemaßung erstellt und in das aktive Modell eingefügt werdne kann, zeigt folgendes Beispiel:

Sub dimensionvertical()
    Dim DRotation As Matrix3d
    'Drehung um 90°:
    DRotation = Matrix3dFromAxisAndRotationAngle(2, Pi / 2)
    
    'alternativ Drehung um 270°, je nach Richtung der Bemaßungslinien:
    'DRotation = Matrix3dFromAxisAndRotationAngle(2, 3 * Pi / 2)
    
    'Bemaßungselement erstellen:
    Set BaseLineDimension = CreateDimensionElement1(Nothing, DRotation, msdDimTypeSizeArrow)
    
    ' Zwei Punkte für Bemaßung festlegen, hier vertikal:
    Dim firstPoint As Point3d
    firstPoint = Point3dFromXYZ(10, 4, 0)
    Dim secondPoint As Point3d
    secondPoint = Point3dFromXYZ(10, 7, 0)
    BaseLineDimension.AddReferencePoint ActiveModelReference, firstPoint
    BaseLineDimension.AddReferencePoint ActiveModelReference, secondPoint
    BaseLineDimension.DimHeight = 1.25
    ' Bemaßung in Zeichnung einfügen:
    ActiveModelReference.AddElement BaseLineDimension
End Sub


Englischsprachige Quelle

 Ursprünglicher Autor:Artur Goldsweer