明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2219|回复: 10

陈老师的工程图比例补丁不能用了?

[复制链接]
发表于 2005-8-16 19:04:00 | 显示全部楼层 |阅读模式
在AIP10中,使用陈老师的VBA,却发现只有质量属性可用,比例不能用了

本帖子中包含更多资源

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

x
发表于 2005-8-16 19:41:00 | 显示全部楼层

不可能,VBA与AIP的版本无关。

在VBA编辑器中查看源代码吧。

 楼主| 发表于 2005-8-16 21:45:00 | 显示全部楼层

666,我查看源代码,的确没有工程图部分啊,可陈老师的书里明明是说有的.陈老师能解释一下吗?有就是有,没有就是没有,您只要说明一下,就可能不用我们浪费时间去研究为什么了.

下面是源代码,确实没有比例部份的:

Private Sub CommandButton11_Click()

End Sub

Private Sub CommandButton13_Click()

End Sub

Private Sub UserForm_Initialize() '用户窗体初始化

End Sub
Private Sub CommandButton1_Click()
    '为文件添加质量属性,之后再在工程图中引用,弥补R6/7的缺陷...

    Dim oCompDef As ComponentDefinition
    Dim oInventor As Application
    Set oInventor = ThisApplication

    If oInventor.Documents.Count = 0 Then
        MsgBox "必须打开一个文件才能用。程序将退出了..."
        Exit Sub
    End If
   
    ' 根据图档的不同,设置质量属性名.
    Dim oDoc As Document
    Dim masstr As String
    Set oDoc = oInventor.ActiveDocument
    If oDoc.DocumentType = kAssemblyDocumentObject Then
        masstr = "AllM"
        Else
        masstr = "SingleM"
    End If
             
    ' 设置构造对象
    Set oCompDef = oDoc.ComponentDefinition
    Dim oMassProps As MassProperties
    Set oMassProps = oCompDef.MassProperties
   
    ' 取出质量属性当前值.
    Dim mass, oldmass As String
    mass = oMassProps.mass
    If mass = 0 Then
        MsgBox "没有体积,也没有质量可算。程序将退出了..."
        Exit Sub
        Else
        mass = Format(mass, "0.000")
    End If
   
    Dim oPropset As PropertySet
    Dim oProp As Property
    Dim oNewPro As PropertySet
   
    ' 测试是否已存在相关属性(试获取)
    On Error Resume Next
    Set oNewPro = oDoc.PropertySets.Item(4)
    Set oMassPro = oNewPro.Item(masstr)
        If Err Then
        ' 不存在-添加新属性
        Set oProp = oDoc.PropertySets.Item(4).Add(mass, masstr)
        MsgBox "自定义属性" & masstr & "=" & mass & "kg 已经创建,可以在工程图中引用了。"
        ' 存在-修改老属性
        Else
        oldmass = oMassPro.Value
        If oldmass = mass Then
            MsgBox "质量属性不需要更新..."
            Else
            oMassPro.Value = mass
            MsgBox masstr & "属性已经更新为" & mass & "kg"
        End If
    End If
End Sub

Private Sub CommandButton2_Click()
     Unload Me
End Sub

Private Sub CommandButton3_Click()
    ' 绘制标准渐开线齿轮的齿沟草图
   
    If Not TypeOf ThisApplication.ActiveEditObject Is PlanarSketch Then
        MsgBox "必须在草图状态下使用这个宏..."
        Exit Sub
    End If
    '加载激活并显示窗体
    Load UserForm1
    Call UserForm1.Show
End Sub

Private Sub CommandButton4_Click()
    MsgBox "计算现有模型的质量属性,根据当前的条件,有不同的对策。" & Chr(10) & _
           "结果在文件的属性中添加或修改一个自定义的数据: " & Chr(10) & _
           "零件文件是SingleM,装配文件是AllM" & Chr(10) & _
           "这个结果数据可以在工程图中引用,完成标题栏相关数据的填充。"
End Sub

Private Sub CommandButton5_Click()
    MsgBox "根据界面中的用户输入,创建标准渐开线齿轮的齿沟草图," & Chr(10) & _
           "供创建齿轮模型之用..."
End Sub

