Ich versuche gerade mal eine Bemassung mittels VBA zu erzeugen (ich weiss das ACAD gute Bemassungstool bietet aber wir haben viele Bemassung mit Textersetzungen zu erzeugen und diese Ersetzungen möchte ich aus einer Listbox wählen und dann auf die Bemassung übertragen), das funktioniert auch soweit ganz gut, ich
habe aber die Koordinatentransformation vom WCS zum UCS noch nicht begriffen und darum tritt mitunterfolgendes Problem auf:
Ausgerichtete Bemassung wird von ACAD immer oberhab der Bemassungslinie dargestellt, bei einem Winkel von 90° und 270° nach dem WCS springt die Bemassung von links nach rechts (und umgekehrt) um bei weiterer vergrößerung des Winkels wieder oberhalb angeordnet zu sein. Genau hier liegt mein Problem, ich wähle meine Bemassungspunkte (für ausgerichtete Bemassung) mit
Punkt1=ThisDrawing.Utility.GetPoint(, "Punkt1 wählen:")
Punkt2 analog.
im Anschluss erzeuge ich die Bemassung mit
Set BemObj = ThisDrawing.ModelSpace.AddDimAligned(Punkt1, Punkt2, Punkt1)
BemObj.TextOverride = TextBoxBEM.Value
wenn jetzt aber z.B. mein UCS in einem bestimmten Winkel zum WCS verdreht ist/wird, steht meine Bemassung auf dem Kopf, da ACAD meine erzeugte Bemassung nach dem WCS ausrichtet.
ich habe folgendes versucht:
Punkt1 = ThisDrawing.Utility.TranslateCoordinates(Punkt1, acWorld, acUCS, False)
Punkt2 = ThisDrawing.Utility.TranslateCoordinates(Punkt2, acWorld, acUCS, False)
dabei wurde die Bemassung aber dann im WCS (und nicht im UCS) an die Koordinaten von Punkt1/Punkt2 gesetzt
Ich habe auch folgendes probiert:
Dim ucsObj As AcadUCS
ucsObj = ThisDrawing.ActiveUCS
TransMatrix = ucsObj.GetUCSMatrix()
BemObj.TransformBy (TransMatrix)
das hat aber auch noch nicht funktioniert, hat jemand einen Tip für mich?
Und vielleicht weiss ja auch noch jemand wie ich für meine Bemassung einen geschlossenen/gefüllten Pfeil bekommen kann. In der Hilfe habe ich dazu nichts gefunden, entweder gefülltes Kästchen oder geschlossener Pfeil ohne Füllung:
BemObj.Arrowhead1Type = acArrowClosed
oder geht das nur über selbstdefinierten Block?
viele Grüße aus Chemnitz,
Hartmut
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP