VBA第五章—创建标注和公差
EXCEL VBA实现在一个单元格中输入公差上下标

EXCEL VBA实现在一个单元格中输入公差(上下标),如下图效果:代码如下:Sub 输入公差()i = InputBox("请输入基数:")If i = "" ThenMsgBox "无效!即将推出!"EndEnd Ifj = InputBox("请输入下标:")If i = "" ThenMsgBox "无效!即将推出!"EndEnd Ifk = InputBox("请输入上标:")If i = "" ThenMsgBox "无效!即将推出!"EndEnd Ifii = Len(i)jj = Len(j)l = ActiveCellll = Len(l)ActiveCell.SelectSelection.NumberFormatLocal = "@"ActiveCell.FormulaR1C1 = l & i & jWith ActiveCell.Characters(Start:=ll + 1, Length:=ii).Font '基数字体设置.Name = "宋体".FontStyle = "常规".Size = 11End WithWith ActiveCell.Characters(Start:=ll + ii + 1, Length:=jj).Font '下标字体设置.Name = "宋体".FontStyle = "常规".Size = 5End WithSelection.Phonetics.Visible = TrueWith Selection.Phonetics.Font '上标字体设置.Name = "宋体".FontStyle = "常规".Size = 5.Strikethrough = False.Underline = xlUnderlineStyleNone.ColorIndex = xlAutomaticEnd WithActiveCell.Characters(ll + ii + 1, 1).PhoneticCharacters = k With Selection.HorizontalAlignment = xlGeneral.VerticalAlignment = xlBottom.WrapText = False.Orientation = 0.AddIndent = False.IndentLevel = 0.ShrinkToFit = False.ReadingOrder = xlContext.MergeCells = FalseEnd WithEnd Sub。
用VBA开发公差自动查询标注

用VBA 开发公差自动查询标注潘应晖(南平师范高等专科学校电子工程系,福建武夷山354300)摘要:通过A uto C AD 内置的VBA 开发工具,结合A CC ESS 数据库,进行尺寸公差的自动查询及标注设计,弥补Auto C AD 在尺寸公差查询、标注方面的不足,克服公差手工设计的缺点,提高设计的准确性及高效性。
关键词:公差;基本偏差;公差等级;数据库;尺寸标注中图分类号: T P311文献标识码:B文章编号:167125276 (2005) 0420102203Autom at ic In q uiry of t he T olerance Fi t t in gPAN Y ing2hui( Nan ping Teacher’s C ollege , FJ Wuyishan 354300 ,China)Abstract :Thro u gh A uto C AD built2in VBA devel oping inst r ument , co mbine A CC ESS database , carries o n t h e auto matic inquiry of t he dimensi o nal tolerance and dimensi o n mar k , remedy A uto C AD def iciency in inquiring and mar king in dimensi o nal tolerance , overco me t he sho rtco ming t hat t he tolerance is designed by hand , im2 p r ove t h e p r ecisi o n and eff iciency of design .K ey w ords :tolerance ; basic deviati o n ; tolerance grade ; database ; dat u m system ; dimensi o n mar k率,增强了Auto C AD 的功能。
公差标注方法

公差标注方法公差标注是机械制造中非常重要的一环,它能够准确地描述零件的尺寸和形位公差,为零件的加工、装配和使用提供了重要的依据。
在实际工程中,正确的公差标注方法能够有效地提高零件的加工精度和装配质量,因此,掌握正确的公差标注方法对于机械工程师来说至关重要。
一、公差标注的基本原则。
在进行公差标注时,我们需要遵循一些基本原则,以确保标注的准确性和可读性。
首先,我们需要根据零件的功能和加工要求,选择合适的公差标注方式,包括尺寸公差、形位公差和表面质量要求等。
其次,公差标注需要清晰、简洁,避免出现重复、繁琐的标注,以免造成混淆。
最后,公差标注需要与工程图纸上的尺寸标注相协调,确保标注的一致性和完整性。
二、尺寸公差标注方法。
尺寸公差是描述零件尺寸偏差的一种方式,它通常用上下限公差或基本偏差加上公差等级来表示。
在进行尺寸公差标注时,我们需要遵循以下几点原则,首先,尺寸公差标注需要清晰明了,标注位置应当与尺寸标注相对应,便于工人和检验人员理解和操作。
其次,尺寸公差标注需要考虑零件的功能和加工要求,合理选择公差等级和公差范围。
最后,尺寸公差标注需要与形位公差标注相协调,确保标注的一致性和完整性。
三、形位公差标注方法。
形位公差是描述零件形状、位置和方向偏差的一种方式,它通常用公差带、公差值和公差尺寸来表示。
在进行形位公差标注时,我们需要遵循以下几点原则,首先,形位公差标注需要清晰明了,标注位置应当与相关特征标注相对应,便于工人和检验人员理解和操作。
其次,形位公差标注需要考虑零件的功能和装配要求,合理选择公差带和公差范围。
最后,形位公差标注需要与尺寸公差标注相协调,确保标注的一致性和完整性。
四、表面质量要求标注方法。
表面质量要求是描述零件表面光洁度、平整度和粗糙度等要求的一种方式,它通常用符号、数值和图形来表示。
在进行表面质量要求标注时,我们需要遵循以下几点原则,首先,表面质量要求标注需要清晰明了,标注位置应当与相关表面特征标注相对应,便于工人和检验人员理解和操作。
VBA编写自定义函数与公式的方法与注意事项

VBA编写自定义函数与公式的方法与注意事项在Excel中,VBA(Visual Basic for Applications)是一种编程语言,用户可以使用VBA编写自定义函数和公式来扩展Excel的功能。
自定义函数和公式可以让用户根据自己的需求自定义计算逻辑,使Excel变得更加强大和灵活。
本文将介绍VBA编写自定义函数和公式的方法与注意事项。
方法:1. 打开Visual Basic编辑器:在Excel中,按下Alt+F11键可以打开Visual Basic编辑器。
在编辑器中,可以编写VBA代码来创建自定义函数和公式。
2. 创建函数模块:在Visual Basic编辑器中,可以通过插入模块来创建函数模块。
在“插入”菜单中选择“模块”,就可以创建一个新的函数模块用于编写自定义函数。
3. 编写函数代码:在函数模块中,可以编写VBA代码来定义自己的函数。
函数的代码逻辑可以根据自己的需求进行编写,可以使用VBA提供的各种函数和语句来完成相应的计算和操作。
4.调试和测试:在编写完函数代码后,可以进行调试和测试以确保函数的正确性。
可以使用“调试”菜单中的各种调试工具来单步执行代码,观察代码执行过程中的变量值和结果。
同时也可以在Excel中使用自定义函数进行测试。
5. 保存和使用函数:完成函数的编写后,可以保存函数模块,并使用这个自定义函数。
保存函数模块后,函数将会以VBA宏的形式保存在当前的工作簿中。
在Excel中,可以通过在单元格中输入自定义函数的名字来使用这个函数。
注意事项:1. 函数的命名规范:在编写自定义函数时,需要注意函数的命名。
函数的名字应该能够清晰地表达函数的功能,并且需要遵守VBA命名规范。
函数名应该以字母开头,可以包含字母、数字和下划线,长度不得超过255个字符。
2. 参数的定义和使用:在自定义函数中,可以定义输入参数和输出参数。
输入参数用于接收函数的输入数据,输出参数用于返回计算结果。
在函数定义中,可以指定参数的名称、数据类型和传递方式。
第五章 EXCEL VBA基础

