表示される寸法値を置き換えるには、DimensionText プロパティを使用します。このプロパティを使用すると、表示される寸法値を完全に置き換えることも、文字を追加することもできます。優先寸法値で計測値を表すには、文字内で文字列「<>」を使用します。
次の例は、文字を追加して、文字列と寸法値の両方を表示します。
Imports Autodesk.AutoCAD.Runtime Imports Autodesk.AutoCAD.ApplicationServices Imports Autodesk.AutoCAD.DatabaseServices Imports Autodesk.AutoCAD.Geometry <CommandMethod("OverrideDimensionText")> _ Public Sub OverrideDimensionText() '' Get the current database Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument Dim acCurDb As Database = acDoc.Database '' Start a transaction Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction() '' Open the Block table for read Dim acBlkTbl As BlockTable acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, _ OpenMode.ForRead) '' Open the Block table record Model space for write Dim acBlkTblRec As BlockTableRecord acBlkTblRec = acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), _ OpenMode.ForWrite) '' Create the aligned dimension Using acAliDim As AlignedDimension = New AlignedDimension() acAliDim.XLine1Point = New Point3d(5, 3, 0) acAliDim.XLine2Point = New Point3d(10, 3, 0) acAliDim.DimLinePoint = New Point3d(7.5, 5, 0) acAliDim.DimensionStyle = acCurDb.Dimstyle '' Override the dimension text acAliDim.DimensionText = "The value is <>" '' Add the new object to Model space and the transaction acBlkTblRec.AppendEntity(acAliDim) acTrans.AddNewlyCreatedDBObject(acAliDim, True) End Using '' Commit the changes and dispose of the transaction acTrans.Commit() End Using End Sub
using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Geometry; [CommandMethod("OverrideDimensionText")] public static void OverrideDimensionText() { // Get the current database Document acDoc = Application.DocumentManager.MdiActiveDocument; Database acCurDb = acDoc.Database; // Start a transaction using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction()) { // Open the Block table for read BlockTable acBlkTbl; acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable; // Open the Block table record Model space for write BlockTableRecord acBlkTblRec; acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord; // Create the aligned dimension using (AlignedDimension acAliDim = new AlignedDimension()) { acAliDim.XLine1Point = new Point3d(5, 3, 0); acAliDim.XLine2Point = new Point3d(10, 3, 0); acAliDim.DimLinePoint = new Point3d(7.5, 5, 0); acAliDim.DimensionStyle = acCurDb.Dimstyle; // Override the dimension text acAliDim.DimensionText = "The value is <>"; // Add the new object to Model space and the transaction acBlkTblRec.AppendEntity(acAliDim); acTrans.AddNewlyCreatedDBObject(acAliDim, true); } // Commit the changes and dispose of the transaction acTrans.Commit(); } }
Sub OverrideDimensionText() Dim dimObj As AcadDimAligned Dim point1(0 To 2) As Double Dim point2(0 To 2) As Double Dim location(0 To 2) As Double ' Define the dimension point1(0) = 5#: point1(1) = 3#: point1(2) = 0# point2(0) = 10#: point2(1) = 3#: point2(2) = 0# location(0) = 7.5: location(1) = 5#: location(2) = 0# ' Create an aligned dimension object in model space Set dimObj = ThisDrawing.ModelSpace. _ AddDimAligned(point1, point2, location) ' Change the text string for the dimension dimObj.TextOverride = "The value is <>" dimObj.Update End Sub