Temat: Wymiarowanie powierzchni w microstation
Jeśli korzystasz z XMa lub v8i to masz narzędzie Wstaw pole w edytorze tekstu. Ale wówczas musisz wskazywać każdy element osobno.
Poniżej małe makro, które pozwoli Ci za jednym kliknięciem wstawić w srodku wielokąta powierzchnie z dowolnym opisem:
Sub WstawOpis()
Dim ele As Element
Dim ee As ElementEnumerator
Dim esc As ElementScanCriteria
Dim pow As String
Dim srodek As Point3d
Set esc = New ElementScanCriteria
esc.ExcludeAllLevels
esc.IncludeLevel ActiveDesignFile.Levels("Object2") 'nazwa warstwy na której ma przeprowadzić operacje
Set ee = ActiveModelReference.Scan(esc)
Do While ee.MoveNext
If ee.Current.IsShapeElement Then
pow = ee.Current.AsShapeElement.Area 'przypisanie powierzchni
srodek = ee.Current.AsShapeElement.Centroid 'srodek wielokąta
ElseIf ee.Current.IsComplexShapeElement Then
pow = ee.Current.AsComplexShapeElement.Area 'przypisanie powierzchni
srodek = ee.Current.AsComplexShapeElement.Centroid 'srodek wielokąta
End If
'wstawianie tekstu
Set ele = CreateTextElement1(Nothing, "pole powierzchni: " & pow & "m", srodek, Matrix3dIdentity)
ActiveModelReference.AddElement ele
ele.Redraw
Loop
End Sub