第五节 EXCEL VBA基础语法
• 变量的作用范围 • 变量和常量可以在两个地方定义: 在过程中定义; 在模块顶部一个名为“通用声明”的区域 内定义。 • 而且定义的位置就决定了作用域。
第五节 EXCEL VBA基础语法
• 三类作用范围 三类作用范围: • 在过程中声明,该变量只能在该过程中使用, 其他过程中不能使用这个变量和常量,这种变 量成为局部变量或过程级变量; • 在模块顶部声明的变量称为模块级变量,该变 量在该模块的所有过程中都可以使用。 • 还有一种等级的作用域称为公共级。公共级变 量可以在应用程序的任何过程中使用,不论过 程和变量是否定义在一个模块。这就使得公共 级变量在使用中十分灵活,但是公共级变量在 程序运行时一法
• 声明数组时的另一种方法是不给定大小。可以在程序运 行时定义其大小。通过创建动态数组就可以做到。例如, 你的程序要创建一表格,可以提示用户输入表格的行和 列的数目。声明动态数组的语法如下: • Dim dyn_array() As type • 对动态数组声明后可以在程序运行时使用ReDim语句指 定数组的大小: • ReDim dyn_array()(array_size) • 参数array_size代表数组的新大小。如果要保留数组的数 值,请在ReDim语句后使用保留字Preserve,具体语法如 下: • ReDim Preserve dyn_array()(array_size)
AutoCADVBA尺寸标注

AutoCADVBA尺⼨标注AutoCAD VBA尺⼨标注,包括转⾓标注、对齐标注、⾓度标注、半径标注、直径标注和坐标标注,代码如下。
Public Function AddDimAligned(ByVal pt1 As Variant, ByVal pt2 As Variant, ByVal ptText As Variant) As AcadDimAlignedSet AddDimAligned = ThisDrawing.ModelSpace.AddDimAligned(pt1, pt2, ptText)End FunctionPublic Function AddDimAlignedCTxt(ByVal pt1 As Variant, ByVal pt2 As Variant, ByVal ptText As Variant, ByVal text As String, Optional x As Double = 0, Optional y As Double = 0) As AcadDimAlignedDim objDim As AcadDimAlignedSet objDim = AddDimAligned(pt1, pt2, ptText)objDim.TextOverride = textobjDim.TextMovement = acMoveTextAddLeaderptText(0) = ptText(0) + xptText(1) = ptText(1) + yobjDim.TextPosition = ptTextobjDim.UpdateSet AddDimAlignedCTxt = objDimEnd FunctionPublic Function AddDimRotated(ByVal pt1 As Variant, ByVal pt2 As Variant, ByVal ptText As Variant, ByVal angle As Double) As AcadDimRotated Set AddDimRotated = ThisDrawing.ModelSpace.AddDimRotated(pt1, pt2, ptText, angle)End FunctionPublic Function AddDimRotateCTxt(ByVal pt1 As Variant, ByVal pt2 As Variant, ByVal ptText As Variant, ByVal angle As Double, ByVal text As String) As AcadDimRotatedDim objDim As acaddimroteSet objDim = AddDimRotated(pt1, pt2, ptText, angle, text)objDim.TextOverride = textSet addDimRotatedCTxt = objDimEnd FunctionPublic Function AddDimRadial(ByVal ptCen As Variant, ByVal ptChord As Variant, ByVal leaderLength As Double) As AcadDimRadialSet AddDimRadial = ThisDrawing.ModelSpace.AddDimRadial(ptCen, ptChord, leaderLength)End FunctionPublic Function AddDimRadialAR(ByVal ptCen As Variant, ByVal radius As Double, ByVal angle As Double, Optional leaderLength As Double = 5) As AcadDimRadialDim ptChord As VariantptChord = GetPointAR(ptCen, angle, radius)Set AddDimRadiusAR = AddDimRadial(ptCen, ptChord, leaderLength)End FunctionPublic Function AddDimDiametrc(ByVal ptChord1 As Variant, ByVal ptChord2 As Variant, ByVal leaderLength As Double) As AcadDimDiametric Set AddDimDiametric = ThisDrawing.ModelSpace.AddDimDiametric(ptChord1, ptChord2, leaderLength)End FunctionPublic Function AddDiametricAR(ByVal ptCen As Variant, ByVal radius As Double, ByVal angle As Double, Optional leaderLength As Double = 5) As AcadDimDiametricDim ptChord1, ptChord2 As VariantptChord1 = GetPointAR(ptCen, angle, radius)ptChord2 = GetPointAR(ptCen, angle + PI, radius)Set adddimdiametricAR = AddDimDiametric(ptChord1, ptChord2, leaderLength)End FunctionPublic Function AddDimAngular(ByVal ptVertex As Variant, ByVal ptSt As Variant, ByVal ptEn As Variant, ByVal ptText As Variant) As AcadDimAngular Set AddDimAngular = ThisDrawing.ModelSpace.AddDimAngular(ptVertex, ptSt, ptEn, ptText)End FunctionPublic Function AddDimAngularPO(ByVal ptVertex As Variant, ByVal ptSt As Variant, ByVal ptEn As Variant, Optional offset As Double = 5) AsAcadDimAngularDim ptTemp As VariantDim angle As DoubleDim radius As DoubleIf getanglefromx(ptVertex, ptEn) < getanglefromx(ptVertex, ptSt) Thenangle = (2 * PI - getanglefromx(ptVertex, ptSt) + getanglefromx(ptVertex, ptEn)) / 2Elseangle = (getanglefromx(ptVertex, ptEn) - getanglefromx(ptVertex, ptSt)) / 2End Ifradius = GetDistance(ptVertex, ptSt)ptTemp = GetPointAR(ptVertex, angle, radius, offset)Set AddDimAngularPO = AddDimAngular(ptVertex, ptSt, ptEn, ptTemp)End FunctionPublic Function AddDimOrdinate(ByVal ptDef As Variant, ByVal ptText As Variant, ByVal xAxis As Boolean) As AcadDimOrdinateSet addDimordinates = ThisDrawing.ModelSpace.AddDimOrdinate(ptDef, ptText, xAxis)End FunctionPublic Function AddDimOrdinateXY(ByVal ptDef As Variant, ByVal ptTextX As Variant, ByVal ptTextY As Variant)ThisDrawing.ModelSpace.AddDimOrdinate ptDef, ptTextX, TrueThisDrawing.ModelSpace.AddDimOrdinate ptDef, ptTextY, FalseEnd FunctionPublic Function AddDimOrdStandard(ByVal ptDef As Variant, ByVal x1 As Double, ByVal y2 As Double, Optional y1 As Double = 0, Optional x2 As Double = 0)Dim ptTextX(2) As DoubleDim ptTextY(2) As DoubleptTextX(0) = ptDef(0) + x2: ptTextX(1) = ptDef(1) + y2: ptTextX(2) = 0ptTextY(0) = ptDef(0) + x1: ptTextY(1) = ptDef(1) + y1: ptTextY(2) = 0AddDimOrdinateXY ptDef, ptTextX, ptTextYEnd FunctionPublic Sub TestDim()Dim pt1(0 To 2) As Doublept1(0) = 200: pt1(1) = 160: pt1(2) = 0Dim pt2, pt3, pt4, pt5 As Variantpt2 = GetPoint(pt1, -40, 0)pt3 = GetPoint(pt2, 7 * PI / 6, 20)pt4 = GetPoint(pt3, 6, -10)pt5 = GetPoint(pt1, 0, -20)ThisDrawing.ModelSpace.AddLine pt1, pt2ThisDrawing.ModelSpace.AddLine pt2, pt3ThisDrawing.ModelSpace.AddLine pt3, pt4ThisDrawing.ModelSpace.AddLine pt4, pt5ThisDrawing.ModelSpace.AddLine pt5, pt1Dim ptCen1, ptCen2 As VariantptCen1 = GetPoint(pt3, 16, 0)ptCen2 = GetPoint(ptCen1, 25, 0)ThisDrawing.ModelSpace.AddCircle ptCen1, 3ThisDrawing.ModelSpace.AddCircle ptCen2, 4Dim ptTemp1, ptTemp2 As VariantptTemp1 = GetPoint(pt1, -20, 3)AddDimRotated pt1, pt2, ptTemp1, optTemp1 = GetPoint(pt1, 4, 10)AddDimRotated pt1, pt5, tpTemp1, PI / 2ptTemp1 = GetPoint(pt3, -3, -6)AddDimRotated pt3, pt4, ptTemp1, 7 * PI / 4ptTemp1 = GetPoint(pt2, -3, 4)AddDimAlignedCTxt pt2, pt3, ptTemp1, "new position", 4, 10ptTemp1 = GetPoint(pt5, -5, 5)AddDimAngular pt5, pt1, pt4, ptTemp1ptTemp1 = GetPointAR(ptCen1, PI / 4, 3)AddDimRadial ptCen1, ptTemp1, -3ptTemp1 = GetPointAR(ptCen2, PI / 4, 4)ptTemp2 = GetPointAR(ptCen2, PI / 4, 4)AddDimDiametric ptTemp2, ptTemp1, oAddDimOrdStandard ptCen2, 10, -10End Sub代码完。
标注和公差解析

