Moin Zusammen,
ich hätte mal wieder eine Frage zu meinem Makro.
Es handelt sich hierbei wieder um das CatDrawing Makro. Meine Frage ist, ob ich per VAB Language einem Textfeld auch einen orinetation Link zuweisen kann?
Die Alternative wäre natürlich das Textfeld bereiets im Makro die korrekte Orientierung zu zuweisen (also sprich ... Horizontal, Vertikal, ...). Dazu müsste ich aber zumindest wissen welche Orientierung meine ausgewählten Objekte haben (insbesodere die DrawingDimensions Objects).
Hierzu habe ich in der Beschreibung die DrawingDimension Property "ValueOrientation" gefunden und diese auch direkt ausprobiert.
Auszug aus der Dokumentation:
---------------------------------------------------------------------------------------------------
o Property ValueOrientation( ) As CatDimOrientation
Returns or sets orientation of dimension value.
Example:
This example retrieves orientation of dimension value MyDimension drawing dimension.
oValueOrient = MyDimension.ValueOrientation
-----------------------------------------------------------------------------------------------------
Wenn ich mir hier allerdings den wert per MsgBox ausgeben lasse, gibt mir die Property immer den Wert 2 zurück, ganz gleich welche Ausrichtung die ausgewählte Bemaßung hat.
Laut beschreibung in der Doku müssten eigentlich Strings wie catVertical zurück gegeben werden.
Wisst Ihr woran das liegen könnte?
Vielen Dank schonmal für euere Hilfe.
Grüße
Nachfolgend noch der entsprechende Auszug aus meinem Quellcode:
----------------------------------------------------------------------------------------------------------------------------------------
'*** *** *** *** *** *** *** *** *** *** *** *** ***
ElseIf USel.Item(I).Type = "DrawingDimension" Then
Dim Coord(7) 'variable List for the edge point of the DimensionBox
Dim InObOrientation
Set InObDimension = USel.Item(I).Value
Set cView = InObDimension.Parent.Parent 'Set the DrewingView from the InObDimension object
Set cDrawingTexts = cView.Texts
InObOrientation = InObDimension.ValueOrientation
MsgBox (InObOrientation)
'variables for positioning
InObDimension.GetBoundaryBox (Coord) 'get back the edge point of the DimensionBox
sca = cView.Scale2
pX = Coord(4)
pY = Coord(5)
'--- --- --- --- --- --- ---
If sca <> 1 Then
Set MyText = cDrawingTexts.Add(Index, pX - (6 / sca), pY)
Else
Set MyText = cDrawingTexts.Add(Index, pX - 6, pY)
End If
'--- --- --- --- --- --- ---
MyText.AssociativeElement = InObDimension 'creat positional link from MyText to InObDimension
'Creat a TextBox with Frame and a FontSize 2.5
MyText.FrameType = catCircle
iFontSize = 2.5
MyText.SetFontSize 0, 0, iFontSize
'*** *** *** *** *** *** *** *** *** *** *** *** ***
----------------------------------------------------------------------------------------------------------------------------------------
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP