陈老师的工程图比例补丁不能用了?
在AIP10中,使用陈老师的VBA,却发现只有质量属性可用,比例不能用了 <P>不可能,VBA与AIP的版本无关。</P><P>在VBA编辑器中查看源代码吧。</P> <P>666,我查看源代码,的确没有工程图部分啊,可陈老师的书里明明是说有的.陈老师能解释一下吗?有就是有,没有就是没有,您只要说明一下,就可能不用我们浪费时间去研究为什么了.</P>
<P>下面是源代码,确实没有比例部份的:</P>
<P>Private Sub CommandButton11_Click()</P>
<P>End Sub</P>
<P>Private Sub CommandButton13_Click()</P>
<P>End Sub</P>
<P>Private Sub UserForm_Initialize() '用户窗体初始化</P>
<P>End Sub<BR>Private Sub CommandButton1_Click()<BR> '为文件添加质量属性,之后再在工程图中引用,弥补R6/7的缺陷...</P>
<P> Dim oCompDef As ComponentDefinition<BR> Dim oInventor As Application<BR> Set oInventor = ThisApplication</P>
<P> If oInventor.Documents.Count = 0 Then<BR> MsgBox "必须打开一个文件才能用。程序将退出了..."<BR> Exit Sub<BR> End If<BR> <BR> ' 根据图档的不同,设置质量属性名.<BR> Dim oDoc As Document<BR> Dim masstr As String<BR> Set oDoc = oInventor.ActiveDocument<BR> If oDoc.DocumentType = kAssemblyDocumentObject Then<BR> masstr = "AllM"<BR> Else<BR> masstr = "SingleM"<BR> End If<BR> <BR> ' 设置构造对象<BR> Set oCompDef = oDoc.ComponentDefinition<BR> Dim oMassProps As MassProperties<BR> Set oMassProps = oCompDef.MassProperties<BR> <BR> ' 取出质量属性当前值.<BR> Dim mass, oldmass As String<BR> mass = oMassProps.mass<BR> If mass = 0 Then<BR> MsgBox "没有体积,也没有质量可算。程序将退出了..."<BR> Exit Sub<BR> Else<BR> mass = Format(mass, "0.000")<BR> End If<BR> <BR> Dim oPropset As PropertySet<BR> Dim oProp As Property<BR> Dim oNewPro As PropertySet<BR> <BR> ' 测试是否已存在相关属性(试获取)<BR> On Error Resume Next<BR> Set oNewPro = oDoc.PropertySets.Item(4)<BR> Set oMassPro = oNewPro.Item(masstr)<BR> If Err Then<BR> ' 不存在-添加新属性<BR> Set oProp = oDoc.PropertySets.Item(4).Add(mass, masstr)<BR> MsgBox "自定义属性" & masstr & "=" & mass & "kg 已经创建,可以在工程图中引用了。"<BR> ' 存在-修改老属性<BR> Else<BR> oldmass = oMassPro.Value<BR> If oldmass = mass Then<BR> MsgBox "质量属性不需要更新..."<BR> Else<BR> oMassPro.Value = mass<BR> MsgBox masstr & "属性已经更新为" & mass & "kg"<BR> End If<BR> End If<BR>End Sub</P>
<P>Private Sub CommandButton2_Click()<BR> Unload Me<BR>End Sub</P>
<P>Private Sub CommandButton3_Click()<BR> ' 绘制标准渐开线齿轮的齿沟草图<BR> <BR> If Not TypeOf ThisApplication.ActiveEditObject Is PlanarSketch Then<BR> MsgBox "必须在草图状态下使用这个宏..."<BR> Exit Sub<BR> End If<BR> '加载激活并显示窗体<BR> Load UserForm1<BR> Call UserForm1.Show<BR>End Sub</P>
<P>Private Sub CommandButton4_Click()<BR> MsgBox "计算现有模型的质量属性,根据当前的条件,有不同的对策。" & Chr(10) & _<BR> "结果在文件的属性中添加或修改一个自定义的数据: " & Chr(10) & _<BR> "零件文件是SingleM,装配文件是AllM" & Chr(10) & _<BR> "这个结果数据可以在工程图中引用,完成标题栏相关数据的填充。"<BR>End Sub</P>
<P>Private Sub CommandButton5_Click()<BR> MsgBox "根据界面中的用户输入,创建标准渐开线齿轮的齿沟草图," & Chr(10) & _<BR> "供创建齿轮模型之用..."<BR>End Sub</P>
<P>Private Sub CommandButton6_Click()<BR> MsgBox "基于表达弹簧数据的草图,创建弹簧实体。" & Chr(10) & _<BR> "可扩展Inventor的弹簧创建能力..."<BR>End Sub</P>
<P>Private Sub CommandButton7_Click()<BR> ' 用放样特征,基于草图创建更复杂的弹簧<BR> Dim vbaFn As String<BR> Dim oInvApp As Application<BR> Set oInvApp = ThisApplication<BR> <BR> ' 取出 VBA projects<BR> Dim oInvVBAProjects As InventorVBAProjects<BR> Set oInvVBAProjects = oInvApp.VBAProjects<BR> <BR> ' 判断是否已经加载<BR> Dim itemN, projN As Integer<BR> projN = -1<BR> For itemN = 1 To oInvVBAProjects.Count<BR> If oInvVBAProjects.Item(itemN).Name = "Spring" Then<BR> loadKey = True: projN = itemN<BR> End If<BR> Next itemN<BR> <BR> ' 按需要加载<BR> If projN < 0 Then<BR> ' 打开指定的 VBA project<BR> Call oInvVBAProjects.Open("C:\Program Files\Autodesk\Inventor 7\Bin\Macros\spring.ivb")<BR> projN = oInvVBAProjects.Count<BR> End If<BR> <BR> ' 取出被打开的工程<BR> Dim oInvVBAProject As InventorVBAProject<BR> Set oInvVBAProject = oInvVBAProjects.Item(projN)<BR> <BR> ' 访问其中的模块<BR> Dim oInvVBAModules As InventorVBAComponents<BR> Set oInvVBAModules = oInvVBAProject.InventorVBAComponents<BR> Dim oInvVBAModule As InventorVBAComponent<BR> For Each oInvVBAModule In oInvVBAModules<BR> ' 查找模块名<BR> If oInvVBAModule.Name = "SpringCreation" Then<BR> ' 定位模块位置<BR> Dim oInvVBAMacros As InventorVBAMembers<BR> Set oInvVBAMacros = oInvVBAModule.InventorVBAMembers<BR> <BR> Dim oInvVBAMacro As InventorVBAMember<BR> For Each oInvVBAMacro In oInvVBAMacros<BR> ' 查找宏名<BR> If oInvVBAMacro.Name = "CreateASpringUsingLofting_V2_2" Then<BR> ' 运行宏<BR> oInvVBAMacro.Execute<BR> End If<BR> Next<BR> End If<BR> Next<BR>End Sub</P>
<P>Private Sub CommandButton8_Click()<BR> '加载激活并显示窗体<BR> Load UserForm2<BR> Call UserForm2.Show<BR>End Sub</P>
<P>Private Sub CommandButton9_Click()<BR> MsgBox "为了弥补Inventor不懂度分秒的角度表达而作..."<BR>End Sub</P>
<P>Private Sub Image1_Click()<BR> MsgBox "张朝阳 & 陈伯雄 2003-6"<BR>End Sub<BR></P> <P>666,你看我的,就是比你少了比例部份,真是奇怪,是哪儿出错了吗?可我这个文件是从陈老师的随书光盘中复制过来的啊,而且在书中他也说了可以处理的.可事实就是,我按照他的操作要求做后,还是没有这部份,莫非我和你的不是同一个文件?</P>
<P>下边是我搜索他的光盘中的所有.ivb文件,应该是第一和第二个文件吧:</P> 这个东西我还没有,可不可以共用一下? 666,能否告诉我,我们用的不是同一个文件吗? 从截图看,或许吧。陈老师应当清楚。 <P>问题是我是从陈老师的书里的光盘上复制出来的,而且陈老师在书中也详细说明了解决方法,按理,应该不会出现这种问题吧.......</P>
<P>陈老师可能不想回答,不过您的文件能否告诉我是从什么地方来的吗?</P> <P>时日已久,难以记清,可能就是在本论坛中。</P>
<P>您还是恳请陈老师再提供一次正版上传,会解决的。</P>
页:
[1]
2