明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2872|回复: 6

VBA尺寸公差标注

[复制链接]
发表于 2009-7-22 10:09:00 | 显示全部楼层 |阅读模式

请高手指教!下面程序出来的公差上下是一致的,如果上公差是0会显示+0.0怎样才能显示成单个的0,并且+换成空一格?谁能指点下,谢谢!

'点击确定按钮触发的事件
Private Sub cmdOk_Click()
    Dim tolPre As Integer
    Dim tolpre2 As Integer
   
    '设置主单位精度
    dimObj.PrimaryUnitsPrecision = Me.cboPrecision.ListIndex
   
    '设置公差样式及公差值
    If Me.OptionButton1 = True Then
        '不显示公差时
        dimObj.ToleranceDisplay = acTolNone
    ElseIf Me.OptionButton3 = True Then
        '显示正负差时
        dimObj.ToleranceDisplay = acTolSymmetrical  '公差类型
        dimObj.ToleranceHeightScale = 1             '高度比例
        dimObj.ToleranceJustification = acTolBottom '对齐方式
        dimObj.ToleranceUpperLimit = Me.TextBox2    '上限
        dimObj.ToleranceLowerLimit = Me.TextBox2    '下限
        tolPre = PreNum(Me.TextBox2)                '获取小数点位数
        dimObj.TolerancePrecision = tolPre          '公差精度
        dimObj.ToleranceSuppressTrailingZeros = False   '指定是否输出标注值中的后续零
    ElseIf Me.OptionButton2 = True Then
        '显示上下差时
        dimObj.ToleranceDisplay = acTolDeviation
        dimObj.ToleranceJustification = acTolBottom
        dimObj.ToleranceUpperLimit = Me.TextBox1
        dimObj.ToleranceLowerLimit = -(Me.TextBox3)
       
        If dimObj.ToleranceUpperLimit = dimObj.ToleranceLowerLimit Then
            dimObj.ToleranceHeightScale = 1
        Else
            dimObj.ToleranceHeightScale = 0.71
        End If
       
        tolPre = PreNum(Me.TextBox1)
        tolpre2 = PreNum(Me.TextBox3)
        If tolPre < tolpre2 Then tolPre = tolpre2
        dimObj.TolerancePrecision = tolPre
       
        dimObj.ToleranceSuppressTrailingZeros = False
    ElseIf Me.OptionButton4 = True Then
        '显示上下限时
        dimObj.ToleranceDisplay = acTolLimits
        dimObj.ToleranceHeightScale = 1
        dimObj.ToleranceJustification = acTolBottom
        dimObj.ToleranceUpperLimit = Me.TextBox1
        dimObj.ToleranceLowerLimit = -(Me.TextBox3)
        tolPre = PreNum(Me.TextBox1)
        tolpre2 = PreNum(Me.TextBox3)
       
        If tolPre < tolpre2 Then tolPre = tolpre2
        dimObj.TolerancePrecision = tolPre
        dimObj.ToleranceSuppressTrailingZeros = False
    End If
   
    dimObj.Update
    Unload Me
End Sub

 楼主| 发表于 2009-7-22 10:32:00 | 显示全部楼层
没人指教么
发表于 2009-7-22 10:37:00 | 显示全部楼层
修改文字替代,用多行文字格式
 楼主| 发表于 2009-7-22 10:43:00 | 显示全部楼层
这不就很麻烦了,要弄好字体大小,还要找准位置
 楼主| 发表于 2009-7-22 17:05:00 | 显示全部楼层

If tolPre < tolpre2 Then tolPre = tolpre2
        dimObj.TolerancePrecision = tolPre
       
        dimObj.ToleranceSuppressTrailingZeros = False
这段不运行可以显示0,但精度大于2位的只能显示2位,后面的显示不出来

如果运行随便几位都能显示,单如果上下公差里面有1个是0,就会显示0.000……

我把这个程序传上来,谁能帮忙解决下啊!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2009-7-26 08:41:00 | 显示全部楼层

ToleranceSuppressTrailingZeros一定要设置为True,这样公差的后续0才能消掉。
而TolerancePrecision这里你写上了如果精度超过2则设置为2,所以精度最大也就2了。

现在知道怎样设置了吧。

发表于 2010-8-3 11:37:00 | 显示全部楼层

显示尺寸标注的上下偏差,为什么要编那么长的程序呢!应为标注对象的标注文本属于多文本对象,直接使用多文本的格式码就可以实现,然后文字替代即可!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 22:55 , Processed in 0.182566 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表