社区
Inventor 产品技术应用讨论区
欢迎访问欧特克Inventor论坛!分享知识,发帖提问,浏览Inventor热帖
取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

批量增加虚拟件的同时能否给虚拟件增加iproperty属性?

6 条回复6
已解决
回复
1 条消息(共 7 条)
xingyu_wangZVD5A
207 次查看, 6 条回复

批量增加虚拟件的同时能否给虚拟件增加iproperty属性?

附件附上了ilogic,可以批量增加自己需要虚拟件;

明细栏中“图名”和“规格”这两列是我自定义进iproperty的,新建零件时会因为有模板被带进去,但是增加虚拟件貌似不行。

能有大佬帮忙完善下,然增加虚拟件的时候,这两个属性内容可以也被写进iproperty中!!

xingyu_wangZVD5A_0-1733895574151.png

 

6 条回复6
2 条消息(共 7 条)

BOM表中这两个自定义属性的名称,可以直接在BOM中表添加后,保存为模板。

chenj_0-1733911948934.png

 

添加自定义属性,可以参考下面的代码:

oCVirtualCompDef11.PropertySets.Item("User Defined Properties").Add("属性值","测试属性")

3 条消息(共 7 条)

陈老师,你好。我的模板目前里面是有这两个自定义属性的。

 

4 条消息(共 7 条)

xingyu_wangZVD5A_0-1733927240318.png

如图是我打开的模板

5 条消息(共 7 条)

可以使用以下规则插入虚拟件

文件名规则是 《图号 名称》, 可以自己更改规则改变属性的归属

 

Start:
Dim strVirtualName As String = InputBox("输入新的虚拟零件名称:", "H2")
If Not String.IsNullOrEmpty(strVirtualName) Then
Dim oAssy As AssemblyDocument = ThisDoc.Document
Dim oComponentDefinition As ComponentDefinition = oAssy.ComponentDefinition
Dim oComponentOccurrence As ComponentOccurrence = oComponentDefinition.Occurrences.AddVirtual(strVirtualName, ThisApplication.TransientGeometry.CreateMatrix)

Dim oVirtualCompDef As VirtualComponentDefinition = oComponentOccurrence.Definition
‘此处更改图号
Dim strVirtualPartNumber As String = strVirtualName.split(" ")(0)
If Not String.IsNullOrEmpty(strVirtualPartNumber) Then oVirtualCompDef.PropertySets("Design Tracking Properties")("Part Number").Value = strVirtualPartNumber
'此处更改名称
Dim strVirtualDescription As String = strVirtualName.split(" ")(1)
If Not String.IsNullOrEmpty(strVirtualDescription) Then oVirtualCompDef.PropertySets("Design Tracking Properties")("Description").Value = strVirtualDescription

'次数根据数量重复插入零件
ChangeQuantity:
Dim intVirtualQuantity As String = InputBox("输入虚拟零件的 数量:", "H2", 1)
If Not String.IsNullOrEmpty(intVirtualQuantity) Then
If IsNumeric(intVirtualQuantity) Then
If Not intVirtualQuantity.Contains(".") Then
Dim oBom As BOM = oAssy.ComponentDefinition.BOM
Dim oStructuredBOMView As BOMView = oBom.BOMViews(1)
oStructuredBOMView.BOMRows.Item(oStructuredBOMView.BOMRows.Count).TotalQuantity = intVirtualQuantity
Else
MsgBox("输入一个整数", "H2")
GoTo ChangeQuantity
End If
Else
MsgBox("输入一个整数", "H2")
GoTo ChangeQuantity
End If
End If

GoTo Start '重复插入
End If

 

 

6 条消息(共 7 条)

感谢大家的解答
7 条消息(共 7 条)

参考代码非常有用

找不到想要的内容?向社区提问或分享您的知识。

到论坛发帖  

”