31/07/2013
Как поместить текст в нужное место, если текст имеет выравнивание?
Мы хотим поместить текст в определенное место с выравниванием СЦ (Середина-Центр). Но текст не помещается в нужно место несмотря на то, что выравнивание задано правильно.
Если вы хотите установить местоположение текста путем изменения его точка выравнивания, пожалуйста, воспользуйтесь кодом:
oTextEnt.AlignmentPoint = newPoint
Если вы хотите изменить положение текста, когда текст выровнен, пожалуйста воспользуйтесь следующим кодом
Код - VB.NET: [Выделить]
- Sub TextPosition()
- Dim doc As Document = Autodesk.AutoCAD. _
- ApplicationServices.Application. _
- DocumentManager.MdiActiveDocument
- Dim ed as Editor = doc.Editor
- Dim selection As PromptSelectionResult = ed.GetSelection()
- Dim tm = Autodesk.AutoCAD.ApplicationServices.Application. _
- DocumentManager.MdiActiveDocument.TransactionManager
- Dim objectID As ObjectId
- Dim ta As Transaction = tm.StartTransaction()
- Try
- For Each objectID In selection.Value.GetObjectIds()
- Dim ent As Entity= tm.GetObject( _
- objectID, OpenMode.ForWrite)
- If TypeOf ent is DBText then
- Dim oText As DBText = ent
- Dim textPosition = oText.Position
- Dim transMatrix As Matrix3d = _
- Matrix3d.Identity
- Dim newPosition As New Point3d(10, 10, 10)
- Dim transVec As Vector3d = _
- newPosition -
- textPosition
- ' трансформируем текст полностью
- ' так чтобы и точка вставки и точка выравнивания
- ' преобразовались.
- transMatrix = _
- transMatrix.Displacement(transVec)
- oText.TransformBy(transMatrix)
- End If
- Next
- ta.Commit()
- Catch ex As System.Exception
- Finally
- ta.Dispose()
- End Try
- End Sub
Обсуждение: http://adn-cis.org/forum/index.php?topic=141.0
Опубликовано 31.07.2013
Отредактировано 04.08.2013 в 17:26:42
Отредактировано 04.08.2013 в 17:26:42