CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

替代标注样式 (.NET)

2023-1-1 11:38| 发布者: admin| 查看: 722| 评论: 0|来自: AutoCAD

每个维度都能够覆盖由维度样式分配给它的设置。以下属性可用于大多数维度对象:

迪马特菲特

指定仅在延长线内显示尺寸线,并强制在延长线内或外部显示尺寸文本和箭头。

Dimaltrnd

指定备用单位的舍入。

迪马斯

指定尺寸线箭头、引线箭头和钩线的大小。

迪马单位

指定角度尺寸的单位格式。

Dimblk1、Dimblk2

指定用于尺寸线箭头的块。

点心

指定径向尺寸和直径尺寸的中心标记的类型和大小。

Dimclrd

指定尺寸、引线或公差对象的尺寸线的颜色。

迪姆克莱尔

指定尺寸延伸线的颜色。

Dimclrt

指定尺寸和公差对象的文本颜色。

迪姆德克

指定为尺寸或公差的主要单位显示的小数位数。

Dimdsep

指定要用作十进制尺寸和公差值中的小数分隔符的字符。

Dimexe

指定延伸线延伸到尺寸线之外的距离。

迪梅索

指定延伸线与原点的偏移距离。

Dimfrac

指定尺寸和公差中分数值的格式。

迪姆加普

指定在分割尺寸线以容纳尺寸文本时尺寸文本与尺寸线之间的距离。

迪姆法克

指定线性尺寸测量的全局比例因子。

Dimltex1、Dimltex2

指定延伸线的线型。

昏暗

指定尺寸线的线宽。

Dimlwe(迪姆韦酒店)

指定延长线的线宽。

Dimjust(迪姆利斯酒店)

指定尺寸文本的水平对齐方式。

Dimrnd

指定尺寸测量的距离舍入。

Dimsd1、Dimsd2

指定尺寸线的隐含。

Dimse1、Dimse2

指定延长线的隐含。

迪姆塔德

指定文本相对于尺寸线的垂直位置。

Dimtdec

指定公差值在主要尺寸中的精度。

迪姆特法克

指定公差值的文本高度相对于尺寸文本高度的比例因子。

调光

指定除角度之外的所有尺寸的单位格式。

迪姆提

指定是否要在扩展线内绘制尺寸文本。

迪姆特姆

指定尺寸文本的最小容差限制。

Dimtmove(迪姆特移动酒店)

指定移动文本时如何绘制尺寸文本。

迪姆托夫

指定是否在扩展线之间绘制尺寸线,即使文本放置在扩展线之外也是如此。

迪姆托

指定除纵坐标外的所有尺寸类型的扩展线外的尺寸文本的位置。

迪姆托尔

指定公差是否与尺寸文本一起显示。

迪姆托利

指定公差值相对于标称尺寸文本的垂直对齐方式。

Dimtp

指定尺寸文本的最大公差限制。

Dimtxt

指定尺寸或公差文本的高度。

迪姆津

指定在尺寸值中隐含前导零和尾随零以及零英尺和英寸测量值。

前缀

指定维度值前缀。

后缀

指定维度值后缀。

文本精度

指定角度标注文本的精度。

文本位置

指定尺寸文本位置。

文本旋转

指定尺寸文本的旋转角度。

为对齐的尺寸输入用户定义的后缀

本示例在模型空间中创建一个对齐的维度,并使用 Suffix 属性允许用户更改维度的文本后缀。

VB.NET

Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.EditorInput
Imports Autodesk.AutoCAD.Geometry
 
<CommandMethod("AddDimensionTextSuffix")> _
Public Sub AddDimensionTextSuffix()
    '' 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(0, 5, 0)
            acAliDim.XLine2Point = New Point3d(5, 5, 0)
            acAliDim.DimLinePoint = New Point3d(5, 7, 0)
            acAliDim.DimensionStyle = acCurDb.Dimstyle

            '' Add the new object to Model space and the transaction
            acBlkTblRec.AppendEntity(acAliDim)
            acTrans.AddNewlyCreatedDBObject(acAliDim, True)

            '' Append a suffix to the dimension text
            Dim pStrOpts As PromptStringOptions = New PromptStringOptions("")

            pStrOpts.Message = vbLf & "Enter a new text suffix for the dimension: "
            pStrOpts.AllowSpaces = True
            Dim pStrRes As PromptResult = acDoc.Editor.GetString(pStrOpts)

            If pStrRes.Status = PromptStatus.OK Then
                acAliDim.Suffix = pStrRes.StringResult
            End If
        End Using

        '' Commit the changes and dispose of the transaction
        acTrans.Commit()
    End Using
End Sub

C#

using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Geometry;
 
[CommandMethod("AddDimensionTextSuffix")]
public static void AddDimensionTextSuffix()
{
    // 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(0, 5, 0);
            acAliDim.XLine2Point = new Point3d(5, 5, 0);
            acAliDim.DimLinePoint = new Point3d(5, 7, 0);
            acAliDim.DimensionStyle = acCurDb.Dimstyle;

            // Add the new object to Model space and the transaction
            acBlkTblRec.AppendEntity(acAliDim);
            acTrans.AddNewlyCreatedDBObject(acAliDim, true);

            // Append a suffix to the dimension text
            PromptStringOptions pStrOpts = new PromptStringOptions("");

            pStrOpts.Message = "\nEnter a new text suffix for the dimension: ";
            pStrOpts.AllowSpaces = true;
            PromptResult pStrRes = acDoc.Editor.GetString(pStrOpts);

            if (pStrRes.Status == PromptStatus.OK)
            {
                acAliDim.Suffix = pStrRes.StringResult;
            }
        }

        // Commit the changes and dispose of the transaction
        acTrans.Commit();
    }
}

VBA/ActiveX 代码参考

Sub AddDimensionTextSuffix()
    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
    Dim suffix As String
 
    ' Define the dimension
    point1(0) = 0: point1(1) = 5: point1(2) = 0
    point2(0) = 5: point2(1) = 5: point2(2) = 0
    location(0) = 5: location(1) = 7: location(2) = 0
 
    ' Create an aligned dimension object in model space
    Set dimObj = ThisDrawing.ModelSpace. _
                     AddDimAligned(point1, point2, location)
 
    ThisDrawing.Application.ZoomAll
    ' Allow the user to change the text suffix for the dimension
    suffix = ThisDrawing.Utility. _
                 GetString(True, vbLf & "Enter a new text " & _
                                        "suffix for the dimension: ")
 
    ' Apply the change to the dimension
    dimObj.TextSuffix = suffix
    ThisDrawing.Regen acAllViewports
End Sub

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1   苏公网安备32011402011833)

GMT+8, 2025-1-8 19:23

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部