标注和公差•标注可向图形中添加测量值。
公差可指定标注变化的范围。
对于 AutoCAD,标注可以由标注样式、样式族和样式替代很容易地进行处理。
内容包括:–标注的概念–创建标注–编辑标注–创建标注样式–添加形位公差标注标注的概念•标注显示对象的几何测量值。
这些测量值可以是对象间的距离或角度、某特征的 X 和 Y 坐标或标注注释(例如引线或形位公差)。
标注的各部分•尺寸线是指出标注方向和范围的线。
对于角度标注,尺寸线是圆弧。
尺寸界线也称为投影线,从标注对象延伸到尺寸线。
箭头也称为终止符号或终止,被添加到每条尺寸线的末尾。
箭头是由AutoCAD 提供的某一箭头或由块定义的箭头符号组成。
标注文字通常是表示实际测量值的文字串。
文字也可以包括前缀、后缀和公差。
引线是从注释到被参照特征的实线。
圆心标记是个小十字符号,标记圆或圆弧的圆心。
中心线是标记圆或圆弧圆心的虚线。
选择标注样式的步骤• 1 从“标注”菜单中选择“样式”。
• 2 在“标注样式”下的“当前”列表中选择样式。
• 3 选择“确定”。
•AutoCAD 恢复所选择的样式并将其应用于以后的标注。
•命令行 DDIM线性标注•线性标注可以是水平、垂直、对齐或旋转的。
对齐标注有与尺寸界线平行的尺寸线。
水平标注和垂直标注• 1 从“标注”菜单中选择“线性”。
• 2 按 ENTER 键选择标注对象,或指定第一和第二尺寸界线起点。
• 3 在指定尺寸线的位置以前,可以替代标注的方向和编辑文字、文字角度或尺寸线角度。
–要旋转尺寸界线,输入 r(旋转)。
然后输入尺寸线的角度。
–要替代缺省的标注方向,输入 h(水平)或 v(垂直)。
–要编辑文字,输入 t(文字)。
当编辑标注文字时,原文字被删除。
要恢复原标注文字,输入 <>。
–要用“多行文字编辑器”编辑文字,输入 m(多行文字)。
–在“多行文字编辑器”对话框中,标注显示在尖括号(< >)之间。
–要旋转文字,输入 a(角度),然后输入文字的角度。
VBA第五章—创建标注和公差

