如何获取与用户选择的面关联的零件中的螺纹在装配图中的坐标等信息?
来源:互联网 发布:mac网络还原 编辑:程序博客网 时间:2024/04/29 09:12
问题如标题所示。本来可以通过CreateGeometryProxy来创建特征的代理对象,进而获取该代理对象上的螺纹在装配图中的坐标,但是在Inventor 2012(或者之前的版本)中,得到的代理对象的坐标竟然是零件图里的坐标,所以必须想出了一个补救办法。我想到的办法是将零件图里的坐标转换成装配图里的坐标,也许有人早已经想到过这个办法。下面的VBA例子代码仅供参考:
Sub test0()
' Assuming the user selected a face in assembly
Dim fproxy As faceProxy
Set fproxy = ThisApplication.ActiveDocument.SelectSet.Item(1)
Dim cocc As ComponentOccurrence
Set cocc = fproxy.ContainingOccurrence
Dim pc As PartComponentDefinition
Set pc = cocc.Definition
Dim OccToAssMatric As Matrix
Set OccToAssMatric = cocc.Transformation
Dim oBasePoint As Point
Dim assDef As AssemblyComponentDefinition
Set assDef = ThisApplication.ActiveDocument.ComponentDefinition
Dim threadFt As Object
If pc.Features.ThreadFeatures.Count > 0 Then
For Each threadFt In pc.Features.ThreadFeatures
getinfoforthread threadFt.ThreadInfo, OccToAssMatric, assDef
Next
End If
If pc.Features.HoleFeatures.Count > 0 Then
For Each threadFt In pc.Features.HoleFeatures
If threadFt.Tapped = True Then
getinfoforthread threadFt.TapInfo, OccToAssMatric, assDef
End If
Next
End If
If pc.Features.RectangularPatternFeatures.Count > 0 Then
Dim rf As RectangularPatternFeature
For Each rf In pc.Features.RectangularPatternFeatures
For Each threadFt In rf.ParentFeatures
If threadFt.Type = kHoleFeatureObject Then
If threadFt.Tapped = True Then
getinfoforthread threadFt.TapInfo, OccToAssMatric, assDef
End If
End If
Next
Next
End If
End Sub
Sub getinfoforthread(tf As Object, OccToAssMatric As Matrix, assDef As AssemblyComponentDefinition)
Dim oBasePoint As Point
For Each oBasePoint In tf.ThreadBasePoints
Debug.Print CStr(oBasePoint.x) + "," + CStr(oBasePoint.y) + "," + CStr(oBasePoint.Z)
oBasePoint.TransformBy OccToAssMatric
Debug.Print CStr(oBasePoint.x) + "," + CStr(oBasePoint.y) + "," + CStr(oBasePoint.Z)
Call assDef.WorkPoints.AddFixed(oBasePoint)
Next
Dim dir As Vector
Set dir = tf.ThreadDirection
Debug.Print CStr(dir.x) + "," + CStr(dir.y) + "," + CStr(dir.Z)
dir.TransformBy OccToAssMatric
Debug.Print CStr(dir.x) + "," + CStr(dir.y) + "," + CStr(dir.Z)
End Sub
- 如何获取与用户选择的面关联的零件中的螺纹在装配图中的坐标等信息?
- Fusion 360 获取装配部件的三角面片顶点在装配坐标系中的数值
- solidworks二次开发:在装配体中,对选择的零件进行配合装配
- 如何有效的获取通讯录中的工作 公司等信息
- 如何获取微信用户的名字等信息
- 如何获取youtobe中的视频的缩略图等相关信息(调用API返回)?
- 在solidworks装配体中更改一个子装配体或零件的Configuration的方法
- Swift-如何获取键盘的高度,获取通知中的信息
- delphi积累–如何遍历网页中的坐标 获取某一颜色值的坐标
- 攻丝或螺纹铣削的选择
- Solid Edge如何估算零件的质量,重心等物理性质
- Android中的坐标以及获取坐标的方法
- 课题十四 成形面零件的编程与加工
- 如何获取android中的用户安装的程序
- 在Handler中获取用户的选择
- 如何获取用户和手机的信息
- QWidget 部件的坐标 在对话框中的坐标
- 使用API中的函数:NetUserEnum来枚举用户 NetUserGetInfo来获取用户的信息
- Windows 8难逃厄运 十大安全漏洞缠身
- OPDS协议~~
- LINUX下USB1.1设备学习小记
- 编译DirectFB的嵌入式开发环境
- 关于线程调度和线程调度消耗的讨论贴
- 如何获取与用户选择的面关联的零件中的螺纹在装配图中的坐标等信息?
- 哈工大数据结构实验3 图的应用
- Perfsonar的安装、部署和配置
- libvirt-java安装及升级
- GridView 控件
- Vim如何复制和粘贴
- Java6 开发的Web Service, 发布https的wsdl地址(二)
- Android深入浅出之Binder机制
- struts2 if标签