Private Sub CommandButton6_Click()
    MsgBox "基于表达弹簧数据的草图,创建弹簧实体。" & Chr(10) & _
           "可扩展Inventor的弹簧创建能力..."
End Sub

Private Sub CommandButton7_Click()
    ' 用放样特征,基于草图创建更复杂的弹簧
    Dim vbaFn As String
    Dim oInvApp As Application
    Set oInvApp = ThisApplication
   
    ' 取出 VBA projects
    Dim oInvVBAProjects As InventorVBAProjects
    Set oInvVBAProjects = oInvApp.VBAProjects
   
    ' 判断是否已经加载
    Dim itemN, projN As Integer
    projN = -1
    For itemN = 1 To oInvVBAProjects.Count
        If oInvVBAProjects.Item(itemN).Name = "Spring" Then
            loadKey = True: projN = itemN
        End If
    Next itemN
   
    ' 按需要加载
    If projN < 0 Then
        ' 打开指定的 VBA project
        Call oInvVBAProjects.Open("C:\Program Files\Autodesk\Inventor 7\Bin\Macros\spring.ivb")
        projN = oInvVBAProjects.Count
    End If
   
    ' 取出被打开的工程
    Dim oInvVBAProject As InventorVBAProject
    Set oInvVBAProject = oInvVBAProjects.Item(projN)
       
    ' 访问其中的模块
    Dim oInvVBAModules As InventorVBAComponents
    Set oInvVBAModules = oInvVBAProject.InventorVBAComponents
    Dim oInvVBAModule As InventorVBAComponent
    For Each oInvVBAModule In oInvVBAModules
        ' 查找模块名
        If oInvVBAModule.Name = "SpringCreation" Then
            ' 定位模块位置
            Dim oInvVBAMacros As InventorVBAMembers
            Set oInvVBAMacros = oInvVBAModule.InventorVBAMembers
                     
            Dim oInvVBAMacro As InventorVBAMember
            For Each oInvVBAMacro In oInvVBAMacros
                ' 查找宏名
                If oInvVBAMacro.Name = "CreateASpringUsingLofting_V2_2" Then
                    ' 运行宏
                    oInvVBAMacro.Execute
                End If
            Next
        End If
    Next
End Sub

Private Sub CommandButton8_Click()
    '加载激活并显示窗体
    Load UserForm2
    Call UserForm2.Show
End Sub

Private Sub CommandButton9_Click()
    MsgBox "为了弥补Inventor不懂度分秒的角度表达而作..."
End Sub

Private Sub Image1_Click()
    MsgBox "张朝阳 & 陈伯雄 2003-6"
End Sub

发表于 2005-8-16 22:45:00 | 显示全部楼层

本帖子中包含更多资源

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

x
 楼主| 发表于 2005-8-17 07:27:00 | 显示全部楼层

666,你看我的,就是比你少了比例部份,真是奇怪,是哪儿出错了吗?可我这个文件是从陈老师的随书光盘中复制过来的啊,而且在书中他也说了可以处理的.可事实就是,我按照他的操作要求做后,还是没有这部份,莫非我和你的不是同一个文件?

下边是我搜索他的光盘中的所有.ivb文件,应该是第一和第二个文件吧:

本帖子中包含更多资源

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

x
发表于 2005-8-17 10:22:00 | 显示全部楼层
这个东西我还没有,可不可以共用一下?
 楼主| 发表于 2005-8-17 21:05:00 | 显示全部楼层
666,能否告诉我,我们用的不是同一个文件吗?
发表于 2005-8-17 21:17:00 | 显示全部楼层
从截图看,或许吧。陈老师应当清楚。
 楼主| 发表于 2005-8-17 22:17:00 | 显示全部楼层

问题是我是从陈老师的书里的光盘上复制出来的,而且陈老师在书中也详细说明了解决方法,按理,应该不会出现这种问题吧.......

陈老师可能不想回答,不过您的文件能否告诉我是从什么地方来的吗?

发表于 2005-8-18 17:31:00 | 显示全部楼层

时日已久,难以记清,可能就是在本论坛中。

您还是恳请陈老师再提供一次正版上传,会解决的。

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

本版积分规则

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

GMT+8, 2024-11-19 04:23 , Processed in 0.178503 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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