第五章创建标注和公差5.1 创建多行文字可以使用 AddMText 方法来创建多行文字对象(MText 对象)。
此方法需要输入三个值:文字字符串、图形中用于放置文字的插入点和文字边框的宽度。
例 1 在模型空间中的 (2,2,0) 坐标处创建 MText 对象。
Sub Ch4_CreateMText()Dim mtextObj As AcadMText Dim insertPoint(0 To 2) As DoubleDim width As DoubleDim textString As StringinsertPoint(0) = 2insertPoint(1) = 2insertPoint(2) = 0width = 4textString = "This is a text string for the mtext object."' 在模型空间中创建文字对象 Set mtextObj = ThisDrawing.ModelSpace. _AddMText(insertPoint, width, textString)ZoomAllEnd Sub5.2 创建线性标注线性标注可以是对齐标注或转角标注。
对齐标注的尺寸线与尺寸界线原点所在的线平行;而转角标注的尺寸线与尺寸界线原点形成一定的角度。
要创建对齐标注,使用AddDimAligned 方法。
这个方法需要输入三个坐标值:两条尺寸界线的原点和文字位置。
要创建转角标注,使用AddDimRotated 方法。
这个方法需要输入三个坐标值和尺寸线的角度。
三个坐标值分别是两条尺寸界线的原点和文字位置值。
角度必须以弧度提供,代表尺寸线的旋转角度。
5.3 创建半径标注半径标注用于测量圆弧和圆的半径与直径。
要创建半径标注,使用 AddDimRadial 方法。
要创建半径标注,使用AddDimRadial 或AddDimDiametric 方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章创建标注和公差5.1 创建多行文字可以使用 AddMText 方法来创建多行文字对象(MText 对象)。
此方法需要输入三个值:文字字符串、图形中用于放置文字的插入点和文字边框的宽度。
例 1 在模型空间中的 (2,2,0) 坐标处创建 MText 对象。
Sub Ch4_CreateMText()Dim mtextObj As AcadMText Dim insertPoint(0 To 2) As DoubleDim width As DoubleDim textString As StringinsertPoint(0) = 2insertPoint(1) = 2insertPoint(2) = 0width = 4textString = "This is a text string for the mtext object."' 在模型空间中创建文字对象 Set mtextObj = ThisDrawing.ModelSpace. _AddMText(insertPoint, width, textString)ZoomAllEnd Sub5.2 创建线性标注线性标注可以是对齐标注或转角标注。
对齐标注的尺寸线与尺寸界线原点所在的线平行;而转角标注的尺寸线与尺寸界线原点形成一定的角度。
要创建对齐标注,使用AddDimAligned 方法。
这个方法需要输入三个坐标值:两条尺寸界线的原点和文字位置。
要创建转角标注,使用AddDimRotated 方法。
这个方法需要输入三个坐标值和尺寸线的角度。
三个坐标值分别是两条尺寸界线的原点和文字位置值。
角度必须以弧度提供,代表尺寸线的旋转角度。
5.3 创建半径标注半径标注用于测量圆弧和圆的半径与直径。
要创建半径标注,使用 AddDimRadial 方法。
要创建半径标注,使用AddDimRadial 或AddDimDiametric 方法。
这些方法都需要输入三个值:圆或圆弧的圆心坐标、引线附着的坐标以及引线的长度。
例2在模型空间中创建半径标注。
Sub Ch5_CreateRadialDimension() Dim dimObj As AcadDimRadial Dim center(0 To 2) As Double Dim chordPoint(0 To 2) As DoubleDim leaderLen As Integer' 定义标注center(0) = 0center(1) = 0center(2) = 0chordPoint(0) = 5chordPoint(1) = 5chordPoint(2) = 0leaderLen = 5' 在模型空间中创建半径标注 Set dimObj =ThisDrawing.ModelSpace. _AddDimRadial(center, chordPoint, leaderLen)ZoomAllEnd Sub5.4 创建角度标注角度标注用于测量两条线或三个点之间的角度。
例如,可以使用它们来测量圆的两个半径之间的角度。
尺寸线会形成一个圆弧。
要创建角度标注,使用AddDimAngular 方法。
这个方法需要输入四个值:角度顶点、两条尺寸界线端点和文字起始位置。
AngleVertex 是圆或圆弧的圆心,或是被标注的两条线之间的公共顶点。
例3 在模型空间中创建角度标注。
SubCh5_CreateAngularDimension()Dim dimObj As AcadDimAngular Dim angVert(0 To 2) As Double Dim FirstPoint(0 To 2) As DoubleDim SecondPoint(0 To 2) As DoubleDim TextPoint(0 To 2) As Double' 定义标注angVert(0) = 0angVert(1) = 5angVert(2) = 0FirstPoint(0) = 1FirstPoint(1) = 7FirstPoint(2) = 0SecondPoint(0) = 1SecondPoint(1) = 3SecondPoint(2) = 0TextPoint(0) = 3TextPoint(1) = 5TextPoint(2) = 0' 在模型空间中创建角度标注 Set dimObj =ThisDrawing.ModelSpace. _AddDimAngular(angVert, FirstPoint, SecondPoint, TextPoint)ZoomAllEnd Sub5.5 创建坐标标注坐标标注由带引线的 X 或 Y 坐标组成。
X 基准坐标标注沿着 X轴测量特征与基准点之间的距离。
Y 基准坐标标注沿着 Y 轴测量相同的距离。
AutoCAD 使用当前坐标系 (UCS) 的原点确定测量的坐标。
坐标使用绝对值。
要创建坐标标注,使用AddDimOrdinate 方法。
这个方法需要输入三个值:用于指定要标注的点的坐标 (A)、用于指定引线端点的坐标 (B) 以及用于指定标注是 X 基准坐标标注还是 Y 基准坐标标注的布尔标志。
如果为布尔标志输入 TRUE,该方法将创建 X 基准坐标标注。
如果输入 FALSE,则会创建 Y 基准坐标标注。
例4 在模型空间中创建坐标标注。
SubCh5_CreatingOrdinateDimension( )Dim dimObj As AcadDimOrdinateDim definingPoint(0 To 2) As DoubleDim leaderEndPoint(0 To 2) As DoubleDim useXAxis As Long' 定义标注definingPoint(0) = 50definingPoint(1) = 50definingPoint(2) = 0leaderEndPoint(0) = 100leaderEndPoint(1) = 50leaderEndPoint(2) = 0useXAxis = 5 ‘不等于零的数都为真值' 在模型空间中创建坐标标注 Set dimObj =ThisDrawing.ModelSpace. _AddDimOrdinate(definingPoint, _ leaderEndPoint, useXAxis)ZoomAllEnd Sub5.6 替代标注文字可以使用 TextOverride 特性来替换所显示的标注值。
使用此特性可以完全替换所显示的标注值,也可以向该值附加文字。
例5 向标注值附加了文字,所以既显示字符串,又显示标注值。
Sub Ch5_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' 定义标注point1(0) = 50#: point1(1) = 30#: point1(2) = 0#point2(0) = 100#: point2(1) = 30#: point2(2) = 0#location(0) = 75: location(1) = 50#: location(2) = 0#' 在模型空间中创建对齐标注对象Set dimObj = ThisDrawing.ModelSpace. _AddDimAligned(point1, point2, location)' 修改标注的字符串dimObj.TextOverride = "The value is <>"dimObj.UpdateEnd Sub5.7 创建、修改和复制标注样式要创建新的标注样式,使用Add 方法。
这个方法需要输入新标注样式的名称。
也可以复制一种现有样式或一组替代。
使用 CopyFrom 方法,将标注样式从源对象复制到新标注样式中。
源对象可以是另一个DimStyle 对象、标注、Tolerance或 Leader 对象,甚至可以是Document 对象。
如果从另一个标注样式复制样式设置,则样式被精确复制。
如果从标注、Tolerance或 Leader 对象复制样式的设置,则当前设置(包括所有对象替代)会被复制到新样式中。
如果复制Document 对象的样式,则活动标注样式加上所有的图形替代,会被复制到新样式。
例6 创建三个新的标注样式,并将文档、给定标注样式和给定标注的当前设置分别复制到各个新的标注样式中。
如果在运行此样例之前进行适当的设置,将发现创建的是不同的标注样式。
预先设置内容:1创建新的图形并使其成为活动的图形。
2在新的图形中创建线性标注。
此标注应该是图形中仅有的对象。
3将标注线的颜色更改为黄色。
4将 DIMCLRD 系统变量改为 5(蓝色)。
Sub Ch5_CopyDimStyles()Dim newStyle1 As AcadDimStyleDim newStyle2 As AcadDimStyleDim newStyle3 As AcadDimStyleSet newStyle1 = ThisDrawing.DimStyles.Add _("Style 1 copied from a dim")CallnewStyle1.CopyFrom(ThisDrawing.ModelSpace(0))Set newStyle2 = ThisDrawing.DimStyles.Add _("Style 2 copied from Style 1")CallnewStyle2.CopyFrom(ThisDrawing .DimStyles.Item _("Style 1 copied from a dim"))Set newStyle3 = ThisDrawing.DimStyles.Add _("Style 3 copied from the running drawing values")CallnewStyle2.CopyFrom(ThisDrawing )End Sub打开 DIMSTYLE 对话框。
现在应该列出了三种标注样式。
样式1 应该具有黄色的尺寸线,样式 2应该与样式 1 相同,而样式 3 应该具有蓝色的尺寸线。
5.8 创建引线可以从图形中的任意点或特征创建引线,并在绘制时控制其外观。